Ru-Board.club
← Вернуться в раздел «Прикладное программирование»

» Need Java-help или первые шаги в Java-программировании.

Автор: TCPIP
Дата сообщения: 06.11.2008 02:41
vndovr

Цитата:
что понимается под подкачкой

Я имел в виду кучу. Наверное, это неправильно... Даже скажем так в корне неправильно. Сорри.

Цитата:
Эти параметры задаю начальное количество памяти доступное приложению и максимальное

Ну, так это, если я правильно понимаю, растяжимое понятие. Иначе было бы только 2 параметра Xms96m (start) и Xmx (max). А вот для чего остальные?

Цитата:
Xmn jdk specific - насколько я помню влияет на то как работает GC.

Да в том-то и дело, что судя по всему - нет.

Цитата:
Один из наиболее полезных параметров здесь -Xmx - попробовать его увеличить

Сделал. Помоголо но не до конца.

Цитата:
Возник вопрос - а с чего предположение что проблемы именно с памятью?

Именно с того, что сборщик мусора, до того, как я увеличил максимальный размер кучи, работал, похоже, непрерывно - процессор простоянно загружен.
Сейчас получше, но все равно - загрузка процессора адская - в среднем процентов 15%. Это если приложение работает в фоне. Если же переключать в нем элементы интерфейса вообще часто 100% и по нескольку секунд.
Время сборки мусора операцией Copy сейчас составляет ~20 с.; операцией MarkSweepCompact ~ в 3 раза больше.

Время компиляции ~8c на ~5000 загруженных классов.
Собственно, хочется совета, нечто вроде выдержки отсюда...
Интересная статья, но для человека далекого от JAVA, немного перебор. Особливо, в моем простом случае.

Теперь почему именно память. Похоже в Azureus ооочень большие проблемы с GUI, да и не только. Частенько по дампам видно, что многие функции UI (библиотека SWT) принимали null на вход. Соответственно, частенько при закрытии диалогового окна, объект не закрывается, пока, скажем, не открыть главное окно. И прочее в том же духе.
То есть у приложения проблемы с памятью, надо ему помочь, ибо JVM сама не может.
Автор: vndovr
Дата сообщения: 07.11.2008 10:03
Имхо, это код нужно править, настройки JVM тут не помогут. Java такой же язык как и все остальные и те же утечки памяти в нем есть как и в любом другом языке. Можно, наверное, взять профайлер и посмотреть что там твориться при работе.
Автор: TCPIP
Дата сообщения: 08.11.2008 05:23
vndovr

Цитата:
это код нужно править, настройки JVM тут не помогут.

Ясно.

Цитата:
такой же язык как и все остальные и те же утечки памяти в нем есть как и в любом другом языке.

Судя по тому, что практически В КАЖДОМ JAVA-приложении, с которым мне приходилось иметь дело, есть проблемы с утечками памяти, я начинаю думать, что JAVA-программирование не code-safe. Возможно, на нем просто больше программируют, чем на C#... но...

Цитата:
взять профайлер и посмотреть что там твориться при работе

Ну, это, как говорится, "выходит за рамки нашей статьи".
А чем, кстати, пользуются для JAVA? Для .NET навскидку сразу приходит JetBrains.
Ну вот YourKit еще есть (JAVA, кстати, тоже).
Автор: Zlatogorov
Дата сообщения: 08.11.2008 11:32
TCPIP
Null в SWT приходть из за того что в SWT Library прописана куча интерфейсов и абстрактных методов, которые в потомках не реализованны но задекларированны.
Это раз, во вторых - издержки Open Source. В утечках вниноват JVM, хотя он от версии к версси становится лучше.
Хотя и программеры не диспоузят ресурсы после того как использовали.
Автор: TCPIP
Дата сообщения: 08.11.2008 16:05
Zlatogorov
Круто. Спасибо.
Автор: JekaRus
Дата сообщения: 27.01.2009 08:24
Подскажите как правильно скомпилировать исходники джавы под виндой. Интересует создание jar файла из исходников http://kent.dl.sourceforge.net/sourceforge/properjavardp/properJavaRDP-src-1.1.zip Я так понял нужно компилить командой
javac D:\properJavaRDP-1.1\build-common.xml но так не получается. Подскажите как правильно.
Автор: Zlatogorov
Дата сообщения: 27.01.2009 09:41
JekaRus
Для построения с помощью build-common.xml у вас должен быть установлен ant.
Автор: vndovr
Дата сообщения: 27.01.2009 13:37
мне кажется проще сразу jar файлы скачать, если нет необходимости их править
Автор: JekaRus
Дата сообщения: 28.01.2009 08:52
Скачал ант. Нашел инструкцию как компилить. Написал батник
set ANT_HOME="D:\ant"
set JAVA_HOME="D:\jdk1.5.0_06"
set PATH=%PATH%;%ANT_HOME%\bin
ant dist
По идее должен получиться jar архив. Но происходит вылетание. Что еще нужно для компиляции?
Автор: Zlatogorov
Дата сообщения: 28.01.2009 09:51
JekaRus
экспшн в студию
Автор: vndovr
Дата сообщения: 28.01.2009 10:04
И что, вылетает без единого сообщения? даже не пишет ничего?

Добавлено:
Для билда ему нужны, как минимум, еще:
log4j
java-getopt

Так бинарник скачать и пользоваться что-то мешает?

Автор: JekaRus
Дата сообщения: 29.01.2009 03:18
vndovr

Цитата:
И что, вылетает без единого сообщения? даже не пишет ничего?

Именно

Цитата:
Так бинарник скачать и пользоваться что-то мешает?

Много раз пробовал скачать бинарник писал что файла нет. Только сейчас проверил и оказалось что файл появился.
А все таки как грамотно такое компилить. Скачал теперь и log4j и java-getopt. Расскажи поподробнее. Плиз.
Автор: vndovr
Дата сообщения: 29.01.2009 13:58
Проще всего - создать проект в любой среде разработки, перенеси все исходники в него, добавить две этих библиотеки в проект и все будет компилироваться.
Автор: SvNik
Дата сообщения: 16.03.2009 15:55
Помогите, пожалуйста, чайнику. У меня на компе две версии JAVA 1.4.5 и 1.6.0, при этом стоит программа (Aerocar.jar), которая работает на JAVA 1.4.5(и не работает на JAVA 1.6.0).
Но вот появилась ещё новая прога, которая не работает на JAVA 1.4.5, а работает на JAVA 1.6.0
Как можно поправить батник той проги, которая работает только на JAVA 1.4.5, чтобы она запускалась с помощью JAVA 1.4.5 (по умолчанию берется последняя версия JAVA 1.6.0, что неприемлемо)?

батник:
start javaw -jar -Xmx512000000 Aerocar.jar

Добавлено:
о! я из положения вышла след. образом:
start "C:\Program Files\Java\j2re1.4.2_05\bin\javaw -jar -Xmx512000000" Aerocar.jar

не очень криво?

Добавлено:
правда для этого нужно, чтобы файлы .jar по умолчанию открывались j2re1.4.2_05. Если по умолчанию для файлов .jar поставить JAVA 1.6.0, то тож не работает...
Автор: SvNik
Дата сообщения: 18.03.2009 16:01
Неужели никто не может помочь?
Автор: vndovr
Дата сообщения: 18.03.2009 22:14
Так а с чем помочь?
Единственное решение - указать полный путь к java машине для выполнения, что Вы и сделали
Автор: Near
Дата сообщения: 09.09.2009 12:35
У меня около 100 пользователи работают с JAVA 1.5 по терминальной сессии. У каждого скопился огромный кеш. Как очистить кеш у одного пользователя (через контрольную панель) я знаю. А существует ли ключик или скрипт, при применении которого кеш очищался автоматически?
Автор: Skyer1
Дата сообщения: 12.09.2009 00:41
Помогите с задачкой

Найти все простые числа в интервале от 1 до 100. (Простым, называется число, которое не имеет делителей, кроме 1 и самого себя.)

На другом языке не составило бы труда сделать, но не знаю синтаксис Java
Автор: Zlatogorov
Дата сообщения: 12.09.2009 10:54
Skyer1
решето Эратосфена в помощь.
Автор: Skyer1
Дата сообщения: 12.09.2009 20:01
Ну хоть по синтаксису в общих чертах, сама задача понятно как делается, хотябы на словах с примерами скажите как писать.
Автор: Zlatogorov
Дата сообщения: 12.09.2009 20:42
Что по синтаксису интересует?
int или Integer - целое, int[] - array of int, for - цикл , вот в принципе и всё что нужно.
А так на самом сайте есть спецификации языка.
Автор: Skyer1
Дата сообщения: 12.09.2009 22:43
А какие в этой теме тогда можно задавать вопросы?
Автор: Zlatogorov
Дата сообщения: 12.09.2009 23:03
Думаю что это вопросы о труднотсях при изучении жабы и best practice.
Изучать язык за вас никто не будет.
Автор: EGO1STE
Дата сообщения: 20.04.2010 06:01
Доброго времени суток всем!
Просьба мне помочь, только начал изучать Intellij Idea.
Создал форму, прицепил к ней класс, на форме три кнопки.
И вот собсно вопрос как сделать так, чтобы по нажатию на одну кнопку, на другой появлялся текст, ну и так далее. Перерыл пол гугла, толком ничего не нашел.
Автор: Zlatogorov
Дата сообщения: 20.04.2010 14:10
EGO1STE
Надо написать SelectionListener для каждой из кнопок.
Автор: DrakonHaSh
Дата сообщения: 16.05.2010 21:11
такая ситуация - русский текст в gui проге на java отображается "крякозябами", что прикольно если скопировать его и вставить в файлик, то там, например, будет так:
Р е з у л ь т а т ы п о и с к а
где пробел это %00
хочу написать баг репорт англоязычным разработчикам, помогите плиз сформулировать грамотно проблему (если еще и на english то ваще класс было бы )
Автор: DrakonHaSh
Дата сообщения: 15.10.2010 15:05
кто нить может внятно объяснить этот, по мне, идиотизм:

юникод он на то и юникод чтобы быть универсальной кодировкой. а у java получается хрен знает что, а не юникод, если у него один и тот же текст в формате юникода нужно указывать по разному в зависимости от file.encoding. или я чего-то не догоняю ?
Автор: Zlatogorov
Дата сообщения: 15.10.2010 16:50
DrakonHaSh
Ну так всё правильно, буквы хранятся как последовательность битов, декодируем в Ср866 получаем один набор , в 1251 другой.
Например в 866 8.0 -"А", а в 1251 -"Ђ". Вот соответственно и выплёвывает на выходе разные UTF коды.
Автор: DrakonHaSh
Дата сообщения: 15.10.2010 17:34
насчет декодирования в Ср866 или в 1251 или любую другую это понятно. Мне непонятно почему исходное указание строки в юникод кодировке различны ?
10 в десятичной кодировке всегда 10 и не зависит от того, в какую кодировку ее собираются переводить, а у java, получается, зависит.

Код: public class MsgDemo1
{
public static void main(String[] args)
{
String s = "\u043A\u043E\u0434\u0438\u0440\u043E\u0432\u043A\u0430"; //строка "кодировка" в unicode кодах - описываемых стандартом
System.out.println(s);
}
}
Автор: Zlatogorov
Дата сообщения: 15.10.2010 18:17
DrakonHaSh
Цифры и Латайн1 одинаковы , а вот всё что потом зависит от кодовой страницы, надо просто смириться.
Тупизм начинается потом , когда идёт чтение из файлов - у утф есть, грубо говоря, 2 нотации с заголовком и без, так называемый BOM, вот там начинаются пляски.

Страницы: 12345

Предыдущая тема: Вакансия поддержка ПО


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.