Вам дан код JPEG подобного сжатия (проект JPEG), вам нужно максимально, насколько это возможно, оптимизировать его, в том числе уменьшить потребление памяти.
Рекомендации:
- Профилируйте код (используйте dotTrace)
- Для начала оптимизируйте загрузку изображений и переписывайте только неэффективный код
- Пишите бенчмарки
- Не бойтесь математики
С разными вопросами можно писать @Golrans
Подсказки:
- Распаралельте DCT
- CbCr subsampling
- Используйте указатели, вместо GetPixel/SetPixel, придётся написать unsafe код
- Замените DCT на FFT (System.Numerics.Complex), нельзя использовать библиотеки, только собственная реализация!
- Помимо подсказанного в проекте ещё много узких мест (╯°□°)╯︵ ┻━┻
В качестве допа, можете найти проблему в проектах
/debugging/managed/MemoryLeakFinalizers
/debugging/managed/Volatile
Решением задачки будет считаться ваш рассказ (с конкретной последовательностью команд, можно даже скрипт) о том, как используя только windbg:
- найти в проекте утечку памяти
- понять, почему программа не останавливается
С разными вопросами можно писать @ryzhes
https://docs.google.com/presentation/d/1vSv8IpNCa5S2WKANGve5PsblWyX9l3RDBJn_VUtQo9k/edit?usp=sharing