Не так давно один из участников сообщества 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 мс
Тред с обсуждением
На днях обязательно сделаю собственный тест — необходимо выяснить, что именно тормозит в декодере.