Обновить или установить .NET 7
Поставить resharper для студии или rider, dotTrace, dotMemory с сайта jetbrains(Если вдруг нет лицензии, то можете получить её как студенты). Ставьте последние доступные версии и пользуйтесь VPN
Установить winDbg
- Установи вот отсюда
- Скачай dump для теста
- Проверь, что всё ок. Для этого пройди по инструкции
- Скачай sosex, если вдруг у тебя его нет. В инструкции написано что с ним делать и для чего он нужен
Вам дан код JPEG подобного сжатия (проект JPEG), вам нужно максимально, насколько это возможно, оптимизировать его, в том числе уменьшить потребление памяти.
Рекомендации:
- Профилируйте код (используйте dotTrace)
- Для начала оптимизируйте загрузку изображений и переписывайте только неэффективный код
- Пишите бенчмарки на разные методы
- Не бойтесь математики
С разными вопросами можно писать @Golrans и @ryzhes
Подсказки:
- Распаралельте DCT
- CbCr subsampling
- Используйте указатели, вместо GetPixel/SetPixel, придётся написать unsafe код
- Замените DCT на FFT (System.Numerics.Complex), нельзя использовать библиотеки, только собственная реализация!
- Помимо подсказанного в проекте ещё много узких мест (╯°□°)╯︵ ┻━┻
Как сдавать задание:
- Нужно сделать замер через JpegProcessorBenchmark до оптимизаций и запомнить Mean и Allocated по операциям Compress и Uncompress
- Сделать аналогичные замеры после оптимизаций
- Внести свой результат в таблицу в день дедлайна, ссылку на которую вам дадут позже
- Очно или онлайн за 10-15 минут рассказать какие моменты удалось найти и как оптимизировать
Презентации:
WinDbg: