Информация об изменениях

Сообщение Минутка хардкора-4: Ayende Rahien: How much is the fish? от 09.01.2017 11:52

Изменено 18.01.2017 18:26 Sinix

Минутка хардкора-4: Ayende Rahien: How much is the fish?
Продолжаем серию
Автор: Sinix
Дата: 28.10.16
.

Отличный учебник-серия статей по оптимизации более-менее реального кода с итогом:

527 times faster than the original version.
Allocate 1350 times less memory.
1/3 of the working set.
Able to process 3.7 GB / sec.


… the first version took about 10 minutes to write, then another half an hour to fiddle with it to make it non obviously inefficient. The final version took several days of careful though, analysis of the data and careful optimizations.


Отличная — не только в плане "пошагово расписаны основные оптимизации", но и в количестве граблей, на которые наступил автор. Вплоть до незамеченных ошибок в последней статье цикла.

Мораль: перфоманс — это конечно хорошо, но для начала надо бы набросать тесты.


Бонус: Ускорили? Замедляем! Why Exceptions should be Exceptional и Why is reflection slow? от Matt Warren.

UPD, бонус №2 Похожая серия постов: How to calculate 17 billion similarities от Szymon Warda.

UPD, бонус №3 По запросу от ув. Codechanger на тему "что грядёт на тему перфоманса":

C>Про Memory<T> есть где подробнее почитать?

https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md

В ту же тему —
Сводный тикет по фреймворку + обзорная презенташка.

И немножко хардкора: Adam Sitnik's State of the .NET Performance
  видео
https://www.youtube.com/watch?v=PJbTXiun2qM

+ Channelling my inner geek от Marc Gravell.
минутка хардкора performance
Минутка хардкора-4: Ayende Rahien: How much is the fish?
Продолжаем серию
Автор: Sinix
Дата: 28.10.16
.

Отличный учебник-серия статей по оптимизации более-менее реального кода с итогом:

527 times faster than the original version.
Allocate 1350 times less memory.
1/3 of the working set.
Able to process 3.7 GB / sec.


… the first version took about 10 minutes to write, then another half an hour to fiddle with it to make it non obviously inefficient. The final version took several days of careful though, analysis of the data and careful optimizations.


Отличная — не только в плане "пошагово расписаны основные оптимизации", но и в количестве граблей, на которые наступил автор. Вплоть до незамеченных ошибок в последней статье цикла.

Мораль: перфоманс — это конечно хорошо, но для начала надо бы набросать тесты.


Бонус: Ускорили? Замедляем! Why Exceptions should be Exceptional и Why is reflection slow? от Matt Warren.

UPD, бонус №2 Похожая серия постов: How to calculate 17 billion similarities от Szymon Warda.

UPD, бонус №3 По запросу от ув. Codechanger на тему "что грядёт на тему перфоманса":

C>Про Memory<T> есть где подробнее почитать?

https://github.com/dotnet/corefxlab/blob/master/docs/specs/span.md

В ту же тему —
Сводный тикет по фреймворку + обзорная презенташка.

И немножко хардкора: Adam Sitnik's State of the .NET Performance
  видео
https://www.youtube.com/watch?v=PJbTXiun2qM

+ Channelling my inner geek от Marc Gravell.



UPD, бонус №4 Раз уж в теме зашла речь о OutOfMemory в коллекциях — Understanding OutOfMemoryException, снова Szymon Warda. И таки да, снова баги в коде в теме про производительность. Традиция
performance минутка хардкора