Re[43]: Опять С++ vs С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.12.04 21:43
Оценка: -3
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Нет, именно миллисекунд. И это не потолок, скорее, характерное время для сбора мусора первого поколения. Сбор объектов поколения 2 может занять значительно дольше.


ПК>http://support.microsoft.com/default.aspx?scid=/servicedesks/webcasts/en/wc050102/wct050102.asp

ПК>

ПК>If you look at the actual cost of garbage collecting, that's not collecting that memory that you've allocated, typically a GC of Generation 0 is similar to that of a page fault, so it's fairly cheap. If you look at the actual time that a Generation 0 garbage collection takes, it's typically between 0 and 10 milliseconds, which is fairly short. And then a collection of Generation 1 is typically between 10 and 30 milliseconds. Obviously, the GC of Generation 2 is going to be dependent on what your working set it, but full GCs should not happen that often.


Ты бы хоть читал внимтельно. Да и ссылки на доисторические статьи давать не очень разумно. Есть статьи и по новее, где цифорки намного скромнее. Плюс надо понимать, что это цифры в рассчете на компьютер удовлетворящий минимальным требованиям, и цифры эти получаются при самых скромынх раскладах.

В любом случае выделение памяти в фрагментированном хипе может занять куда большее время. Но про это почиму-то никто не вспоминает.

Так что оставь сказаки про ЖЦ тем кто никогда с ним не сталкивался лично. На практике заметить сборку мусора на глаз невозможно в принципе.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[42]: Опять С++ vs С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.12.04 21:43
Оценка:
Здравствуйте, McSeem2, Вы писали:

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


VD>>Сборка мусора в среднем занимает около 10 милесекунд с интервалом несколько секунд. А то и реже/быстрее.


MS>Уупс. Целых 10 миллисекунд?! Куда столько?! — этож почти целый кадр.


Это при самых худших обстоятельствах и на довольно дохлом железе. Да и один кадр из 100 мало кто заметит. Выделяя память в сильно фрагментированном хипе можно получить куда более ощутимые тормоза, и вроде как это никому сильно не мешает.

Часто происходит только сборка нулевого поколения. А она в 99% случае укладывается в микросекунды.

MS> Как говорится в малоизвестном стишке "вы охренели, братья румыны". За 10 миллисекунд я успеваю чисто софтварно отрендерить целую страницу мелкого текста (и Adobe Acrobat, кстати, тоже успевает).


Акробат пока не может. Особенно чисто софтрверно. Если бы в сотвере можно было выдавать 100 кадров в секунду, да еще и мелким текстом, то 3D-акселераторы были бы и нафиг не нужны.

MS>Может все-таки, 10 микросекунд?


Это уже сравнимо с тактами процессора. И такие результаты могут быть только в нулевом поколении, объем памяти которого подгоняется под размер кэша процессора.

PS

И все же, скачай таки ArenaWarsDemoEnglishAndGerman.exe и поиграй пору часиков. Заметишь хоть одну паузу, расскажи. Ну, а если не заметишь то перестань дезинформировать людей повторяя глупость про ЖЦ раз за разом.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[43]: Опять С++ vs С#
От: McSeem2 США http://www.antigrain.com
Дата: 08.12.04 22:07
Оценка: +1 -1
Здравствуйте, VladD2, Вы писали:

MS>>Может все-таки, 10 микросекунд?


VD>Это уже сравнимо с тактами процессора. И такие результаты могут быть только в нулевом поколении, объем памяти которого подгоняется под размер кэша процессора.


Да не особо. 2 ГГц, 10 микросекунд — это 20000 тактов, не так уж и мало.

VD>PS

VD>И все же, скачай таки ArenaWarsDemoEnglishAndGerman.exe и поиграй пору часиков. Заметишь хоть одну паузу, расскажи. Ну, а если не заметишь то перестань дезинформировать людей повторяя глупость про ЖЦ раз за разом.

В ответ на это я процитирую извесный мультик

- Поздравляю тебя, Шарик. Ты балбес...


Кого это я когда-либо дезинформировал насчет "ЖЦ"?! Кстати, что такое "ЖЦ"? А игрушку не хочу — там регистрироваться заставляют. Есть где-нибудь линк без регистрации?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[44]: Опять С++ vs С#
От: Павел Кузнецов  
Дата: 08.12.04 22:27
Оценка: +1 -1
VladD2,

> Ты бы хоть читал внимтельно.


Переадресую твое пожелание тебе же. Речь шла не о нулевом поколении, цифирки для которого ты так любезно подсветил, а о первом и втором:

> ПК>Нет, именно миллисекунд. И это не потолок, скорее, характерное время для сбора мусора первого поколения. Сбор объектов поколения 2 может занять значительно дольше.


> ПК>http://support.microsoft.com/default.aspx?scid=/servicedesks/webcasts/en/wc050102/wct050102.asp

> ПК>a collection of Generation 1 is typically between 10 and 30 milliseconds.


> Да и ссылки на доисторические статьи давать не очень разумно. Есть статьи и по новее, где цифорки намного скромнее.


На сколько "намного"? В два, три раза? Это не "намного", т.к. 5-15 или 3-10 это по-прежнему пропуск кадра. И это при сборке первого поколения. Сборка второго поколения, которой без ручной оптимизации работы с памятью в реальной игре не избежишь, будет заметно подольше.

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


И правильно делает, т.к. для уменьшения фрагментации кучи давным-давно есть масса распределителей памяти, замечательно с этим справляющихся.

> Так что оставь сказаки про ЖЦ тем кто никогда с ним не сталкивался лично.


http://blacklight.h1.ru/oppo09.htm

Демагогия с переходом на личности
d. Обвинение оппонента в незнании предмета обсуждения

Posted via RSDN NNTP Server 1.9 delta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[45]: Опять С++ vs С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.12.04 22:50
Оценка: -5
Здравствуйте, Павел Кузнецов, Вы писали:

>> Так что оставь сказаки про ЖЦ тем кто никогда с ним не сталкивался лично.


ПК>http://blacklight.h1.ru/oppo09.htm

ПК>

Демагогия с переходом на личности
ПК>d. Обвинение оппонента в незнании предмета обсуждения



Демагогия это твои слова. Кончай ее и таки попробуй скачать и запустить ту игрушку. Слушать эту галематью про "паузу" уже сильно надоело.

ЗЫ

И кончай чуть что прикрываться переходом на личности. А то уже тоже не смешо... лбое утверждение о твоей неправоте ты сразу объявляешь переходом на твои личности.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[44]: Опять С++ vs С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 08.12.04 22:50
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Да не особо. 2 ГГц, 10 микросекунд — это 20000 тактов, не так уж и мало.


Минимальные требования для дотнета — это PII 450. Так что на 2 ГГц — это будет где-то менее 2.5 милисек. И опять же в худшем случае, плюс раз в квартал.


VD>>PS

VD>>И все же, скачай таки ArenaWarsDemoEnglishAndGerman.exe и поиграй пору часиков. Заметишь хоть одну паузу, расскажи. Ну, а если не заметишь то перестань дезинформировать людей повторяя глупость про ЖЦ раз за разом.

MS>В ответ на это я процитирую извесный мультик

MS>

MS> — Поздравляю тебя, Шарик. Ты балбес...


Ну, это уже откровенное оскорбление. Этак я тебе магу таких цитат привести, что оптекать затрахашся.

MS>Кого это я когда-либо дезинформировал насчет "ЖЦ"?!


Извиняюсь, я отвечал параллельно на два поста. Это были слова обращенные к ПК. Он уже тут очень долго расказывает сказку о "паузах" взыванных ЖЦ и вообще о невозможности создания игр из-за наличия ЖЦ.

MS> Кстати, что такое "ЖЦ"?


GC (сборщик мусора).

MS> А игрушку не хочу — там регистрироваться заставляют. Есть где-нибудь линк без регистрации?


Я качал без регистрации. Ссылок там выше крыши.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[46]: Опять С++ vs С#
От: Павел Кузнецов  
Дата: 08.12.04 23:22
Оценка: +1 -1
VladD2,

> Демагогия это твои слова.


В чем именно? Я, например, ссылку дал с объяснением, что именно меня не устраивает в твоем сообщении.

> попробуй скачать и запустить ту игрушку. Слушать эту галематью про "паузу" уже сильно надоело.


Как бы она ни работала, это ничего не скажет относительно верности утверждения
Автор: Павел Кузнецов
Дата: 08.12.04
, к которому ты прицепился, т.к. мы понятия не имеем, не используется ли в игре ручное распределение памяти.

если реализовать все критичные действия по работе с памятью вручную, как, например, это сделано в Quake, то можно эти эффекты свести к минимуму


> И кончай чуть что прикрываться переходом на личности. А то уже тоже не смешо... лбое утверждение о твоей неправоте ты сразу объявляешь переходом на твои личности.


Discussion tries to prove what is right; an argument tries to prove who is right.


К тому же, утверждение "о неправоте" от утверждения "о недостаточности компетенции" отличается вполне заметно. Да и подмену опровержения аргументации оппонента переходом к обсуждению его компетентности не заметить тоже сложно.

Так что если не хочешь, чтобы я регулярно напоминал тебе о рамках корректного ведения дискуссии, удерживайся в них самостоятельно.
Posted via RSDN NNTP Server 1.9 delta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[45]: Опять С++ vs С#
От: Павел Кузнецов  
Дата: 08.12.04 23:30
Оценка: +1 -1
VladD2,

> MS> Да не особо. 2 ГГц, 10 микросекунд — это 20000 тактов, не так уж и мало.


> Минимальные требования для дотнета — это PII 450. Так что на 2 ГГц — это будет где-то менее 2.5 милисек. И опять же в худшем случае, плюс раз в квартал.


Т.е. сборка 1-го поколения — 2.5 — 7.5 миллисекунд. Все равно в среднем потеря кадра, т.к. времена сравнимы с временем пересчета состояния + отрисовки. Хотя уже, конечно, заметно лучше. К сожалению, при сборке второго поколения все равно будет заметные пользователю паузы (подергивания).

> ПК. Он уже тут очень долго расказывает сказку о "паузах" взыванных ЖЦ и вообще о невозможности создания игр из-за наличия ЖЦ.


Не о невозможности, а об определенных проблемах разработки. Никто не говорит, что эти проблемы не решаемы. Вопрос только в том, что разработчики предпочитают: решать эти плюс прочие проблемы, скажем, C#, или другие, связанные с использованием других языков. Все дела
Posted via RSDN NNTP Server 1.9 delta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[46]: Опять С++ vs С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.12.04 00:01
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Т.е. сборка 1-го поколения — 2.5 — 7.5 миллисекунд.


Я уже кажется говорил, что слова о 30 мелисекундах — это неверная информация. К тому же хочу заметить, что на сегодня современный компьютер идет 3 ГГц процессором (у меня лично AMD 3500+, и вроде бы тендерция идет только к ускорению процессоров), да и память ресколько шустрее чем на PII (все же минимум 800 мегагерц против 66).

ПК> Все равно в среднем потеря кадра, т.к. времена сравнимы с временем пересчета состояния + отрисовки. Хотя уже, конечно, заметно лучше. К сожалению, при сборке второго поколения все равно будет заметные пользователю паузы (подергивания).


Все слава про подергивание не соотвествуют действительности. Я уже устал повторять:
Скачай игру поиграй.

Кадры выпадают в любой игре. И не по одному, а тысячами. 10 милисек — это потеря сотого кадра. Учитывая что таких затраты времени возникают очень редко, ты никогда в жизни не заметишь пропуска этого кадра. Намного более вероятным будет пропуск кадров в связи с недостаточной скоростью видиокарты/процессора или выполнением некой ресурсоемкой операции.

ПК>Не о невозможности, а об определенных проблемах разработки.


Это выдуманные проблемы. Они могут возникнуть только на очень дохлой технике.

ПК> Никто не говорит, что эти проблемы не решаемы.


Интересно как можно решить проблемы дерганья картинки вызванные базовым рантаймом?

ПК> Вопрос только в том, что разработчики предпочитают: решать эти плюс прочие проблемы, скажем, C#, или другие, связанные с использованием других языков. Все дела


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

Проблемы у ЖЦ есть. Но ты о них ни разу не упомянул. Зато постоянно повторешь одни и теже неверные утверждения.

В общем, глаза у тебя есть. Скачай игру убедись, что никакого дерганья нет. А в том, что игра польностью менеджед можно убидиться декомпилятором.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[47]: Опять С++ vs С#
От: Павел Кузнецов  
Дата: 09.12.04 00:16
Оценка:
VladD2,

> Все слава про подергивание не соотвествуют действительности. Я уже устал повторять:

> Скачай игру поиграй.

http://rsdn.ru/forum/?mid=938721
Автор: Павел Кузнецов
Дата: 09.12.04


> ПК> Никто не говорит, что эти проблемы не решаемы.


> Интересно как можно решить проблемы дерганья картинки вызванные базовым рантаймом?


"Ручной" работой с памятью.

> в том, что игра польностью менеджед можно убидиться декомпилятором.


Кстати, посмотреть декомпилятором, как именно там организована работа с памятью — хорошая идея.
Posted via RSDN NNTP Server 1.9 delta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[45]: Опять С++ vs С#
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.12.04 08:40
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Serginio1,


>> ПК> если реализовать все критичные действия по работе с памятью вручную, как, например, это сделано в Quake, то можно эти эффекты свести к минимуму. Вопрос только в стоимости разработки с ручным управлением памятью на системе, для этого не предназначенной.


>> Выход в создании своего менеджера памяти с использованием валуе типов (массивов байт). Все зависит от задачи и нормально решаемо.


ПК>Гм... В чем здесь противоречие с выделенным?

В Том, что в Net вполне для этого пригодна правда с ограничениями на ссылочные типы.
и солнце б утром не вставало, когда бы не было меня
Re[46]: Опять С++ vs С#
От: Павел Кузнецов  
Дата: 09.12.04 17:26
Оценка: +1
Serginio1,

>>> ПК> если реализовать все критичные действия по работе с памятью вручную, как, например, это сделано в Quake, то можно эти эффекты свести к минимуму. Вопрос только в стоимости разработки с ручным управлением памятью на системе, для этого не предназначенной.


>>> Выход в создании своего менеджера памяти с использованием валуе типов (массивов байт). Все зависит от задачи и нормально решаемо.


> ПК>Гм... В чем здесь противоречие с выделенным?


> В Том, что в Net вполне для этого пригодна правда с ограничениями на ссылочные типы.


А как будет происходить создание/удаление объектов? Через MyAllocator.new()/MyAllocator.delete()? IMHO, без детерминированных деструкторов и возможности перегрузки operator new "ручная" работа с памятью значительно осложняется...
Posted via RSDN NNTP Server 1.9 delta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[47]: Опять С++ vs С#
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.12.04 17:34
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:


>> В Том, что в Net вполне для этого пригодна правда с ограничениями на ссылочные типы.


ПК>А как будет происходить создание/удаление объектов? Через MyAllocator.new()/MyAllocator.delete()? IMHO, без детерминированных деструкторов и возможности перегрузки operator new "ручная" работа с памятью значительно осложняется...

Можно и через TMyAllocator.Create TMyAllocator.Free
Так или иначе даже при хорошем менеджере памяти, создание своего специально заточенного под определенный размер менеджера памяти вполне тривиальная задача и в нативе.
Да и например Борландовский менеджер достаточно прост, что бы перенести его алгоритм для хранение валуе типов в нет.
и солнце б утром не вставало, когда бы не было меня
Re[48]: Опять С++ vs С#
От: Павел Кузнецов  
Дата: 09.12.04 18:07
Оценка: 1 (1) +1
Serginio1,

> ПК> А как будет происходить создание/удаление объектов? Через MyAllocator.new()/MyAllocator.delete()? IMHO, без детерминированных деструкторов и возможности перегрузки operator new "ручная" работа с памятью значительно осложняется...


> Можно и через TMyAllocator.Create TMyAllocator.Free

> Так или иначе даже при хорошем менеджере памяти, создание своего специально заточенного под определенный размер менеджера памяти вполне тривиальная задача и в нативе.

Я, наверное, недостаточно четко расставил акценты. Самой важной является выделенная часть. Именно это я и имел в виду ранее, говоря о "стоимости разработки с ручным управлением памятью на системе, для этого не предназначенной". В этом смысле, имхо, самым хорошим решением было бы сочетание плюсов от обоих миров: GC + средства для "ручного" управления памятью в виде детерминированных деструкторов и т.п. На первый взгляд в этом отношении C++/CLI кажется вполне удачным вариантом.
Posted via RSDN NNTP Server 1.9 delta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[49]: Опять С++ vs С#
От: Serginio1 СССР https://habrahabr.ru/users/serginio1/topics/
Дата: 09.12.04 18:41
Оценка: 1 (1)
Здравствуйте, Павел Кузнецов, Вы писали:


ПК>Я, наверное, недостаточно четко расставил акценты. Самой важной является выделенная часть. Именно это я и имел в виду ранее, говоря о "стоимости разработки с ручным управлением памятью на системе, для этого не предназначенной". В этом смысле, имхо, самым хорошим решением было бы сочетание плюсов от обоих миров: GC + средства для "ручного" управления памятью в виде детерминированных деструкторов и т.п. На первый взгляд в этом отношении C++/CLI кажется вполне удачным вариантом.

Полностью согласен.
и солнце б утром не вставало, когда бы не было меня
Re[47]: Опять С++ vs С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 09.12.04 22:32
Оценка: +1 -5
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>В чем именно? Я, например, ссылку дал с объяснением, что именно меня не устраивает в твоем сообщении.


Вот и прочел бы свою ссылку. Она как раз хорошо твои действия описывает.

>> попробуй скачать и запустить ту игрушку. Слушать эту галематью про "паузу" уже сильно надоело.


ПК>Как бы она ни работала, это ничего не скажет относительно верности утверждения
Автор: Павел Кузнецов
Дата: 08.12.04
, к которому ты прицепился, т.к. мы понятия не имеем, не используется ли в игре ручное распределение памяти.


Снова сфероконики? Игра написана на чистом шарпе. Возми Рефлектор (декомпайлер) и убедись в этом лично. Там несколько сборок чистого дотнетного кода. Все импорты там перечислены.

ПК>

ПК>Discussion tries to prove what is right; an argument tries to prove who is right.


И цитататы на английском тоже кончай сувать. Я их лично даже не буду пытаться переводить. Уж на русском форуме я хочу видеть русский текст. Мне и так хватает чего по английски читать.

ПК>К тому же, утверждение "о неправоте" от утверждения "о недостаточности компетенции" отличается вполне заметно. Да и подмену опровержения аргументации оппонента переходом к обсуждению его компетентности не заметить тоже сложно.


Зато ее очень удобно подмечать там где ее нет.

ПК>Так что если не хочешь, чтобы я регулярно напоминал тебе о рамках корректного ведения дискуссии, удерживайся в них самостоятельно.


В прошлом сообщении небыло и намека на твою компетенцию. Там был намек на втюхивание неверной информации. А то что ты на отрез отказывашся убидиться в своей неправоте наводит на мысль о намеренности этого втюхивания.

Еще раз повторюсь, что твои утверждения касательно невозможности приме
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[48]: Опять С++ vs С#
От: VladD2 Российская Империя www.nemerle.org
Дата: 10.12.04 20:05
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>"Ручной" работой с памятью.


Как ты себе видишь "ручную" работу с менеджед-типами?

>> в том, что игра польностью менеджед можно убидиться декомпилятором.


ПК>Кстати, посмотреть декомпилятором, как именно там организована работа с памятью — хорошая идея.


Да нет там работы с памятью. Память боле не ресурс.

Декомпайлер тебе поможет убедиться, что весь проект создан с использовнием обычных менеджед-структур-данных, а стало быть память управляется ЖЦ.

ЗЫ

Я правильно понял, что игрушку ты уже скачал? Таки уже большой сдвиг.
... << RSDN@Home 1.1.4 beta 3 rev. 207>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[45]: Опять С++ vs С#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.12.04 22:09
Оценка: 3 (2)
Здравствуйте, VladD2, Вы писали:

VD>Минимальные требования для дотнета — это PII 450. Так что на 2 ГГц — это будет где-то менее 2.5 милисек. И опять же в худшем случае, плюс раз в квартал.


Фреймворк 1.1, янус в стабильном состоянии, AthlonXP 2.1ГГц. Сборка нулевого поколения 100-130 микросекунд. Сборка в самом тяжелом состоянии — 240 микросекунд.
... << RSDN@Home 1.1.4 beta 3 rev. 255>>
AVK Blog
Re[46]: Опять С++ vs С#
От: Павел Кузнецов  
Дата: 11.12.04 00:49
Оценка:
AndrewVK,

> Фреймворк 1.1, янус в стабильном состоянии, AthlonXP 2.1ГГц. Сборка нулевого поколения 100-130 микросекунд. Сборка в самом тяжелом состоянии — 240 микросекунд.


А первого и второго?
Posted via RSDN NNTP Server 1.9 delta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[47]: Опять С++ vs С#
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.12.04 10:12
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

>> Фреймворк 1.1, янус в стабильном состоянии, AthlonXP 2.1ГГц. Сборка нулевого поколения 100-130 микросекунд. Сборка в самом тяжелом состоянии — 240 микросекунд.


ПК>А первого и второго?


Не измерял
... << RSDN@Home 1.1.4 beta 3 rev. 255>>
AVK Blog
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.