Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 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
2-1215717991
flaxe
2008-07-10 23:26
2008.08.17
Картинки в DBF


2-1215880025
AIK
2008-07-12 20:27
2008.08.17
Загрузить txt ресурс из dll в TStringList


15-1214923574
pasha_golub
2008-07-01 18:46
2008.08.17
Отлов MemLeak ов


13-1120722946
Игорь Шевченко
2005-07-07 11:55
2008.08.17
Можно ли в Visual Studio 2005 Express создать сборку .Net 1.1 ?


10-1148780842
y307
2006-05-28 05:47
2008.08.17
Вызов GetActiveOleObject или CreateOleObject





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский