Archive for the ‘performance’ Category.
December 19, 2007, 11:55 pm
После сопливого поста про сейвгеймы в Program Files просто обязан сделать что-то полезное (тем более, что занял им козырный нумер “100″). Например, написать рассказ про то, что должен делать resource manager.
Я уже неоднократно высказывал мысль о том, что как только вы в ресурс-менеджере пишите что-то вида enum { eTexture, eMesh, eSprite, … }; то ваш идеальный ресурс-менеджер идет лесом. Потому что он превращается в ресурс менеджер, к которому (достаточно искуственно) притянуты за уши куски других подсистем. Например, если мы корректируем формат меша, нам придется редактировать и подсистему управления геометрией, и ресурс-менеджер, что недопустимо.
Если мы выбросим enum из ресурс менеджера, то что останется в нем? Если кто-то думает, что исключительно fopen()/fread(), то он глубоко заблуждается.
Continue reading ‘Про ресурсы’ »
December 16, 2007, 2:15 pm
Хорошо, когда игровой объект писать легко и приятно – простой линейный код радует глаз скриптера. Всё легко, красиво, понятно.
Continue reading ‘GameObject и длииииииииинные асинхронные операции’ »
December 8, 2007, 1:49 pm
Монитор понемногу расширяется, хотя для мониторинга произвольных приложений надо решить еще несколько проблемных вопросов с перехватом вызовов в системные dll. Впрочем, при наличии перехваченных malloc/new создание файла монитора является простым, приятным и дает сильно больше информации, чем трассировка системных адресов.
Continue reading ‘Кровавое месиво в памяти (часть 2)’ »
December 6, 2007, 12:58 pm
Сегодня в нашей постоянной рубрике “классические отжыги на конале” будут Борины сказки про компонентные системы, console-style. Сказки долгие и хорошие, как раз на ночь.
Отжыг давний, еще с 2005-го года.
Continue reading ‘Component-oriented design на консолях, лобзиком по шаблонам’ »
December 2, 2007, 10:06 pm
Несколько недель назад я уже писал про исследование оперативной памяти. На этих выходных набросал небольшое приложение для того, чтобы промониторить результаты более подробно. Результаты, в общем-то, ожидаемые, но все равно, картинка перемещения блоков завораживает точно также, как и в свое время магическая работа встроенного дефрагментатора жестких дисков под Windows 98 :)
Continue reading ‘Кровавое месиво в памяти (часть 1)’ »
November 26, 2007, 11:16 pm
С точки зрения С итератор это такой плохой указатель с неочевидным оверхедом. Что удивительно, обратное тоже верно. С точки зрения С++ указатель, это такой unsafe итератор с очевидным отсутствием оверхеда.
Continue reading ‘Iterator через призму С’ »
November 12, 2007, 9:55 pm
Логическое завершение вот этого поста. Немножко про “неоптимальность” SSE2 кода.
Continue reading ‘RANDOM SSE2’ »
November 11, 2007, 6:26 pm
crossposted from zeuxcg.blogspot.com.
So, yesterday we were discussing various lighting approaches at local IRC chat, and someone said that it was impossible to make a ps.2.0 single-pass lighting shader for 8 lights with diffuse, specular and attenuation, of course with normal map. Well, I told him he was actually wrong, and that I can prove it. Proving it turned out to be a very fun and challenging task. I am going to share the resulting shader and the lessons learned with you.
Continue reading ‘My own lighting shader with blackjack and hookers’ »
November 9, 2007, 11:42 pm
Всё чудесатее и чудесатее. Давеча профайлер показал на rand() в партиклах. В паритклах его много и он там большей частью float rand(), либо vec3 rand(), либо таки vec4 rand(). Дизассемблер немедленно сказал, что стандартный rand() не инлайнится.
Continue reading ‘RANDOM, SSE, SSE2’ »
November 5, 2007, 10:55 pm
Буквально несколько дней назад Пушыстый писал про “Удаление многих элементов из массива”. Отличная задачка, хорошо разобранная, но, к сожалению, действительно часто реализуемая через задницу.
Но я сегодня хотел подняться чуть повыше. В конце-концов, подобных задач программистам приходится решать несколько десятков в день. И вот представьте себе – сидит лид программер, под ним работает 5 или даже большее количество людей, каждый из которых решает удаление из массива (вместо удаления из массива подставьте сюда что угодно другое) методами murkt или _winnie.
Continue reading ‘Тяжела и неказиста жизнь лида’ »