Форум: "Прочее";
Текущий архив: 2008.08.17;
Скачать: [xml.tar.bz2];
ВнизКонвертер Delphi -> Java Найти похожие ветки
← →
Simpson © (2008-06-23 09:48) [40]TUser © (23.06.08 09:38) [38]
Потому что Java обьектный язык и все там обьекты, простые типы это проклятый пережиток прошлого от которого так и не смогли избавиться, поскольку GC шуршит в поисках все время, он удаляет не все что ушло за область видимости, а только тех на кого нету ссылок. Естейственно если ты определиш
public void Foo(){
int a=0,b=765765765,c=1234567,d=3456778,e=2,f=2434564,h=11111;
}
то по выходу из зоны видимости GC шустро их удалит. Все обьекты(классы, интерфейсы) за тебя удалять он будет очень долго. Поэтому надо GC явно скзать: -"обьекты не нужны потри плзс". Иначе ты рискуеш забить память в течении 5 минут.
← →
Simpson © (2008-06-23 09:51) [41]Игорь Шевченко © (23.06.08 09:44) [39]
Все осталось на прошлой работе, yourKit можно качнуть ознакомительную версию и просто свою какую нибудь долгоиграющую консольку в нем погонять, потом посмотреть.
← →
Simpson © (2008-06-23 09:56) [42]У меня был несколько задач на Java 24/7 програмулинка кидает в бд данные, ну пока не предал анафеме эффективный GC и не пересмотрел весь код, в том числе и с утилиткой, работала моя утилитка максимум 3 суток. После оптимизации она с месяца 2 работала, потом я уволился не знаю что с ней ))
← →
Игорь Шевченко © (2008-06-23 10:29) [43]Simpson © (23.06.08 09:51) [41]
> Все осталось на прошлой работе
> Сборщик мусора не удаляет классы/интерфейсы на которые есть
> ссылки, если у двух обьектов по выходу из области видимости
> ссылки друг на друга, он(сборщик мусора) ничего не удалит
Э...вроде примерчик-то несложный. Можно на C# :)
← →
Simpson © (2008-06-23 10:40) [44]Игорь Шевченко © (23.06.08 10:29) [43]
Java псевдокод
public void Foo(){
try{
Connection con = GetConnection();
Statement st = con.сreateStatement();
ResultSet rs = st.executeQuery("select field1 from someTable where field2 = 3");
if(rs.next())
text = "Ура";
con.close;
con = null;
}catch(Exception ex){
//
}
}
При подобном варинате в памяти остаются обьекты rs,st массово, GC их не удалит.
Все писал по памяти в псевдокоде, просьба ногами не бить ))
← →
Пробегал2.... (2008-06-23 10:41) [45]Удалено модератором
← →
Игорь Шевченко © (2008-06-23 10:51) [46]Simpson © (23.06.08 10:40) [44]
> При подобном варинате в памяти остаются обьекты rs,st массово,
> GC их не удалит.
никогда ?
← →
Simpson © (2008-06-23 10:53) [47]Игорь Шевченко © (23.06.08 10:51) [46]
По завершению работы основоный программы он их даванет, до этого они будут в памяти тусоваться.
← →
Игорь Шевченко © (2008-06-23 11:19) [48]Simpson © (23.06.08 10:53) [47]
Не знаю, как в Java, а в .Net сборщик обычно давит (если ему явно не указать) либо по времени, либо по определенному пределу нехватки памяти.
← →
Simpson © (2008-06-23 13:00) [49]Игорь Шевченко © (23.06.08 11:19) [48]
В Java версий 1.4, 1.5, 1.6 не удалял.
← →
Игорь Шевченко © (2008-06-23 13:10) [50]
> В Java версий 1.4, 1.5, 1.6 не удалял.
Java вообще глючная и тормозная (с)
← →
Simpson © (2008-06-23 13:21) [51]Игорь Шевченко © (23.06.08 13:10) [50]
Вы просто не умеете ее готовить (с)
))
Все это обходится, просто надо привыкнуть к мысли что GC работает только с теми кого он может удалить, все остальные будут сидеть в памяти.
← →
Игорь Шевченко © (2008-06-23 13:32) [52]Simpson © (23.06.08 13:21) [51]
> Вы просто не умеете ее готовить (с)
Более того, и не хочу.
Скоро mono ее вытеснит нафиг :)
← →
Anatoly Podgoretsky © (2008-06-23 18:08) [53]> Игорь Шевченко (23.06.2008 13:32:52) [52]
А я и без этого ее вытесняю, везде где возможно. По сути только на серверах, из-за оборудования еще живет, но сколько оборудования убили новые версии и не сосчитать.
← →
iZEN (2008-06-23 20:46) [54]
> Simpson © (23.06.08 09:25) [37]
>...
> Сборщик мусора не удаляет классы/интерфейсы на которые есть
> ссылки, если у двух обьектов по выходу из области видимости
> ссылки друг на друга, он(сборщик мусора) ничего не удалит.
Бред. В современной Java GC может работать с зацикленными графами объектов.
И, кстати, у объектов в Java давно уже нету "счётчика ссылок". GC смотрит достижимость объектов и убирает всё, что недостижимо.
← →
iZEN (2008-06-23 20:47) [55]
> Игорь Шевченко © (23.06.08 13:32) [52]
>
> Скоро mono ее вытеснит нафиг :)
Прошло семь или восемь лет. Пока что не видно "вытиснения". Сколько ещё ждать нужно?
← →
Simpson © (2008-06-23 20:51) [56]iZEN (23.06.08 20:46) [54]
Странно в прошлом году было, пришлось все что было написано до оптимизировать.
Писать плохие тормозные программы можно на любом языке и чем круче среда, тем больше возможность это делать.
← →
iZEN (2008-06-23 21:19) [57]
> Игорь Шевченко © (23.06.08 11:19) [48]
>
> Simpson © (23.06.08 10:53) [47]
>
> Не знаю, как в Java, а в .Net сборщик обычно давит (если
> ему явно не указать) либо по времени, либо по определенному
> пределу нехватки памяти.
Методы Утилизации Памяти в Java:
http://www.ibm.com/developerworks/ru/library/j-ibmjava2/index.html
← →
Игорь Шевченко © (2008-06-23 21:22) [58]
> Прошло семь или восемь лет. Пока что не видно "вытиснения".
> Сколько ещё ждать нужно?
ты меня спрашиваешь ? Мы долго запрягаем, зато потом быстро едем :)
> Методы Утилизации Памяти в Java:
> http://www.ibm.com/developerworks/ru/library/j-ibmjava2/index.
> html
во многой мудрости много печали; и кто умножает познания, умножает скорбь (Еккл. 1, 18)
← →
Simpson © (2008-06-23 21:32) [59]iZEN (23.06.08 21:19) [57]
IBM != SUN
← →
iZEN (2008-06-23 21:36) [60]Для Sun JVM:
https://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf
← →
iZEN (2008-06-23 21:37) [61]Garbage Collector Ergonomics:
http://java.sun.com/javase/6/docs/technotes/guides/vm/gc-ergonomics.html
← →
Simpson © (2008-06-23 21:54) [62]iZEN (23.06.08 21:36) [61]
On server-class machines running the server VM, the garbage collector (GC) has changed from the previous serial collector (-XX:+UseSerialGC) to a parallel collector (-XX:+UseParallelGC). You can override this default by using the -XX:+UseSerialGC command-line option to the java command.
Почему два вида сборки мусора?
The parallel garbage collector (UseParallelGC) throws an out-of-memory exception if an excessive amount of time is being spent collecting a small amount of the heap. To avoid this exception, you can increase the size of the heap. You can also set the parameters -XX:GCTimeLimit=time-limit and -XX:GCHeapFreeLimit=space-limit where:
time-limit:
The upper limit on the amount of time spent in garbage collection in percent of total time (default is 98).
space-limit:
The lower limit on the amount of space freed during a garbage collection in percent of the maximum heap (default is 2).
Почему я должен настраивать сборщик мусора?
Suggested strategy
Do not choose a maximum value for the heap unless you know that the heap is greater than the default maximum heap size. Choose a throughput goal that is sufficient for your application.
То есть оно работает вообще или нет?
← →
kaif © (2008-06-23 22:39) [63]2 Юрий Зотов.
Юрий, а вообще-то интересная задача.
А что если я возьмусь написать такой конвертор под конкретно эту задачу?
Это может быть интеренсо? Я мог бы при очерезной поездке в Москву попробовать повозиться. Мне нужна работа.
Delphi в общем-то знаю, с Oracle работал, с JAVA тоже работал.
Правда что такое WebSphere не знаю :(.
Но зато люблю разбирать и парсить тексты. И работать с базами данных. Если они хорошо нормализованы, конечно. :)
Или нужен универсальный конвертор, бесплатный и быстро?ъ
С уважением.
← →
Simpson © (2008-06-23 23:28) [64]kaif © (23.06.08 22:39) [63]
WebSphere вебсервер от IBM
← →
Юрий Зотов © (2008-06-24 00:04) [65]> kaif © (23.06.08 22:39) [63]
Ашот, буквально на днях (скорее всего, завтра-послезавтра) должно быть совещание на эту тему. Твое предложение будет рассмотрено, результат сообщу. Но каким он будет - предсказать не могу.
Уточни, плз, что значит "При очередной поездке в Москву"? Какова может быть длительность этой поездки? Ведь, если я правильно понимаю, объем работы там нешуточный, времени займет немало. Да и проект огромный (насколько помню, там только файлов с исходниками - несколько тысяч).
Универсальный конвертор вряд ли нужен (да и вряд ли вообще возможен). Нужно решение конкретной задачи.
← →
kaif © (2008-06-24 00:19) [66]Юрий, я обычно приезжаю в Москву на пару недель. Иногда на месяц. Могу подряд несколько раз приехать на пару-тройку недель.
В принципе я могу выбраться в любой момент, если будет хорошая работа. Разумеется, я не могу обещать, что справлюсь, пока не взгляну на конкретный код и не пойму, в чем конкретно состоит задача. В любом случае мне кажется (даже если это не я буду делать), что здесь нужен специализированный парсер, учитывающий стиль и характер того, что нужно "отконвертировать" в JAVA. Если исходного кода много, то наверняка он как-то достаточно единообразно структурирован. А это уже вселяет надежду на то, что в принципе задача решаема. Хотя бы частично. Лучше всего рассматривать это как некоторый настраиваемый на ходу удобный инструментарий, который будет работать под управлением программиста, осуществляющего "конвертацию" и отвечающего уже за конечный результат.
← →
iZEN (2008-06-24 08:45) [67]
> kaif © (23.06.08 22:39) [63]
>
> Правда что такое WebSphere не знаю :(.
WebSphere == сервер приложений J2EE.
Про него книжка написана:
Создание корпоративных Java-приложений для IBM WebSphere. Пер. с англ.
Браун Кайл, Крейг Гэри, Хестер Грег, Стайнаур Рассел, Питт В. Дэвид, Витцел Марк, Амсден Джим, Джекоб Петер М., Берг Дэниэл (2005 г.)
В комплекте DVD!
ISBN 5-9579-0061-3
880 стр.
http://www.okc.ru:8080/okc/publish/imag.nsf/book/5-9579-0061-3?OpenDocument&env=35%2012
← →
Пробегал2.... (2008-06-24 12:56) [68]Юрий Зотов © (24.06.08 0:04) [65]
Да и проект огромный (насколько помню, там только файлов с исходниками - несколько тысяч).
Юрий мне кажется разумно рассказать начальству, что такой проект лучше не тревожить.
И если честно - такой объем легче имхо писать заново. Серьезно, легче просто ЗАНОВО, с учетом уж специфики java. Иначе времени будет потрачено просто жуть, а получится монстр какой-то.
← →
Юрий Зотов © (2008-07-02 20:58) [69]> kaif
Совещание состоялось, но без конкретных решений. Пока что вопрос отдан на дополнительную проработку (не мне), после чего, видимо, и будет приниматься какое-то решение.
← →
kaif © (2008-07-02 21:34) [70]2 Юрий Зотов © (02.07.08 20:58) [69]
OK.
Страницы: 1 2 вся ветка
Форум: "Прочее";
Текущий архив: 2008.08.17;
Скачать: [xml.tar.bz2];
Память: 0.59 MB
Время: 0.048 c