Здравствуйте, ambel-vlad, Вы писали:
I>>В теории все просто, а на практике кк то не так. I>>В дотнет хоть у тебя трижды кривые руки такого не выйдет.
AV>На практике всюду как-то не так выходит.
Что именно не приходит ? В большинстве проектов где пользовались BSTR были ошибки. Сутки работы — 70мб утечек, при том это было в то время когда памяти было в среднем 128-256 на комп.
С дотнетом ты просто не можешь взять и ошибиться — дотнет тебе просто не даст. Утечкам просто негде взяться.
В с++ ты должен десять раз подумать прежде чем воспользоваться неявной динамичекой аллокацией памяти.
Более того, даже явной в ряд случаев нужно пользоваться очень осторожно из за исключений.
особенно это актуально с мега-враперами АПИ и COM, которые любят бросать исключения.
В дотнете конструкция любой степени вложенности не может дать утечек в принципе.
В с++ же ошибки могут начать валиться вот здесь CreateSomething(One,Two,Three) — просто при передаче аргументов и возникновения исключения.
Что бы научиться писать код, который не даст утечек, девелоперу надо минима года два тренироваться усиленно именно в этом направлении — использование указателей и кодинг без утечек.
Здравствуйте, NikeByNike, Вы писали:
NBN>Ну технически — сложно представить себе даже маленькую игру написанную меньше чем на паре-тройки языков, а для больших и 5-6 не редкость.
языки разметки в список входят?.
много языков — тоже плохо.. тем более с разными парадигмами..
Здравствуйте, CreatorCray, Вы писали:
AV>>>То-то я смотрю на пример реализации от CreatorCray, которая, насколько я знаю, особо и не вылизывалась. Она так тормозит, так тормозит, что оставляет за спиной так расхваливаемый тобой C#. I>>Я пока что не видел его. CC>Я тебе там ссылку на тот топик запостил, кстати.
Я шота не могу найти, что куда ты запостил. Помоги пожалуйста.
AV>>И ты еще других упрекаешь в неумении читать и считать. Что ты этим примером показал? Сколько моделей имеет памяти менее 2 Гб?
I>Разумеется. Это и отражает основные тенденции. Модели не клепают ради моделей, но ради продаж.
Паша, еще раз. Посмотри сколько найдено с 2 и более гига памяти и 4 и более. А не то, что ты написал.
I>>>Я и говорю — на вопрос не ответио, включил дурачка. Это мне и не нравится.
AV>>Завадай конкретные вопросы — получишь конкретные ответы.
I>Было спрошено более чем конкртетно.
Да, да. Мы уже давно знаем, что с выражением своих мыслей на русском языке у тебя проблемы. Ты это достаточно давно и однозначно писал.
I>Просто ты в дотнете разбираешься как табуретка под мной
Давай, ты не будешь телепать насчет меня, а я не буду говорить куда тебе с твоей телепалкой сходить.
AV>>>>>>Паша, эту замену уже проделывала не одна сотня людей. Даже если тебе не подойдет ни один из существующих, то можно написать свою реализацию, в которой будут такие эффекты, какие тебе только приснятся.
I>>>Я знаю, я сам такое проделывал. Но чем больше проект тем сложнее это сделать.
AV>>Конкретнее.
I>Например нужно обеспечить поддержку многопоточности грамотную.
Это все делается один раз в аллокаторе. Какая сложность для остального проекта?
I>Например надо бороться с фрагментацией. Не совсем ясно, как это можно делать на нативном с++ с его указателями.
Если фрагментация действительно мешает, то методы борьбы с ней тоже есть. Только это уже достаточно редкий случай, чтобы выносить его в обобщенный код.
Здравствуйте, Ikemefula, Вы писали:
I>>>В теории все просто, а на практике кк то не так. I>>>В дотнет хоть у тебя трижды кривые руки такого не выйдет.
AV>>На практике всюду как-то не так выходит.
I>Что именно не приходит ? В большинстве проектов где пользовались BSTR были ошибки. Сутки работы — 70мб утечек, при том это было в то время когда памяти было в среднем 128-256 на комп.
I>С дотнетом ты просто не можешь взять и ошибиться — дотнет тебе просто не даст. Утечкам просто негде взяться.
Да ты шо?
Ты хочешь сказать, что в дотнете нельзя организовать утечки памяти? Тебе прислать простейший код, который организует утечку?
Здравствуйте, NikeByNike, Вы писали:
I>>С дефрагментацией приходится сталкиваться всякий раз когда памяти требуется под завязку, это не зависит от объема, главное что бы под завязку. NBN>1. При наличии виртуальной памяти ты с ней врядли реально столкнёшься.
В 32х разрядных апликциях АП ограничено 2ГБ, виртуалка тебя не спасет.
Вот в 64х разрядных где 8 терабайт АП и при наличии должного размера ОП можно не беспокоиться.
NBN>2. GC классно решает вопрос дефрагментации — оставляет доступной только половину. С++ тоже так может
Это так кажется У меня вот прога отгрызает 1.5 гига, кк это возможно с учетом твоих слов — не ясно.
NBN>3. Как раз в случае игр вопрос дефрагментации решается очень просто, потому что игры обычно живут в своей песочнице с заранее заданными ограничениями и протестированными уровнями. Например последние игры которую я делал — использовали память по максимуму, приходилось десятки килобайт оптимизировать чтобы всё влезло (в том числе чтобы загрузился уровень — приходилось выгружать всё остальное ). Тем не менее — дефрагментация легко подавлялась.
Постепенно люди перейдут на 64бита и менеджед и про такое можно будет забыть вовсе.
Здравствуйте, Eugeny__, Вы писали:
I>>Интернет-магазины это уже давно не джава.
E__>А там когда-то была жаба? Насколько я знаю, из-за специфики(много магазинов на одном хостинге + небольшая загрузка каждого) там прочно укоренились php, perl и прочие интерпритируемые скрипты, работающие по принципу "получил запрос"-"загрузил"-"выполнил"-"забыл(выгрузил)". Ни плюсы, ни шарп, ни жава для таких вещей не годятся.
Здравствуйте, Ikemefula, Вы писали:
I>С дотнетом ты просто не можешь взять и ошибиться — дотнет тебе просто не даст. Утечкам просто негде взяться.
Хых, а если в каком-нибудь глобальном словаре зарегистрируешь большую структуру и забудешь?
К тому же в С++ GC можно использовать, только обычно не нужно.
I>В с++ ты должен десять раз подумать прежде чем воспользоваться неявной динамичекой аллокацией памяти.
Вобщем-то это признание в том, что С++ ты не владеешь. vector + auto_ptr + shared_ptr + weak_ptr — наше всё
I>В дотнете конструкция любой степени вложенности не может дать утечек в принципе.
Я описал как она может происходить
I>В с++ же ошибки могут начать валиться вот здесь CreateSomething(One,Two,Three) — просто при передаче аргументов и возникновения исключения.
В шарпе тоже может, оно зависит восновном от подходов.
I>В дотнет ничего подобного не нужно.
Собственно да, этого не отнять. Но с другой стороны перейти на шарп всё никак не получается, в ряде областей С++ незаменим — например кроссплатформенные эффективные приложения.
Здравствуйте, neFormal, Вы писали:
NBN>>Ну технически — сложно представить себе даже маленькую игру написанную меньше чем на паре-тройки языков, а для больших и 5-6 не редкость.
F>языки разметки в список входят?.
F>много языков — тоже плохо.. тем более с разными парадигмами..
Здравствуйте, NikeByNike, Вы писали:
AV>>>Я вообще людей, которые бегают с арматуринами, предпочитаю держать подальше от себя.
I>>Ты не боись, бить людей даже арматурой тяжелая физическая работа, а я такую не люблю.
NBN>Ржавая пила лучше, рекомендую.
Ржавая пила гораздо менее эффективна. Арматуру можно бросить в догонку. Кроме того, если устал бить, можно просто подымать арматуру и давать сть свободно упасть. Кроме того, арматурой можно не бить, а зажимать конечности, шею посредством рычага. Можно положить арматуру на грудную клетку и встать на края ногами. Удушение — очень действенный аргумент.
Здравствуйте, NikeByNike, Вы писали:
I>>>>Геймдевщики обычно не бегают с конторы на контору. Лет за 5-10 вполне возможно.
NBN>>>В геймдеве довольно маленькие зп -> текучка.
I>>Текучка есть и ЗП возможно не самые высокие. Но на порядок больше мест где ЗП ниже и проблем разных больше и текучка гораздо выше.
NBN>Геймдев требует сравнительно высокой квалификации и энтузиазма, такие люди могут легко найти и более оплачиваемую работу.
Здравствуйте, Ikemefula, Вы писали:
NBN>>Ржавая пила лучше, рекомендую.
I>Ржавая пила гораздо менее эффективна. Арматуру можно бросить в догонку. Кроме того, если устал бить, можно просто подымать арматуру и давать сть свободно упасть. Кроме того, арматурой можно не бить, а зажимать конечности, шею посредством рычага. Можно положить арматуру на грудную клетку и встать на края ногами. Удушение — очень действенный аргумент.
С ржавой пилой этого всего просто не нужно, проверенно неоднократно.
Здравствуйте, Ikemefula, Вы писали:
I>>>Текучка есть и ЗП возможно не самые высокие. Но на порядок больше мест где ЗП ниже и проблем разных больше и текучка гораздо выше.
NBN>>Геймдев требует сравнительно высокой квалификации и энтузиазма, такие люди могут легко найти и более оплачиваемую работу.
I>В бузнесе том же такой человек быстро заскучает.
Значит, что он профи так и не стал
К тому же бизнес разный бывает, мне сейчас не скучно (правда игры я продолжаю делать, но вторым потоком).
Здравствуйте, ambel-vlad, Вы писали:
AV>>>Я вообще людей, которые бегают с арматуринами, предпочитаю держать подальше от себя.
I>>Ты не боись, бить людей даже арматурой тяжелая физическая работа, а я такую не люблю.
AV>Ой, спасибо, успокоил. Теперь до гроба буду тебе благодарен.
Благодарности ни к чему. Просто можешь раслабиться когда пишешь всякие мега опусы на форум
Здравствуйте, Ikemefula, Вы писали:
I>>>После таких игр с памятью обычно и приходится фиксить не пойми что.
NBN>>Это, уж извиняюсь, от кривизны рук зависит.
I>Плохая технология, если зависит от кривизны рук.
Здравствуйте, Ikemefula, Вы писали:
NBN>>Во время игры — одним блоком грузишь, в один проход восстанавливаешь указатели и виртуальные функции — и всё, у тебя всё взлетело. Чего-то быстрее этого я не видел.
I>У тебя геймплей это загрузки-выгрузки ? Хочешь угадаю, системы, приложения ты сравниваешь по времени загрузки ?
Скорость загрузки это тоже очень важно. На консолях если не уложился — не будешь издан. C содроганием вспоминаю загрузки QuickSave-ов в сталкере. Вот только я загрузился — меня тут же убили. Я жму загрузить ещё раз. Вроде бы локация та же самая. Текстуры и модели все в памяти. Памяти тоже достаточно было — 4гб. Ан-нет. Сиди, дрочи опять минут 7, пока это тормозилово заново всё с диска прожуёт. Плюнул и забил на сталкер, поиграв всего буквально пару часов. В других шутерах я такого ахтунга не наблюдал. Там Quick это действительно Quick. Видимо сталкер сишарписты писали Скорость разработки, опять же
Здравствуйте, Ikemefula, Вы писали:
AV>>>>Я вообще людей, которые бегают с арматуринами, предпочитаю держать подальше от себя.
I>>>Ты не боись, бить людей даже арматурой тяжелая физическая работа, а я такую не люблю.
AV>>Ой, спасибо, успокоил. Теперь до гроба буду тебе благодарен.
I>Благодарности ни к чему.
Здравствуйте, ambel-vlad, Вы писали:
I>>С дотнетом ты просто не можешь взять и ошибиться — дотнет тебе просто не даст. Утечкам просто негде взяться.
AV>Да ты шо?
AV>Ты хочешь сказать, что в дотнете нельзя организовать утечки памяти? Тебе прислать простейший код, который организует утечку?