Re[13]: Сложный язык для сложных срограмм.
От: Yuri Khomic  
Дата: 31.01.07 11:18
Оценка:
Hello, jazzer!
You wrote on Wed, 31 Jan 2007 10:51:36 GMT:

j>>>>> Вот как раз с GC и была проблема.

j>>>>> Он банально не успевал чистить память, в результате все
j>>>>> корилось из-за нехватки памяти.

YK>>>> А какой конкретно механизм сборки мусора там использовался?

j>>> Понятия не имею, я не джавист.

YK>> Сложно тогда о чем-то разговаривать


j> Сложно, а как же


j> Но я исхожу из того, что люди там в команде были достаточно

j> квалифицированные и знали, что делают. И они наверняка знали и про
j> хот спот, и про механизм (я даже не знал, что в JVM им можно
j> управлять, а оно вот как, оказывается).

Мне это все интересно в свете того, что (по-твоим словам) память не успевала очищаться сборщиком мусора. Если причиной тому был большой размер кучи, то возможно проблема решалась бы включением generational GC и соответствующей настройкой размера young/old generations.

Насчет сборки мусора в HotSpot — вот навскидку, можешь почитать если интересно
http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-hotspotgc.html
Posted via RSDN NNTP Server 2.0
Re[14]: Сложный язык для сложных срограмм.
От: jazzer Россия Skype: enerjazzer
Дата: 31.01.07 11:29
Оценка:
Здравствуйте, Yuri Khomic, Вы писали:

YK>Мне это все интересно в свете того, что (по-твоим словам) память не успевала очищаться сборщиком мусора. Если причиной тому был большой размер кучи, то возможно проблема решалась бы включением generational GC и соответствующей настройкой размера young/old generations.


Вполне возможно, что там реализовался вариант, о котором говорил Cyberax здесь. Мне говорили, что она падает с OutOfMemory — естественно, я предположил, что это потому, что она не успевала очищаться. А оно вон еще как может, оказывается.

YK>Насчет сборки мусора в HotSpot — вот навскидку, можешь почитать если интересно

YK>http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-hotspotgc.html

Спасибо!
jazzer (Skype: enerjazzer) Ночная тема для RSDN
You will always get what you always got
  If you always do  what you always did
Re[11]: Сложный язык для сложных срограмм.
От: jazzer Россия Skype: enerjazzer
Дата: 31.01.07 11:30
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Yuri Khomic wrote:

>> А какой конкретно механизм сборки мусора там использовался?
>> И не происходило ли это во времена когда еще не было HotSpot?
C>Есть такая особенность у Java-вского GC, он может бросать OOM, если
C>память слишком быстро распределяется (особенно это классно, когда размер
C>кучи в пару-тройку гигабайт). Лечится тюнингом опций.

А каких опций, если не секрет? (Только мне смысл опций, если можно, а не просто названия )
jazzer (Skype: enerjazzer) Ночная тема для RSDN
You will always get what you always got
  If you always do  what you always did
Re[14]: Сложный язык для сложных срограмм.
От: Cyberax Марс  
Дата: 31.01.07 11:36
Оценка:
Yuri Khomic wrote:
> Мне это все интересно в свете того, что (по-твоим словам) память не
> успевала очищаться сборщиком мусора. Если причиной тому был большой
> размер кучи, то возможно проблема решалась бы включением generational GC
> и соответствующей настройкой размера young/old generations.
Gen. GC в Java весьма сложно отключить

> Насчет сборки мусора в HotSpot — вот навскидку, можешь почитать если

> интересно
> http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-hotspotgc.html
Механизм HotSpot напрямую к GC не относится.
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[12]: Сложный язык для сложных срограмм.
От: Cyberax Марс  
Дата: 31.01.07 11:44
Оценка: 8 (1) +1 :)
jazzer wrote:
> C>Есть такая особенность у Java-вского GC, он может бросать OOM, если
> C>память слишком быстро распределяется (особенно это классно, когда размер
> C>кучи в пару-тройку гигабайт). Лечится тюнингом опций.
> А каких опций, если не секрет? (Только мне смысл опций, если можно, а не
> просто названия )
Ооо... Ты просишь тайны шаманства раскрыть?

В общем, там есть несколько алгоритмов (parallel GC, incremental и т.п.)
и у них куча опций. В основном, надо смотреть на MaxPermSize
(максимальный размер permanent-кучи), кроме того, оказалось очень важно
найти то место, с которого GC должен исполнить полный цикл GC (сейчас не
вспомню опцию). Ну и очень помогла опция "XX:SurvivorRatio", которая
указывает какой делать размер для старой кучи.

В общем, это больше напоминает черную магию. Вот тут есть неплохая дока:
http://java.sun.com/docs/hotspot/gc5.0/gc_tuning_5.html
Posted via RSDN NNTP Server 2.0
Sapienti sat!
Re[11]: Сложный язык для сложных срограмм.
От: Андрей Хропов Россия  
Дата: 31.01.07 12:05
Оценка: +1
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, Андрей Хропов, Вы писали:


АХ>>Хм, MS так не думает.

CC>Открою тебе страшную тайну: микрософт думает только о том, как продать свои творения и подсадить на них еще больше народу.

Естественно, но подумай почему они теперь продвигают связку C# + .NET + XNA, а не C++ + COM + DirectX как раньше. Значит у новой технологии есть определенные преимущества.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[6]: Сложный язык для сложных срограмм.
От: Plague Россия  
Дата: 31.01.07 12:14
Оценка:
VD>Ну, нормальный человек и так прочесть может . Здесь очевидно разбирается некий язык токены которого лежат в списке decls.

Вот в Брейнфаке тоже проблем с разбором токенов нет. А вот проблемы с чтением — есть... =)
Re[8]: Сложный язык для сложных срограмм.
От: Plague Россия  
Дата: 31.01.07 12:23
Оценка:
Здравствуйте, dmz, Вы писали:

dmz>Мое утверждение: C++ не нужен для разработки серверов в 99.9% случаев. СУБД — это как раз оставшийся процент случаев. Разработка на нем дольше, сложнее, требует более высокой квалификации и не дает на этом классе задач никаких особенных преимуществ. С удовлетворением могу заметить, что эту точку зрения разделяют многие — например,

dmz>Ericsson.

Вообщето некоторое время искал и нашел, Oracle из соображений портируемости и стабильности написан на чистом С. И на С++ переписывать даже и не думают.
Re[15]: Сложный язык для сложных срограмм.
От: Yuri Khomic  
Дата: 31.01.07 12:26
Оценка:
Hello, Cyberax!
You wrote on Wed, 31 Jan 2007 11:36:25 GMT:

>> Мне это все интересно в свете того, что (по-твоим словам) память

>> не успевала очищаться сборщиком мусора. Если причиной тому был
>> большой размер кучи, то возможно проблема решалась бы включением
>> generational GC и соответствующей настройкой размера young/old
>> generations.
C> Gen. GC в Java весьма сложно отключить

Сорри, incremental GC хотел написать.

>> Насчет сборки мусора в HotSpot — вот навскидку, можешь почитать

>> если интересно
>> http://www.javaworld.com/javaworld/jw-01-2002/jw-0111-hotspotgc.
>> html
C> Механизм HotSpot напрямую к GC не относится.

Не совсем понял. Разве то, что понимается под HotSpot не включает в себя generational GC?
Posted via RSDN NNTP Server 2.0
Re[13]: Сложный язык для сложных срограмм.
От: Андрей Хропов Россия  
Дата: 31.01.07 12:42
Оценка: 4 (1)
Здравствуйте, CreatorCray, Вы писали:

CC>Здравствуйте, VladD2, Вы писали:


VD>>Значит С++ не кросплатформный? У него в стандарте тоже нет переносимого ГУИ.

CC>Пардон, WinForms входит в комплект библ .NET. о сути является стандартной библиотекой.
В стандарт CLI она не входит. Так что она настолько же "стандартна" как, например, MFC для С++.

Просто MS в своей реализации CLI под названием .NET поставляет больше библиотек, чем есть в стандарте. Конечно, MS пудрит мозги помещая их в пространство имен "System.", хотя на самом деле их место в "Microsoft.".

Стандарт (в редакции ISO/IEC 23271:2006(E)) требует только наличия следующих библиотек (там правда еще есть ньюансы с профилями):

5 The standard libraries:
5.1 General comments

5.2 Runtime infrastructure library
5.3 Base Class Library (BCL)
5.4 Network library
5.5 Reflection library
5.6 XML library
5.7 Extended numerics library
5.8 Extended array library
5.9 Vararg library
5.10 Parallel library


CC> В С++ в стандартной библиотеке этого нет. Стандартные библиотеки должны быть переносимы,

Они и переносимы. Проблемы с .NET-технологиями от MS (WinForms, ASP.NET, ADO.NET, WCF, WWF, WPF). Но если пользоваться только тем что есть в Mono, то получим кроссплатформенность в рамках Mono. Т.е. сборка будет запускаться на любой платформе, где есть Mono.

VD>>А в Моно есть поддержка GTK.

CC>GTK есть в стандартных библиотеках .NET? Нету? Тогда мимо кассы...
В стандартных библиотеках CLI нет вообще ни слова о GUI.

CC>Реализация VM для дотнета только одна.

Как раз VM то целых 4 : MS.NET, Rotor, Mono, dotGNU, и Mono запускается очень даже много где (вплоть до всяких Nokia 770), а вот библиотек больше всего у MS.NET.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[8]: Ада: Сложный язык для сложных программ.
От: Plague Россия  
Дата: 31.01.07 12:47
Оценка:
AVC>Фразу о конкретности адресата, наверное, Вы не заметили.
AVC>По поводу указанной потребности — можете обсудить это с Plague.
AVC>Впрочем, еще проще считать, что конструкцию if(const==var) злые оберонщики придумали.

На самом деле тот код я написал чисто для того чтобы попробовать — "а можно ли так?". Попробовал, получилось, но с оговорками... НИ В КОЕМ СЛУЧАЕ не реккомендую использовать в реальном проекте, а включить Варнинги компилятора. И варнинги — это не значит, что так не нужно писать, а что, возможно, есть ошибка. Использование = в условиях — совместимость с языком С.

PS: это, кстати, 2004й год.. 2.5 года назад... мои личные извращения... =)
Re[10]: Сложный язык для сложных срограмм.
От: Шахтер Интернет  
Дата: 31.01.07 12:48
Оценка: +1
Здравствуйте, VladD2, Вы писали:

VD>Здравствуйте, eao197, Вы писали:


E>>Главным образом я хочу получить ответ на свой вопрос:

E>>

E>>Вот тут не очень понял. Ты имеешь ввиду, что сложные кроссплатформенные системы нельзя писать на C++? Или что тем, кто не пишет сложных кроссплатформенных систем, C++ с его фичами не нужен?

E>>поскольку твою фразу о разработке сложных кроссплатформенных систем я не понял

VD>Мне кажется, он имел в виду, что на С++ очень сложно писать переносимый код.


Это утверждение противоречит моему опыту.
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[12]: Сложный язык для сложных срограмм.
От: CreatorCray  
Дата: 31.01.07 12:50
Оценка: :)
Здравствуйте, Андрей Хропов, Вы писали:

АХ>Естественно, но подумай почему они теперь продвигают связку C# + .NET + XNA, а не C++ + COM + DirectX как раньше. Значит у новой технологии есть определенные преимущества.

Это все поможет продавать железо партнеров, висту и xbox360 + подсаживание на иглу .NET толпы прогеров.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[11]: Сложный язык для сложных срограмм.
От: Kisloid Мухосранск  
Дата: 31.01.07 12:57
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>Открою тебе страшную тайну: микрософт думает только о том, как продать свои творения и подсадить на них еще больше народу.


Не надо так плохо думать о народе, у народа тоже есть голова, народ не будет покупать лажу. Скорее майкрософту надо напрягаться, пытаться выпускать качественные продукты, а то ведь у народа есть и альтернативы от конкурентов.
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Re[8]: Сложный язык для сложных срограмм.
От: Андрей Хропов Россия  
Дата: 31.01.07 13:00
Оценка:
Здравствуйте, Kisloid, Вы писали:

K>Здравствуйте, AndreiF, Вы писали:


AF>>И усилению самомнения программиста, который продравшись через горы проблем и заморочек, добирается наконец до решения задачи

AF>>Никакой другой язык не дает такого удовлетворения — там слишком просто всё делается

K>Ошибаешься, Лисп на много больше усиливает самомнение

K>На своем горьком опыте знаю, каждая законченная программа вызывает такой мощный поток эндорфинов, что С++ рядом не валялся

А как J? Забористо? А Haskell?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[12]: Сложный язык для сложных срограмм.
От: Курилка Россия http://kirya.narod.ru/
Дата: 31.01.07 13:02
Оценка:
Здравствуйте, Kisloid, Вы писали:

K>Здравствуйте, CreatorCray, Вы писали:


CC>>Открою тебе страшную тайну: микрософт думает только о том, как продать свои творения и подсадить на них еще больше народу.


K>Не надо так плохо думать о народе, у народа тоже есть голова, народ не будет покупать лажу. Скорее майкрософту надо напрягаться, пытаться выпускать качественные продукты, а то ведь у народа есть и альтернативы от конкурентов.


К сожалению эту "голову", мне кажется, ты преувеличиваешь. Иначе бы не было целого вороха "исторически сложившихся" решений, кривых еле работающих, где порой поддержка выходит дороже переписывания по-новому. Пример — Y2K, хотябы.
Re[9]: Сложный язык для сложных срограмм.
От: Kisloid Мухосранск  
Дата: 31.01.07 13:09
Оценка:
Здравствуйте, Андрей Хропов, Вы писали:

АХ>А как J? Забористо? А Haskell?


J незнаю, ни разу в глаза не видел. А вот Хаскель к сожалению хватило времени только обзорно посмотреть, но в целом понравилось, следующим по очереди к изучению как раз и стоит Хаскель.
((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x))))
Re[13]: Сложный язык для сложных срограмм.
От: AndreiF  
Дата: 31.01.07 13:19
Оценка:
Здравствуйте, Курилка, Вы писали:

К>К сожалению эту "голову", мне кажется, ты преувеличиваешь. Иначе бы не было целого вороха "исторически сложившихся" решений, кривых еле работающих, где порой поддержка выходит дороже переписывания по-новому. Пример — Y2K, хотябы.


Если уж говорить про кривые и еле работающие исторически сложившиеся решения, то один из венцов таких творений — boost — никакого отношения к корпорациям не имет
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[14]: Сложный язык для сложных срограмм.
От: Курилка Россия http://kirya.narod.ru/
Дата: 31.01.07 13:22
Оценка:
Здравствуйте, AndreiF, Вы писали:

AF>Здравствуйте, Курилка, Вы писали:


К>>К сожалению эту "голову", мне кажется, ты преувеличиваешь. Иначе бы не было целого вороха "исторически сложившихся" решений, кривых еле работающих, где порой поддержка выходит дороже переписывания по-новому. Пример — Y2K, хотябы.


AF>Если уж говорить про кривые и еле работающие исторически сложившиеся решения, то один из венцов таких творений — boost — никакого отношения к корпорациям не имет


Вообще-то я про корпорации ничего не говорил
В корпорациях тоже люди, кстати работают...
Re[10]: Сложный язык для сложных срограмм.
От: dr.Chaos Россия Украшения HandMade
Дата: 31.01.07 14:25
Оценка:
Здравствуйте, eao197, Вы писали:

E>По поводу GC: Страуструп создавал C++ имея опыт работы на языке с автоматической сборкой мусора. Поэтому он принципиально сделал C++ без таковой. И все последствия именно из этого.


Ну и не только. Просто обязательный GC очень сузил бы сферу применения, а опциональных Страустурп ждал от компиляторов.

E>По поводу событий: как разработчик одного из событийно-ориентированных фреймоворков я рад, что в языке нет "стандартных" событий. Из-за этого для различных семейств различных задач можно делать различные способы реагирования на события.


K>>Наконец, почему, чтобы понять C++, нужно от и до внимательно прочитать Страуструпа, а потом ещё Липпмана?


E>Вы думаете этого достаточно?

E>Я сильно сомневаюсь. C++ -- он, имхо, как любой иностранный язык -- можно учить всю жизнь.

K>>Но вот беда: есть языки, к которым подобных вопросов не задаётся.


E>Но, во-первых, вот и славно. Затем же в C++ камнями кидаться. Тем более, что как я понял, C++ вообще лежит далеко в стороне от ваших профессиональных задач и интересов.


E>И, во-вторых, оставте нам, старикам, нашу любимую игрушку. Ну нравится нам наша музыка, хотя для вас, молодежи, это просто ретро. И мы хотим ее играть, сами себе, в своем доме престарелых. А вы к нам через пару лет присоединитесь со своей музыкой, которую уже кто-то другой будет считать ретро

Побеждающий других — силен,
Побеждающий себя — Могущественен.
Лао Цзы