#8584: Ме-е-едленные методы

« картинки и свежие анекдоты | чат

#8584: Ме-е-едленные методы

Смотрю код высоконагруженного сервера. В ядре обсчёта вижу код типа:

func() {
ObjectGame* OG=MainOG;
while(OG->next!=NULL)
{
ia=(int*)OG+12;
i=*ia;
/* что-то делает*/
*ia=i;
/* код функции, внутри функции ia претерпевает различные изменения*/
OG=OG->next;
}
}

С большими глазами иду к прогеру, который это всё написал. Спрашиваю: почему он не пользуется методами Set и Get, и вообще, почему именно 12 байт?

На что он мне отвечает: «Внутри кода функции есть ветвящийся цикл, в котором перебираются многие параметры объекта. Если пользоваться методами Set и Get, а это переход по адресу, причём у каждого объекта он свой, конвейер процессора офигеет и сбросится. Это плюс 30 тактов на каждый переход. Всего таких объектов в секунду надо обсчитать порядка нескольких миллионов. Частота ядра — три миллиарда операций в секунду. Отсюда вывод: идите вы лесом со своим ООП!»

Ещё интересное на этом сайте:

Анекдоты и картинки #8641598
Анекдоты и картинки #8641597
Испорченный телефон
Папа для Олеськи
Анекдоты и картинки #8641594
Анекдоты и картинки #8641593
Ночные кошмары
Вездеходная радиомодель Nikko VaporizR (2 видео)
100 грамм сала
День Святого Валентина. Издержки
Анекдоты и картинки #8641588
Поп-корн
«Я живой?»
#8583: Коммит лыж в ёлку
#8582: Печатный станок династии Мин
#8581: Он нам не нравится
#8580: Плавкий предохранитель
Анекдоты и картинки #8641581
Анекдоты и картинки #8641580
Звезды и их зависимости (37 фото)
« все анекдоты и картинки
Рейтинг@Mail.ru