понедельник, 30 мая 2011 г.

Process Monitor и Fiddler

На следующей неделе защита, времени отписываться тут особо нету...
Пока просто отмечу себе на будущее, что нужно сделать небольшой обзор Process Monitor ( http://technet.microsoft.com/ru-ru/sysinternals/bb896645 ) и Fiddler ( http://www.fiddler2.com/fiddler2/ ).

Первый логгирует все, что происходит на жестком диске (все обращения к файлам/реестру), второй - логгирует все входящие/исходящие сетевые пакеты.

среда, 18 мая 2011 г.

IncrediBuild

Давно тут не отписывался - был занят дипломом. Решил сегодня потестить вышеупомянутую программу IncrediBuild - она позволяет использовать процессоры других устройств в сети для компиляции проекта. Официальный сайт проекта: http://www.xoreax.com/. Доступна 30-дневная триал-версия.

После скачивания, во время инсталляции выбираем что ставить: сервер (на этой машине будем собирать проект), или клиент (его процессор мы будем беспощадно использовать, как энергию людишек в Матрице :) ).

Сначала компилируем основной проект: он состоит из нескольких десятков классов + прекомпайлед хедер.
Rebuild all только на компьютере (2 ядра). Время: 0:50:
Rebuild all на компьютере и ноутбуке (4 ядра). Время: 0:46:
 Как видно, основное время занимает компиляция хедера. Однако, прирост слегка заметен.

 Теперь попробуем скомпилировать проект, в котором нету прекомпайлед хедера: log4cplus
 Rebuild all на компьютере (2 ядра). Время 3:00+:
 Rebuild all на компьютере и ноутбуке (4 ядра). Время 1:30:
Тут программа показала шикарный результат, хотя, в общем-то, его и следовало ожидать :)

Результат: программа работает как и ожидалось, дает вполне логичный прирост. На более крупных проектах и с большим количеством компьютеров в сети прирост ожидается просто отличный.
Единственное что не понравилось - не понятно, как программа выбирает файлы для компиляции: иногда выбор не очень удачен.
Однако, в целом, программа весьма полезна: 9/10.



среда, 4 мая 2011 г.

Решение проблемы "sdlmain.lib(SDL_windows_main.obj) : error LNK2019: unresolved external symbol _SDL_main referenced in function _main"

Сегодня около получаса бился над этим.. Решение подсказал английский форум геймдева
Оказывается, SDL перегружает функцию main() и определяет ее как
int main(int argc, char *argv[])

А у меня в проекте было
int main(int argc, char *argv)

Из-за этого и была ошибка :)
Надеюсь, кому-то еще это поможет.

Upd:
int main(int argc, char **argv)
тоже работает, спасибо nigmashumma