и всё равно не понятно в чём профит. оптимизатор это увидит и что? у нас так была одна функция в памяти: void DrawTrianglePart(DrawBlendingMode kBlendingMode ...) со всеми ифами внутри А так у нас теперь куча таких функций в памяти, где лишние if-ы урезаны, зато общие куски кода раскопированы. В чём же тут оптимизация?
Ты все в кучу свалил: память, ифы, оптимизацию. Причём тут память? У меня ее 16 гигабайт.
Ты так и не ответила: - где ты такой трюк подсмотрела? - в чём профит? Читая твой код, я думаю: это ж как надо нелюбить, ненавидеть Майерса, Шилдта и всех своих преподавателей в университете, чтобы после выпуска "сделать всё по-своему", всем на перекор. Это как говорится "на зло бабушке отморожу уши".
А у меня, кстати, даже фотка где-то была на которой мы с Майерсом обсуждаем С++ после его выступления ~:Р Очень крутой дядя!
Не знаю я где какой трюк впервые встретила, сами трюки бы не забыть! Профит в том, что для каждого пикселя будет выполняться меньше инструкций
Даёшь фотку на [email protected]? )
Эээ вообще то jump в асемблере отличается от call как раз тем, что call, т.е. вызов метода, создаёт новый локальный стек, и на это идут расходы. jump, т.е. if на Си, не вызывает никаких расходов. Так что инструкций будет ровно на одну ассемблерную команду меньше. Это ни что по сравнению с тем, на сколько сильно усложнился твой код, и на сколько больше он теперь будет сьедать оперативки, раскопировав общие куски кода в методе DrawTriangle
У тебя кстати inline-ы работают? Сколько дают производительность в плюс по сравнению если бы inline-ов не было?
Просто с компилятором обычно приходиться повозиться ещё чтобы он инлайны не игнорировал..
Поэтому эту тему всегда нужно тестировать.. реально ли инлайны работают.
> @f1af > Так что инструкций будет ровно на одну ассемблерную команду меньше. Это ни что по сравнению с тем, на сколько сильно усложнился твой код, и на сколько больше он теперь будет сьедать оперативки Да при чем тут оперативка? Напоминаю, у меня ее 16 гигабайт, на Raspberry Pi ее 1 гигабайт. Почему на одну инструкцию? как ты так посчитал? Сравнить переменную с false и сделать условный переход - это как минимум 2 инструкции, а может быть и больше, если переменная не в регистре. Если условный переход будет неправильно предсказан процессором, весь конвеер процессора будет опустошен, это еще несколько инструкций. И так на каждый пиксель.
> @f1af > У тебя кстати inline-ы работают? Сколько дают производительность в плюс по сравнению если бы inline-ов не было? Это же почти бесполезная инструкция, оптимизатор сам делает inlining когда считает нужным, даже если не писать inline.
Я не буду судить, права ты или нет. Слишком геморно долго и без профита разбираться в твоих заблуждениях. Тут главное - профит. Если ты напишешь то, что даёт реально ценное для людей на выходе - значит весь мир ошибался а ты была права. Ставь себе цели и сроки их выполнения. Мне кажется, что ты ставишь себе ну слишком маленькие цели. Типа "сделать текстурированный прямоугольник который на wasd передвигается по монитору". Это черезвычайно мелко. Одна из харастиристик движка - это скорость его работы. Ведь красота картинки может сильно варьироваться от таланта художника, а не крутизны движка. Тебе нужено встроить в движок профайлер а так же валидаторы расхода памяти. И задачи ставить себе соответствующие: одновременно отрисовать столько то так то двигающихся человечков. Ты сможешь больше если будешь правильно выбирать себе цели. Слишком большие - плохо, но и слишком маленькие - тоже плохо.
Мои цели измеряются в играх, сделанных на Arctic Engine и в разработчиках, его использующих.
В таком случае что можно считать законченной игрой?
И входит ли в число разработчиков, ну например, художник, бухгалтер и шофёр (что возит молоко и печеньки в офис) фирмы, которая будет использовать AE?
Или ты думаешь, что разработчикам, пишущим на AE, не нужны молоко и печеньки?
законченной? А это тут при чем? Читай внимательно: использующих Arctic Engine разработчиках. Водитель это другая область деятельности. Можно быть и днём водителем, ночью разработчиком, но это другое. Почему то тебе в голову не приходит называть водителя президента тоже президентом, вот и тут так.
Странная штука. Когда мне совсем плохо и не с кем поделится наболевшим, единственное место куда у меня возникает мысль зайти - это форум хульдры. Видимо у меня в жизни совсем всё действительно плохо =(
Сейчас лето. Ты случаем не в Питере? Могли бы пройтись по красивым местам. Ты была в Питергофе?