Re[17]: [геймдев] C++ сдает позиции
От: Тот кто сидит в пруду Россия  
Дата: 04.12.09 13:49
Оценка:
Здравствуйте, CreatorCray, Вы писали:

NBN>>Феррари определённо плохая машина.

CC>И не гавары! Усяго тры мяшка картошки улазить!

бульбы
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[32]: [геймдев] C++ сдает позиции
От: CreatorCray  
Дата: 04.12.09 13:51
Оценка:
Здравствуйте, Turyst, Вы писали:

T>Не, я ж давал ответ на вопрос mrTwister-а

Тут форум древовидный. И ответ ты дал на своё же сообщение.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[22]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 13:53
Оценка:
Здравствуйте, ambel-vlad, Вы писали:


AV>>>Ты хочешь сказать, что в дотнете нельзя организовать утечки памяти? Тебе прислать простейший код, который организует утечку?


I>>Был конкретный пример — любое исключение при использовании динамической аллокации можт привести к утечкам строк например.


AV>А может и не привести. Это смотря как писать.


Я про это и говорю, что писать нужно очень внимательно и аккуратно.

А в дотнет в этом месте утечки в принципе невозможны.

I>>В дотнет нет и быть не может утечки строк.


AV>Да що ты говоришь. Что, совсем-совсем не может быть?


Покажи, как могут строки утекать. Только контекст не потеряй.

Я объяснил как можно получить утечку в с++, не надо никаких глобальных присваиваний и тд и тд — достаточно передать параматры в метод.

I>>Например, если ты пользуешь динамическую аллокацию для строк или каких нить мелких объектов, их нужно обязательно запомнить в переменных а место могущее вызвать утечку обернуть в try catch дабы корректно освобдить. Без этого деструктор будет вызвать некому


AV>Паша, не обижайся, но твои познания плюсов оставляют желать лучшего.


Покажи внятно, где я неправ, если можешь.

I>>Кроме того, нельзя использовать динамику и указатели во всяких долбаных операторах.


AV>Можно разъяснить сей шифротекст?


Это не шифротекст. С++ ты уже забыл, а дотнет еще не выучил

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


AV>Ты только строчками и пользуешься? Кстати, что помешает мне положить строку в объект, который утечет вместе с этой строкой?


Строки кстати говоря используются очень широко во всех программах даже на с++.

Не валяй дурака — показывай код, как будут утекать строчки. В с++ обычное исключение может подвесить целый вагон строчек и мелких объектов в памяти.
В дотнет это невозможно в принципе. На том собственно стоит весь менеджед подход
Re[33]: [геймдев] C++ сдает позиции
От: Turyst  
Дата: 04.12.09 13:54
Оценка:
Здравствуйте, CreatorCray, Вы писали:

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


T>>Не, я ж давал ответ на вопрос mrTwister-а

CC>Тут форум древовидный. И ответ ты дал на своё же сообщение.

Ответ я дал на его ответ, не мысли шаблонами
Re[23]: [геймдев] C++ сдает позиции
От: CreatorCray  
Дата: 04.12.09 13:56
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Фетиш никто не делает. Я говорил про GC в контексте управления памяти. От тебя требуется рассказать, как наличие доп. ядра процессора скажется на работе дотнет приложения и нативного. Предположим, для простоты, специально многопроцессорность не планировалась.

Единственным аргументом тут будет исходник native и .net прог, с тестами на производительность и результатами измерений.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[18]: [геймдев] C++ сдает позиции
От: CreatorCray  
Дата: 04.12.09 13:56
Оценка: :))) :)
Здравствуйте, Тот кто сидит в пруду, Вы писали:

NBN>>>Феррари определённо плохая машина.

CC>>И не гавары! Усяго тры мяшка картошки улазить!

ТКС>бульбы

Гэта апазицийнае название!!!
Правильна будзе картошки!!!11111адзинадзинадзин
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[20]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 13:57
Оценка: :)
Здравствуйте, Eugeny__, Вы писали:

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



I>>С дотнетом ты просто не можешь взять и ошибиться — дотнет тебе просто не даст. Утечкам просто негде взяться.


E__>Но-но!


E__>С определенной кривизной рук можно организовать утечку и в дотнете. Например, забывая удалять объекты из коллекций, на которые есть живые ссылки. И я уверен, что и на такое натыкаются(особенно учитывая, что некоторая часть программеров на дотнете не особо разбирается в том, как работает GC).


Да, есть еще такая дыра как анонимные делегаты. Я знаю это все. И про анменеджед тоже знаю

Для просты можно сравнить чисто строчки, даже не BSTR а самы простые, главное что бы динамически выделялись.

Ряд ситуаций в дотнет не возможен в принципе и очень часто встречается в с++. Настолько часто, что стоит найти один метод, вовращающий указатель динамику, то увереностью можно казать, в большом проекте он даст минима одну утечку.
Re[24]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 13:57
Оценка:
Здравствуйте, IID, Вы писали:

CC>>>Играются на них точно так же как и на других компах.

CC>>>У самого нетбук, спецом брался чтоб поменьше габаритами да подольше от батареи жил.
CC>>>HD видео 720p тянет, игры на нём идут. 1 гиг оперативы, маловато, но пока хватает.

I>>Это пока.


IID>Пока игры на C# писать не начали ?


Целиком — нет, можешь расслабиться.
Re[34]: [геймдев] C++ сдает позиции
От: NikeByNike Россия  
Дата: 04.12.09 14:16
Оценка:
Здравствуйте, Turyst, Вы писали:

T>>>Не, я ж давал ответ на вопрос mrTwister-а

CC>>Тут форум древовидный. И ответ ты дал на своё же сообщение.

T>Ответ я дал на его ответ, не мысли шаблонами


Если что — я пошутил.
Нужно разобрать угил.
Re[24]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 14:22
Оценка:
Здравствуйте, CreatorCray, Вы писали:

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


I>>Фетиш никто не делает. Я говорил про GC в контексте управления памяти. От тебя требуется рассказать, как наличие доп. ядра процессора скажется на работе дотнет приложения и нативного. Предположим, для простоты, специально многопроцессорность не планировалась.

CC>Единственным аргументом тут будет исходник native и .net прог, с тестами на производительность и результатами измерений.

Есть статья про сравнение хипа и GC

http://rsdn.ru/article/dotnet/GC.xml
Автор(ы): Чистяков Влад (VladD2)
Дата: 14.06.2006
Уже много сказано слов о том, что такое GC, чем он хорош и как лучше его применять. Но, наверно, очень многим хочется знать, как устроен конкретный GC. Данная статья открывает некоторые подробности устройчтва GC в .NET Framework.


Можно начать отсюда. Выложить алгоритмы к сожалению не могу.
Re[33]: [геймдев] C++ сдает позиции
От: ambel-vlad Беларусь  
Дата: 04.12.09 14:35
Оценка:
Здравствуйте, Ikemefula, Вы писали:


AV>>Считай. В 2004 году — 0.5 года. Потом до лета 2007 года время от времени. С лета 2007 и по сей день.


I>>>Хочу увидеть цифру от 0 до 9.


AV>>Сосчитать сумеешь?


I>В сумме — 3 года. Это нормальный опыт для вчерашнего студента.


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

I>>>ASP значит просто так было придумано ? Не знал, не знал.


AV>>И каким боком ASP к плюсам? На ASP на разных языках можно было писать. Причем, как правило писали либо на VB либо на JScript.


I>Писали в т.ч. и на с++ и не мало.


И? Это никак не означает, что эта ниша для С++. Это делали скорее от безысходности.

I>>>Смотришь, где раньше был С++ — это 100%. Смотришь, сколько всего потерял — вычитаешь. Сколько нового получил — прибавляешь.


AV>>И где же был С++ раньше, там где сейчас Сильверлайт? Или ты про пихание ActiveX в страницы? Если да, то это как говорится на безрыбьи и рак рыба.


I>цитирую "Смотришь, сколько всего потерял — вычитаешь. Сколько нового получил — прибавляешь."


Паша, использование ActiveX никак не означает, что веб является нишей для плюсов. Так что то, что он оттуда ушел еще ничего не значит. Особенно в ракурсе того, что в данной подветке первоначально речь шла про сервера.


I>>>>>Итого, с момента распростренения менеджед технологий С++ потерял где то не менее 40% своих исконных ниш.


AV>>>>Паша, давай ты не будешь рассуждать с умным видом о том, чего ты не пробовал сделать. Думаешь, что только ты знаешь про swig, а остальные такие тупые?


I>>>Говори толком и по существу — как пишете "биндинги". Автоматом или ручная работа в наличии ?


AV>>Да, ручная работа есть. А теперь ответь прямо тоже. С чего ты решил, что swig может решить наши проблемы?


I>swig для примера привел. Мне интересно, как вы решили проблему.


Разрешу себе потелепать. Я более чем уверен, что это тебе не интересно. Тем более, что одним-двумя предложениями это не объяснить. Потому что надо знать не только как было сделано, но и почему именно так, а не иначе. А это уже разговор на несколько часов. Как минимум.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[23]: [геймдев] C++ сдает позиции
От: ambel-vlad Беларусь  
Дата: 04.12.09 14:35
Оценка:
Здравствуйте, Ikemefula, Вы писали:

AV>>>>Ты хочешь сказать, что в дотнете нельзя организовать утечки памяти? Тебе прислать простейший код, который организует утечку?


I>>>Был конкретный пример — любое исключение при использовании динамической аллокации можт привести к утечкам строк например.


AV>>А может и не привести. Это смотря как писать.


I>Я про это и говорю, что писать нужно очень внимательно и аккуратно.


I>А в дотнет в этом месте утечки в принципе невозможны.


И что? Можем спокойно получить в другом.

I>>>В дотнет нет и быть не может утечки строк.


AV>>Да що ты говоришь. Что, совсем-совсем не может быть?


I>Покажи, как могут строки утекать. Только контекст не потеряй.


I>Я объяснил как можно получить утечку в с++, не надо никаких глобальных присваиваний и тд и тд — достаточно передать параматры в метод.


И что? Да, можно получить утечку. С этим никто не спорит. В так любимом тобой дотнете нету утечек? Есть. Только получаются иначе. А упование на то, что GC сам все соберет часто приводит к плачевным результатам.

I>>>Например, если ты пользуешь динамическую аллокацию для строк или каких нить мелких объектов, их нужно обязательно запомнить в переменных а место могущее вызвать утечку обернуть в try catch дабы корректно освобдить. Без этого деструктор будет вызвать некому


AV>>Паша, не обижайся, но твои познания плюсов оставляют желать лучшего.


I>Покажи внятно, где я неправ, если можешь.


Если не упираться в использование голых указателей, то все деструкторы прекрасно вызовутся сами.

I>>>Кроме того, нельзя использовать динамику и указатели во всяких долбаных операторах.


AV>>Можно разъяснить сей шифротекст?


I>Это не шифротекст. С++ ты уже забыл, а дотнет еще не выучил


Интересная расшифровка. Никогда бы не подобрал ключю

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


AV>>Ты только строчками и пользуешься? Кстати, что помешает мне положить строку в объект, который утечет вместе с этой строкой?


I>Строки кстати говоря используются очень широко во всех программах даже на с++.


I>Не валяй дурака — показывай код, как будут утекать строчки. В с++ обычное исключение может подвесить целый вагон строчек и мелких объектов в памяти.


Вот тебе псевдокод.

MyClass o=new MyClass();
o.strProp = "xxx";
longLiveObj.myEvent += new XXXEvent(o.Method);
o=null;

И куда же делась наша строчка?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[23]: [геймдев] C++ сдает позиции
От: ambel-vlad Беларусь  
Дата: 04.12.09 14:35
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>>>Ты не показал этого. Интересуют модели которые выпускются сейчас, мы то про сейчас говорим, а не вообще.


AV>>Считаешь иначе, ищи доказательства.


I>Мы говорим про сейчас а не вообще. Неужели не ясно что это значит ?


I>Расклад по современным моделям будет такой же как я показал в примере про core 2 duo в пределах стат. погрешности.


Паша. Перечитай следующее предложение медленно, вдумываясь в каждое слово. Ты сравнил кол-во моделей с памятью 2+ ГБ и кол-вом моделей с памятью 2+ ГБ плюс кол-во моделей с памятью менее 2 Гб. Как ты предлагаешь на основе твоих данных сравнить кол-во моделей с памятью 2+ и 4+ Гб?

I>>>а не мини-, суб-, нет-.


AV>>А эти чем тебе не угодили?


I>Потому что их нельзя сравнить с обычнымкомпоп. А полноценный ноут, даже деск-, — можно


Далеко не каждый ноут тоже можно сравить с компом. А некоторые нетбуки сравнимы и с номальными ноутами.

I>>>Заметь — ты до сих пор ничего не сказал про GC и многоядерность/процессорность.


AV>>Паша, задавай конкретные вопросы, тогда и получишь конкретные ответы. Потому что в твоей постановке вопрос тянет не на один диссер.


I>Пиши, здесь люди умные, разберутся.


Писать в подобном направлени у меня нет и желания ни времени.

AV>>Если в двух словах. То GC по умолчанию нет. Да, GC позволяет использовать другие техники программирования. Но и только. Не стоит делать из него фетиш. Многоядерность/процессорность? Без проблем. Спокойно юзаем. А что?


I>Не понял что значит "GC по умолчанию нет", где его нет ?


В плюсах.

I>Фетиш никто не делает. Я говорил про GC в контексте управления памяти. От тебя требуется рассказать, как наличие доп. ядра процессора скажется на работе дотнет приложения и нативного. Предположим, для простоты, специально многопроцессорность не планировалась.


Брать абстрактные приложения? Ничего сказать нельзя.

Да, кстати, о каком GC ты говоришь? А то разные ведут себя по разному. Да и от поколения еще зависит.

AV>>Паша, это делает один человек. И это в общем объеме проекта занимает такую мизерную часть, что говорить о том, что планка требований поднимается на недостижимую высоту, как минимум, глупо.


I>Да ладно. Хороший аллокатор да еще и универсальный это очнь сложно.


И это конечно подымает планку аж на всем проекте.

I>По этой причине с++ идет с crt хипом по дефолту.


I>было бы это просто, в операторе new что по дефолту, был бы другой код.


Потому что тот универсальный аллокатор в подавляющем количестве случае более чем достаточен. И только когда его не хватает, то делают свой, который заточен под конкретную задачу.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[21]: [геймдев] C++ сдает позиции
От: neFormal Россия  
Дата: 04.12.09 14:35
Оценка:
Здравствуйте, Ikemefula, Вы писали:

CC>>Хорошо, убедил, ТЕБЕ на С++ писать мучительно больно и трудно. Сплошные непонятки и трудности.

I>Мне было нормально. Мне на любом языке нормально пишется.

... как на фортране?. :3
...coding for chaos...
Re[15]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 14:40
Оценка:
Здравствуйте, CreatorCray, Вы писали:

CC>>Если найду. Она где то в середине какого то очередного срача в стиле "какой плохой С++ и какой хороший С#"

CC>Вот тебе ссылка где есть ссылки на то как усё было: http://rsdn.ru/forum/flame.comp/3341502.aspx
Автор: CreatorCray
Дата: 25.03.09


CC>Exe за давностью я с сайта уже наверное потёр, но сурсы где то валялись.

CC>Если тебе сильно припрёт — завтра найду и соберу.

Господи, ты зря старался. Есть ведь статья http://www.rsdn.ru/article/cpp/QuickHeap.xml
Автор(ы): Чистяков Владислав
Дата: 26.11.2002
и сравнение оного с GC(косвенно) http://rsdn.ru/article/dotnet/GCnet.xml
Автор(ы): Игорь Ткачев
Дата: 06.12.2002
Алгоритм работы сборщика мусора (garbage collector, далее просто GC), являющегося частью CLR, подробно описан в книге Джефри Рихтера (Jeffrey Richter) «Applied Microsoft .NET Framework Programming». Мы не будем приводить здесь столь же подробное описание этого алгоритма, но обязательно остановимся на некоторых ключевых моментах.


Я не понял, что ты хотел объяснить Владу и мне. Что можно написать хип который будет работать быстрее GC в ряде случаев?

Можно, я знаю.

Вот касательно твоего хипа, как он выдержт такое — память выделяетяс мелкими объектами под завязку, т.е. где о 1.5-1.8 гб, а потом где то половина-две трети освобождается и выделяется память объектами большего размера обратно под завязку.

вот qh это срубает наповал потому что там пул на размер объекта. А у тебя как будет ?

Дотнетовский вполне прилично справляется. Единсвенная проблема может возникнуть, если объекты более 10 мб или долгоживущие, в последнем поколении, их gc не двигает.

P.S. Говорят, если ИТ забанить на форуме, то он напишет два раза больше отличных статей
Re[25]: [геймдев] C++ сдает позиции
От: CreatorCray  
Дата: 04.12.09 14:47
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>Есть статья про сравнение хипа и GC

I>http://rsdn.ru/article/dotnet/GC.xml
Автор(ы): Чистяков Влад (VladD2)
Дата: 14.06.2006
Уже много сказано слов о том, что такое GC, чем он хорош и как лучше его применять. Но, наверно, очень многим хочется знать, как устроен конкретный GC. Данная статья открывает некоторые подробности устройчтва GC в .NET Framework.

Про GC краткое описание принципов работы вижу, а где сравнение?

I>Можно начать отсюда. Выложить алгоритмы к сожалению не могу.

Нет, теоретические "А победит Б" не интересуют. Нужно то, что можно проверить практически.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[24]: [геймдев] C++ сдает позиции
От: Eugeny__ Украина  
Дата: 04.12.09 14:53
Оценка:
Здравствуйте, ambel-vlad, Вы писали:


AV>И что? Да, можно получить утечку. С этим никто не спорит. В так любимом тобой дотнете нету утечек? Есть. Только получаются иначе. А упование на то, что GC сам все соберет часто приводит к плачевным результатам.


Ну, объективно говоря, получить утечку в дотнете или жабе сильно сложнее. Хотя, конечно, поговорку "заставь дурака богу молиться, он и лоб разобьет" тоже не зря придумали.
Новости очень смешные. Зря вы не смотрите. Как будто за наркоманами подсматриваешь. Только тетка с погодой в завязке.
There is no such thing as a winnable war.
Re[25]: [геймдев] C++ сдает позиции
От: ambel-vlad Беларусь  
Дата: 04.12.09 15:03
Оценка:
Здравствуйте, Eugeny__, Вы писали:

AV>>И что? Да, можно получить утечку. С этим никто не спорит. В так любимом тобой дотнете нету утечек? Есть. Только получаются иначе. А упование на то, что GC сам все соберет часто приводит к плачевным результатам.


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


Да, такие утечки как на плюсах там либо не получить, либо получить очень сложно. С этим глупо спорить. Но другие виды утечек встречаются достаточно часто. Особенно часто это происходит из-за излишних надежд на GC. Что же касается плюсов, то минимизация работы с голыми указателями значительно уменьшает и вероятность утечек.

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


Это точно.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[18]: 2Sheridan
От: Cadet  
Дата: 04.12.09 15:06
Оценка: 2 (1) +2
Здравствуйте, Mamut, Вы писали:

M>Хотя нет. Линукс — он добрый и пушистый. Когда в Линуксе меняются технологии, это — нормально. Но когда это делает МС — это зло!!!!! Почему? Потому что Шеридан так решил, он же логикой не пользуется.


Нет, вообще говоря определенная логика все же есть. Для возможности пользования новыми технологиями как в линуксе так и в виндах потребуется обновление операционной системы, при этом стоимость самой операционки в случае линукса = 0, и, как я понял, Шеридан именно это ставит во главу своих доказательств что смена технологий в линухах безболезненна и естественна. При этом он не учитывает, что общая цена перехода может оказаться такой, что стоимость операционки просто потеряется на этом фоне.
... << RSDN@Home 1.2.0 alpha 4 rev. 1300>>
Re[34]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 15:08
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

I>>>>Хочу увидеть цифру от 0 до 9.


AV>>>Сосчитать сумеешь?


I>>В сумме — 3 года. Это нормальный опыт для вчерашнего студента.


AV>Пашенька, золотце ты мое, ты очень самокритичен. Неколько ранее, ты с гордостью сообщал, что твой опыт работы с дотнетом такой же.


Ну ка, дай мне ссылку. Только не забудь показать как ты посчитал, проверм твою арифметику. Я вот помню что дотнетом занялся задолго до того, как женился, а женился в начале 2003го и периодически работал на двух работах, одна с++, вторая — дотнет, при том три года как не пользую с++.

Шота мне кажется, ты снова сел в лужу.

I>>Писали в т.ч. и на с++ и не мало.


AV>И? Это никак не означает, что эта ниша для С++. Это делали скорее от безысходности.


Это сейчас так очевидно. А тогда сиплюсники орали точь в точь как ты сейчас.

Интересно, где они сейчас ?

I>>цитирую "Смотришь, сколько всего потерял — вычитаешь. Сколько нового получил — прибавляешь."


AV>Паша, использование ActiveX никак не означает, что веб является нишей для плюсов. Так что то, что он оттуда ушел еще ничего не значит. Особенно в ракурсе того, что в данной подветке первоначально речь шла про сервера.


Ранее являлся. Писали — значит была такая ниша. Перестали — значит вытеснили.

А первоначально речь шла про геймдев, ан е про сервера. Просто кое кому было удобно спрыгнуть на сервера в контексте ММО.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.