Брейкпойнты

Думаю не ошибусь, если напишу, что каждый программист когда-либо пользовался отладчиком, отлаживал программу пошагово, устанавливал брейкпойнты и т.п. Некоторые программисты не любят отлаживать. Другие - обожают. А большинство просто использует отладчик не задумываясь о любви и ненависти, ведь это просто еще один удобный инструмент для работы.
Для многих программистов отладчики - это черный ящик. Они умеют [...]

Мысли про менеджеры памяти

В индустрии разработки игр, да и в некоторых других, распространено мнение, что стандартная библиотека для работы с памятью в C++ жутко неэффективна и надо писать свою. Насколько я знаю, большинство российских игр используют собственный менеджер памяти в том или ином виде. Почему-то мне кажется, что некоторые из них не лучше стандартного… В то [...]

How Non-Member Functions Improve Encapsulation

Наткнулся в старом журнале на статью Scott Meyers: How non-member functions improve.
Мысль там излагается понятная, но по-моему там есть некоторая недосказанность. Майерс утверждает, что вынесение функций из класса делает код более инкапсулированным.
Сложно не согласиться с этим, однако, если мы просто вынесли функции наружу и оставили их открытыми, то что [...]

Кеширование файлов в Windows

В этой статье я расскажу про то, как работает кеширование файлов в памяти в разных версиях Windows. Постараюсь описать это просто и понятно, так что советую прочитать эту статью даже просто пользователям Windows. По крайней мере выводы в конце. Если же есть технические вопросы - пишите в комментарии, обсудим.
Итак, попробуйте ответить [...]

Cкорость работы InterlockedExchangeAdd и аналогов

Встретил в коде функцию InterlockedExchangeAdd и стало интересно, насколько быстро она работает. Под катом - тесты и результаты.

Скорость работы разных таймеров

Сделал очередной таймер для замера времени выполнения функций. Использовал функцию QueryPerformanceCounter. Она выдает точные результаты и ее легко применять, но оверхед показался слишком высоким. Использовать timeGetTime для замера мили, микро и даже наносекунд - бессмысленно. Нашел также реализацию через rdtsc и пробовал ее, но она выдает совершенно [...]

Unit testing

Новое видео с недавнего Google Tech Talks. Miško Hevery рассказывает про то, какие виды автоматизированного тестирования бывают и в чем разница между ними.
Если вы до сих пор не разобрались с unit тестами, integration тестами и т.п. и не понимаете как и зачем их писать - очень рекоммендую посмотреть. Кто уже разобрался, тот не найдет [...]

Google conference

Нашел видео от Google на youtube и начал смотреть. В итоге нашел то, что заставило меня полюбить гугл еще больше Это видео с открытия google conference в мае 2008: Дальше мой краткий конспект этого доклада:

Лучшие блоги про отладку

Crash Dump Analysis - это просто огромная копилка знаний. Особенно порадовали паттерны ошибок в крэш дампах. Также читаю и всем рекоммендую блог от Microsoft про debugging: http://blogs.msdn.com/ntdebugging/Очень много информации про отладку и практических примеров на основе багов в Windows.
Читаю я все эти блоги, книгу Advanced Windows Debugging, отлаживаю с помощью WinDbg, изучаю его потихоньку, [...]