Бенчмарк загрузки PNG

Не так давно один из участников сообщества D провел любопытный тест, сравнив скорости загрузки изображения в формате PNG с различными библиотеками. В сравнении участвовали D-библиотеки (dlib и imageformats), а также C#.

Использовалось RGB-изображение размером 2048х2048, компилятор DMD 2.0.67 c флагами -release -inline -O. Задачей была загрузка из PNG, отражение по горизонтали и сохранение в PNG. Результат получился следующий:

C#:
Загрузка — 90 мс
Отражение — 10 мс
Сохранение — 380 мс

D (dlib):
Загрузка — 500 мс
Отражение — 30 мс
Сохранение — 950 мс

D (imageformats):
Загрузка — 230 мс
Отражение — 30 мс
Сохранение — 1100 мс

Тред с обсуждением

На днях обязательно сделаю собственный тест — необходимо выяснить, что именно тормозит в декодере.

Cook 2.1.0

Вышла новая версия моей системы сборки Cook2. Основное нововведение релиза — поддержка response-файлов при компоновке: это файлы, через которые можно передавать параметры компилятору DMD, если не хватает максимальной длины команды в терминале (под Windows и cmd.exe это 8192 байт, что, конечно, для крупных проектов маловато). Для использования response-файла запускайте Cook с параметром —rsp.
Также в новой версии улучшена поддержка кросс-компиляции через Wine, имена файлов кэша теперь специфичны для ОС и профиля.

https://github.com/gecko0307/cook2

Растягиваемое окно

Atrium теперь поддерживает окна любого размера (развернуть окно игры на весь экран можно в режиме паузы — Esc). Также в свежей сборке исправлены различные баги физики и управления.

Сборка под Windows
Сборка под Linux

Atrium в Tumblr

У проекта Atrium появился микроблог в Tumblr — планирую регулярно выкладывать туда свежие скриншоты:

http://atrium-game.tumblr.com

dmech 0.1

Физический движок dmech обновился до версии 0.1. Ключевым новшеством релиза является полный переход движка на ручное управление памятью. В ближайшем будущем планируется добавить в dmech поддержку convex cast.

https://github.com/gecko0307/dmech

Обновление

Продолжаю работу над картой и игровой механикой (скачать свежую сборку можно тут):