Skip to content

kontur-courses/debug-optimizations-2025

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Подготовка

Обновить или установить .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), нельзя использовать библиотеки, только собственная реализация!
  • Помимо подсказанного в проекте ещё много узких мест (╯°□°)╯︵ ┻━┻

Как сдавать задание:

  1. Нужно сделать замер через JpegProcessorBenchmark до оптимизаций и запомнить Mean и Allocated по операциям Compress и Uncompress
  2. Сделать аналогичные замеры после оптимизаций
  3. Внести свой результат в таблицу в день дедлайна, ссылку на которую вам дадут позже
  4. Очно или онлайн за 10-15 минут рассказать какие моменты удалось найти и как оптимизировать

Полезные ссылки

Презентации:

WinDbg:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages