Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.08.17;
Скачать: CL | DM;

Вниз

Конвертер 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;
Скачать: CL | DM;

Наверх




Память: 0.61 MB
Время: 0.024 c
2-1215788028
GrieVeR-13
2008-07-11 18:53
2008.08.17
Событие OnTimer


2-1216036098
small
2008-07-14 15:48
2008.08.17
локальная сеть


2-1215942865
Саша
2008-07-13 13:54
2008.08.17
Шифрование RSA.


15-1214983184
kaif
2008-07-02 11:19
2008.08.17
Как это называется?


2-1215883915
4iVan
2008-07-12 21:31
2008.08.17
запустить процесс