Не так давно один из участников сообщества 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 мс

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

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

Written by Gecko

Разработчик компьютерной графики

This article has 1 comments

  1. Gecko Reply

    В итоге этот вопрос решился спустя 7 лет: оказалось, что декодирование из файлового потока (поведение по умолчанию во всех версиях dlib, кроме 1.0 и выше) сильно уступает по скорости декодированию из буфера в памяти с заранее прочитанным содержимым файла. Написал об этом отдельный пост. Точную разницу не замерял, но в демках Dagon скорость загрузки текстур возрастает в разы.

Оставить комментарий

Ваш адрес email не будет опубликован.