Re[18]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 12:00
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

I>>В теории все просто, а на практике кк то не так.

I>>В дотнет хоть у тебя трижды кривые руки такого не выйдет.

AV>На практике всюду как-то не так выходит.


Что именно не приходит ? В большинстве проектов где пользовались BSTR были ошибки. Сутки работы — 70мб утечек, при том это было в то время когда памяти было в среднем 128-256 на комп.

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

В с++ ты должен десять раз подумать прежде чем воспользоваться неявной динамичекой аллокацией памяти.

Более того, даже явной в ряд случаев нужно пользоваться очень осторожно из за исключений.

особенно это актуально с мега-враперами АПИ и COM, которые любят бросать исключения.

В дотнете конструкция любой степени вложенности не может дать утечек в принципе.

В с++ же ошибки могут начать валиться вот здесь CreateSomething(One,Two,Three) — просто при передаче аргументов и возникновения исключения.

Что бы научиться писать код, который не даст утечек, девелоперу надо минима года два тренироваться усиленно именно в этом направлении — использование указателей и кодинг без утечек.

В дотнет ничего подобного не нужно.
Re[16]: [геймдев] C++ сдает позиции
От: neFormal Россия  
Дата: 04.12.09 12:02
Оценка:
Здравствуйте, NikeByNike, Вы писали:

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


языки разметки в список входят?.

много языков — тоже плохо.. тем более с разными парадигмами..
...coding for chaos...
Re[16]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 12:03
Оценка:
Здравствуйте, CreatorCray, Вы писали:

AV>>>То-то я смотрю на пример реализации от CreatorCray, которая, насколько я знаю, особо и не вылизывалась. Она так тормозит, так тормозит, что оставляет за спиной так расхваливаемый тобой C#.

I>>Я пока что не видел его.
CC>Я тебе там ссылку на тот топик запостил, кстати.

Я шота не могу найти, что куда ты запостил. Помоги пожалуйста.
Re[19]: [геймдев] C++ сдает позиции
От: ambel-vlad Беларусь  
Дата: 04.12.09 12:04
Оценка:
Здравствуйте, Ikemefula, Вы писали:


AV>>И ты еще других упрекаешь в неумении читать и считать. Что ты этим примером показал? Сколько моделей имеет памяти менее 2 Гб?


I>Разумеется. Это и отражает основные тенденции. Модели не клепают ради моделей, но ради продаж.


Паша, еще раз. Посмотри сколько найдено с 2 и более гига памяти и 4 и более. А не то, что ты написал.

I>>>Я и говорю — на вопрос не ответио, включил дурачка. Это мне и не нравится.


AV>>Завадай конкретные вопросы — получишь конкретные ответы.


I>Было спрошено более чем конкртетно.


Да, да. Мы уже давно знаем, что с выражением своих мыслей на русском языке у тебя проблемы. Ты это достаточно давно и однозначно писал.

I>Просто ты в дотнете разбираешься как табуретка под мной


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

AV>>>>>>Паша, эту замену уже проделывала не одна сотня людей. Даже если тебе не подойдет ни один из существующих, то можно написать свою реализацию, в которой будут такие эффекты, какие тебе только приснятся.


I>>>Я знаю, я сам такое проделывал. Но чем больше проект тем сложнее это сделать.


AV>>Конкретнее.


I>Например нужно обеспечить поддержку многопоточности грамотную.


Это все делается один раз в аллокаторе. Какая сложность для остального проекта?

I>Например надо бороться с фрагментацией. Не совсем ясно, как это можно делать на нативном с++ с его указателями.


Если фрагментация действительно мешает, то методы борьбы с ней тоже есть. Только это уже достаточно редкий случай, чтобы выносить его в обобщенный код.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[19]: [геймдев] C++ сдает позиции
От: ambel-vlad Беларусь  
Дата: 04.12.09 12:07
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>>>В теории все просто, а на практике кк то не так.

I>>>В дотнет хоть у тебя трижды кривые руки такого не выйдет.

AV>>На практике всюду как-то не так выходит.


I>Что именно не приходит ? В большинстве проектов где пользовались BSTR были ошибки. Сутки работы — 70мб утечек, при том это было в то время когда памяти было в среднем 128-256 на комп.


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


Да ты шо?

Ты хочешь сказать, что в дотнете нельзя организовать утечки памяти? Тебе прислать простейший код, который организует утечку?
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[20]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 12:09
Оценка:
Здравствуйте, NikeByNike, Вы писали:

I>>С дефрагментацией приходится сталкиваться всякий раз когда памяти требуется под завязку, это не зависит от объема, главное что бы под завязку.

NBN>1. При наличии виртуальной памяти ты с ней врядли реально столкнёшься.

В 32х разрядных апликциях АП ограничено 2ГБ, виртуалка тебя не спасет.
Вот в 64х разрядных где 8 терабайт АП и при наличии должного размера ОП можно не беспокоиться.

NBN>2. GC классно решает вопрос дефрагментации — оставляет доступной только половину. С++ тоже так может


Это так кажется У меня вот прога отгрызает 1.5 гига, кк это возможно с учетом твоих слов — не ясно.

NBN>3. Как раз в случае игр вопрос дефрагментации решается очень просто, потому что игры обычно живут в своей песочнице с заранее заданными ограничениями и протестированными уровнями. Например последние игры которую я делал — использовали память по максимуму, приходилось десятки килобайт оптимизировать чтобы всё влезло (в том числе чтобы загрузился уровень — приходилось выгружать всё остальное ). Тем не менее — дефрагментация легко подавлялась.


Постепенно люди перейдут на 64бита и менеджед и про такое можно будет забыть вовсе.
Re[28]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 12:09
Оценка:
Здравствуйте, Eugeny__, Вы писали:

I>>Интернет-магазины это уже давно не джава.


E__>А там когда-то была жаба? Насколько я знаю, из-за специфики(много магазинов на одном хостинге + небольшая загрузка каждого) там прочно укоренились php, perl и прочие интерпритируемые скрипты, работающие по принципу "получил запрос"-"загрузил"-"выполнил"-"забыл(выгрузил)". Ни плюсы, ни шарп, ни жава для таких вещей не годятся.


Была. Давно.
Re[19]: [геймдев] C++ сдает позиции
От: NikeByNike Россия  
Дата: 04.12.09 12:10
Оценка: 1 (1) +2
Здравствуйте, Ikemefula, Вы писали:

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


Хых, а если в каком-нибудь глобальном словаре зарегистрируешь большую структуру и забудешь?
К тому же в С++ GC можно использовать, только обычно не нужно.

I>В с++ ты должен десять раз подумать прежде чем воспользоваться неявной динамичекой аллокацией памяти.

Вобщем-то это признание в том, что С++ ты не владеешь. vector + auto_ptr + shared_ptr + weak_ptr — наше всё

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


Я описал как она может происходить

I>В с++ же ошибки могут начать валиться вот здесь CreateSomething(One,Two,Three) — просто при передаче аргументов и возникновения исключения.


В шарпе тоже может, оно зависит восновном от подходов.

I>В дотнет ничего подобного не нужно.

Собственно да, этого не отнять. Но с другой стороны перейти на шарп всё никак не получается, в ряде областей С++ незаменим — например кроссплатформенные эффективные приложения.
Нужно разобрать угил.
Re[17]: [геймдев] C++ сдает позиции
От: NikeByNike Россия  
Дата: 04.12.09 12:12
Оценка: +1
Здравствуйте, neFormal, Вы писали:

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


F>языки разметки в список входят?.


F>много языков — тоже плохо.. тем более с разными парадигмами..


Ну такова селяви. Шейдеры, С++, Луа\Питон, Шарп для тулов — обычный набор.
Нужно разобрать угил.
Re[20]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 12:13
Оценка:
Здравствуйте, NikeByNike, Вы писали:

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


I>>Ты не боись, бить людей даже арматурой тяжелая физическая работа, а я такую не люблю.


NBN>Ржавая пила лучше, рекомендую.


Ржавая пила гораздо менее эффективна. Арматуру можно бросить в догонку. Кроме того, если устал бить, можно просто подымать арматуру и давать сть свободно упасть. Кроме того, арматурой можно не бить, а зажимать конечности, шею посредством рычага. Можно положить арматуру на грудную клетку и встать на края ногами. Удушение — очень действенный аргумент.
Re[7]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 12:14
Оценка:
Здравствуйте, NikeByNike, Вы писали:

I>>>>Геймдевщики обычно не бегают с конторы на контору. Лет за 5-10 вполне возможно.


NBN>>>В геймдеве довольно маленькие зп -> текучка.


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


NBN>Геймдев требует сравнительно высокой квалификации и энтузиазма, такие люди могут легко найти и более оплачиваемую работу.


В бузнесе том же такой человек быстро заскучает.
Re[21]: [геймдев] C++ сдает позиции
От: NikeByNike Россия  
Дата: 04.12.09 12:15
Оценка: :)
Здравствуйте, Ikemefula, Вы писали:

NBN>>Ржавая пила лучше, рекомендую.


I>Ржавая пила гораздо менее эффективна. Арматуру можно бросить в догонку. Кроме того, если устал бить, можно просто подымать арматуру и давать сть свободно упасть. Кроме того, арматурой можно не бить, а зажимать конечности, шею посредством рычага. Можно положить арматуру на грудную клетку и встать на края ногами. Удушение — очень действенный аргумент.


С ржавой пилой этого всего просто не нужно, проверенно неоднократно.
Нужно разобрать угил.
Re[14]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 12:17
Оценка: :)
Здравствуйте, NikeByNike, Вы писали:


I>>После таких игр с памятью обычно и приходится фиксить не пойми что.


NBN>Это, уж извиняюсь, от кривизны рук зависит.


Плохая технология, если зависит от кривизны рук.
Re[8]: [геймдев] C++ сдает позиции
От: NikeByNike Россия  
Дата: 04.12.09 12:17
Оценка:
Здравствуйте, Ikemefula, Вы писали:

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


NBN>>Геймдев требует сравнительно высокой квалификации и энтузиазма, такие люди могут легко найти и более оплачиваемую работу.


I>В бузнесе том же такой человек быстро заскучает.


Значит, что он профи так и не стал
К тому же бизнес разный бывает, мне сейчас не скучно (правда игры я продолжаю делать, но вторым потоком).
Нужно разобрать угил.
Re[20]: [геймдев] C++ сдает позиции
От: Ikemefula Беларусь http://blogs.rsdn.org/ikemefula
Дата: 04.12.09 12:18
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

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


I>>Ты не боись, бить людей даже арматурой тяжелая физическая работа, а я такую не люблю.


AV>Ой, спасибо, успокоил. Теперь до гроба буду тебе благодарен.


Благодарности ни к чему. Просто можешь раслабиться когда пишешь всякие мега опусы на форум
Re[15]: [геймдев] C++ сдает позиции
От: NikeByNike Россия  
Дата: 04.12.09 12:22
Оценка:
Здравствуйте, Ikemefula, Вы писали:

I>>>После таких игр с памятью обычно и приходится фиксить не пойми что.


NBN>>Это, уж извиняюсь, от кривизны рук зависит.


I>Плохая технология, если зависит от кривизны рук.


Феррари определённо плохая машина.
Нужно разобрать угил.
Re[13]: [геймдев] C++ сдает позиции
От: IID Россия  
Дата: 04.12.09 12:22
Оценка:
Здравствуйте, Ikemefula, Вы писали:

NBN>>Во время игры — одним блоком грузишь, в один проход восстанавливаешь указатели и виртуальные функции — и всё, у тебя всё взлетело. Чего-то быстрее этого я не видел.


I>У тебя геймплей это загрузки-выгрузки ? Хочешь угадаю, системы, приложения ты сравниваешь по времени загрузки ?


Скорость загрузки это тоже очень важно. На консолях если не уложился — не будешь издан. C содроганием вспоминаю загрузки QuickSave-ов в сталкере. Вот только я загрузился — меня тут же убили. Я жму загрузить ещё раз. Вроде бы локация та же самая. Текстуры и модели все в памяти. Памяти тоже достаточно было — 4гб. Ан-нет. Сиди, дрочи опять минут 7, пока это тормозилово заново всё с диска прожуёт. Плюнул и забил на сталкер, поиграв всего буквально пару часов. В других шутерах я такого ахтунга не наблюдал. Там Quick это действительно Quick. Видимо сталкер сишарписты писали Скорость разработки, опять же
kalsarikännit
Re[21]: [геймдев] C++ сдает позиции
От: ambel-vlad Беларусь  
Дата: 04.12.09 12:22
Оценка:
Здравствуйте, Ikemefula, Вы писали:

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


I>>>Ты не боись, бить людей даже арматурой тяжелая физическая работа, а я такую не люблю.


AV>>Ой, спасибо, успокоил. Теперь до гроба буду тебе благодарен.


I>Благодарности ни к чему.


Самокритично.
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
Re[20]: [геймдев] C++ сдает позиции
От: IID Россия  
Дата: 04.12.09 12:24
Оценка:
Здравствуйте, ambel-vlad, Вы писали:

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


AV>Да ты шо?


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


Выкладывай сюды
kalsarikännit
Re[26]: [геймдев] C++ сдает позиции
От: mrTwister Россия  
Дата: 04.12.09 12:24
Оценка: :)
Здравствуйте, NikeByNike, Вы писали:

NBN>Оно всё зачастую значительно проще чем кажется и физика не настоящая, а что называется — по мотивам реальной.


Прошу прощения, а что такое "настоящая физика"?
лэт ми спик фром май харт
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.