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