Семинары Станислава Сидристого corporate blog
Programming
.NET
System Programming
C#
Comments 4
0
Нисколько не умаляю важности и крутости такого рода знаний, однако это немного похоже на то «Как преодолеть трудности которые вы сами себе создали», т.е. выбираем язык со сборкой мусора и потом пытаемся оптимизировать программу для этой не очень прозрачной и сложной штуки. Но я вполне могу понять что есть много случает когда это ок.
+1
А отсутствие сборки мусора приводит к ручному выделению памяти на разных хипах — чтобы преодолеть фрагментацию и дальнейшее освобождение памяти вручную… Я пока что не встречал больших сложностей с .NET, зато много их видел в том же C++
0
Не вполне понятно. В С++ вы можете реализовать ту стратегию выделения, которая нужна соответствует патерну использования и не пробиваться через логику gc.

Например http-сервис имеет буфер (арену) для каждого запроса. Обработчик использует ее для своих нужд и просто забывает про нее после окончания запроса — память переходит следующему запросу. Получается стратегия выделения динамической памяти, которая не требует обращений к malloc/free в пределах запроса (очень простые операция выделения/освобождения).

Бывает что паттерн работы с памяти более сложный, например, широко известная проблема с фрагментацию памяти в вроде Firefox. Однако аналоги на managed языках не показывали какого-то либо преимущества, насколько я знаю.
Only those users with full accounts are able to leave comments. , please.