Я читал этот html, сгенерированный (может истечь, Вот оригинальный файл ps.)
GC Myth 3: Сборщики мусора всегда медленнее, чем явное освобождение памяти.
GC Myth 4: сборщики мусора всегда быстрее, чем явное освобождение памяти.
Это был большой WTF для меня. Как GC будет быстрее, чем явное освобождение памяти? не является ли это по существу вызовом явного освобождения памяти, когда он освобождает память/снова делает ее для использования? так.... wtf.... что это на самом деле означает?
Очень маленькие объекты и большие разреженные heaps == > GC обычно дешевле, особенно с потоками
Я до сих пор этого не понимаю. Его, как говорят, С++ быстрее, чем машинный код (если вы не понимаете wtf в этом предложении, остановите программирование. Пусть начнется -1). После быстрого google один источник предложил его быстрее, когда у вас много памяти. Я думаю, что это означает, что это не позаботится о свободе вообще. Уверен, что это может быть быстро, и я написал собственный распределитель, который делает именно это, а не бесплатно (void free(void*p){}
) в ОДНОМ приложении, которое не освобождает какие-либо объекты (оно только освобождается в конце, когда оно завершается), и имеет определение в основном в случае libs и что-то вроде stl. Итак... я уверен, что это будет быстрее GC. Если я все еще хочу освободить, я думаю, я могу использовать распределитель, который использует deque или свою собственную реализацию, которая существенно
if (freeptr < someaddr) {
*freeptr=ptr;
++freeptr;
}
else
{
freestuff();
freeptr = freeptrroot;
}
который, я уверен, будет очень быстрым. Я уже ответил на мой вопрос. Дело в том, что коллекционер GC никогда не вызывается, так это будет быстрее, но... я уверен, что это не то, что означает документ, поскольку он упоминает два сборщика в своем тесте. я уверен, что то же самое приложение будет медленнее, если GC collector будет вызван даже однажды, независимо от того, какой GC используется. Если его известно, что он никогда не нужен, тогда пустое свободное тело может использоваться как одно приложение, которое у меня было.
В любом случае, я отправляю этот вопрос для дальнейшего понимания.