Re[6]: Garbage collection vs manual memory management
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 14.01.15 10:18
Оценка:
Здравствуйте, chaotic-good, Вы писали:

G>>Любой код можно написать плохо. Можно считать это аксиомой. Но даже тысячи плохо написанных пулов объектов не делают пулинг с gc неэффективным.

G>>Если посмотреть внтуренности .NET и Roslyn, то можно заметить, что очень часто используется thread-local пул объектов StringBuilder, который очень даже изменяемый. На Channel9 даже есть запись с teched где объясняют почему так.

CG>И почему же так? Я запись нашел, но смотреть времени нет.


Truth #3


Allocations are king

Time spent in the garbage collector harms responsiveness
Average delays ≈ (Collection rate) × (Collection cost)
Average delays ≈ (Allocation rate) × (Heap size)

Corollary: Allocate less

Less often (reduce collection rate)
Smaller, fewer long-lived objects (reduce heap size)



G>>Bpexfnm jnc.lf — http://codeblog.jonskeet.uk/2014/08/01/object-pooling-and-thread-safety/ и далее по ссылкам.


CG>Плохая статья, метод измерения производительности неизвестен. Он как-то бенчмаркает и потом делает выводы, но как — неизвестно. Может у него тест слишком короткий и в gen 2 этот string builder не успевает попасть.

Ты наверное не в курсе, что jonskeet это крутейший чувак по C#. Автор множеств книг и №1 на SO http://stackoverflow.com/users?tab=Reputation&filter=all
Я его мнению доверяю больше, чем всем "экспертам" на этом форуме. И тебе советую.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.