• Шустрый, удобный и кроссплатформенный профилировщик C++ кода

      Всем привет. Несколько месяцев назад мы вместе с victorzs решили сделать простой и удобный профилировщик c++ кода (подразумевается профилирование времени исполнения участков кода, функций).


      Скриншот профилирования примера из SDK CryEngine

      Существующие решения нам не подходили по ряду причин. Нам нужен был качественный профайлер, умеющий делать следующее:

      • Профилировать выбранные участки кода
      • Работать на нескольких платформах
      • Учитывать переключение контекста
      • Требовать минимальных дополнительных затрат памяти во время профилирования
      • Не накладывать дополнительных временных ограничений во время выполнения приложения. Согласитесь, если профилировщик будет работать дольше, чем профилиуремый кусочек кода, то можно сделать некорректные выводы.

      В результате тщательной проработки появился на свет профайлер, умеющий делать всё вышеперечисленное, и даже больше!

      Если вы хотите знать, сколько времени работает ваш код, и иметь при этом объективные доказательства — прошу под кат, где я покажу, как использовать профилировщик.
      Читать дальше →
    • Машина времени в git

      В последнее время мои коллеги начинают знакомство с git'ом. И один из интересующих их вопросов — как откатиться до определённой ревизии. В интернете можно найти набор команд, но хочется, чтобы было понимание каждой из них. Баловство с комадами git'а без понимания может привести к потере истории разработки.

      В этой статье я хочу рассказать о командах git checkout и git reset с ключами --soft и --hard.
      Читать дальше →