87

Забавные оптимизации

Многие играли в quake 3, но не многие знают что внутри игры. А тут есть на что посмотреть:

#ifdef __linux__

assert( !isnan(y) ); // bk010122 - FPE?

#endif

это походу к выходу quake 3 на linux

#if !( (defined __linux__ || __FreeBSD__) && (defined __i386__) && (!defined C_ONLY)) // rb010123

а это еще ко freeBSD

ну и 2 моих любимых:

i = * ( long * ) &y; // evil floating point bit level hacking

i = 0x5f3759df - ( i >> 1 ); // what the fuck?

комментарии веселят ) Оптимизировали как могли )

Это поверхностный анализ только одного файла. Думаю там еще много есть чего интересного

Дубликаты не найдены

29 комментариев

по актуальности
+33
+12
Насколько я помню Кармак (создатель движка quake) не делал пометок в коде.
З.Ы. Советую всем прочитать книгу "Masters of Doom" о том как Джон Кармак и Джон Ромеро делали Doom, Quake и прочие свои игры.
раскрыть ветку 2
-1
Он не сам его писал, есть статья по поводу этой функции где чувак делал исследование кто это написал
-2
Есть ссылка на аглицкую версию?
+12

А можно для сисадминов и других айтишников пояснить в чём юмор?

раскрыть ветку 3
+11
Юмора нет, но автор кекает на комменты по, видимо, непонятным ему поводам.
При этом строки вырваны из контекста, так что ни оценить адекватность комментов, ни проникнуться радостью автора, не представляется возможным. Кто в теме - уже видели, кто понимает С++, но не в теме - тоже не поймут. А кто не понимает - проще забить. Алмазов тут не будет.
раскрыть ветку 2
0
На плюсах немного пишу, в общих чертах понимаю, но шутки не понял. Просто похоже на "временные хаки закрытия багов", ну или оптимизация ради сокращения занятого пространства.
раскрыть ветку 1
+3

i = * ( long * ) &y; // evil floating point bit level hacking

i = 0x5f3759df - ( i >> 1 ); // what the fuck?


мдя... шаманство какое-то с адресами от y...

раскрыть ветку 4
раскрыть ветку 2
+12
Иллюстрация к комментарию
+1

Наконец-то единственный нормальный коммент.
А так — КГ/АМ

+1

Никаких шаманств с адресом собственно не производится. там одно получение адреса, и одно разыменование. просто мы преобразуем вещественное число в целое именно так, как оно представляется в памяти (а не по значению).

+3

Спасибо, поржал. Не фига не понял, но забавно.

Тут не все программисты, если что, да и английский не все знают.

ещё комментарии
+1

Как говорится, добрым словом и пиздюлями можно сделать больше, чем только пиздюлями...

0

вот почему все такие умные, пишут крутые движки, а я такой тупой?

мне до конца жизни сайтики делать?

раскрыть ветку 7
+6

Ну люди, делающие сайты, интеллектом не отличаются

раскрыть ветку 5
+4

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

+2
@мамкоратор, тут осклобление!!
раскрыть ветку 2
-2
Разработчики-лохи?
0
Потому что они делают движки, а ты - сайты.