.Net против сборщика мусора Java

Это просто добавить к отличному c#-language ответу ShuggyCoUk. .NET GC csharp также использует так называемую garbage-collection кучу больших объектов (LOH). CLR garbage-collection предварительно выделяет группу jdk объектов на LOH, и все выделенные javax пользователем объекты размером c#.net не менее 85000 байт также c#-language выделяются на LOH. Кроме garbage-collection того, double[] из 1000 или более javax элементов также выделяется core-java на LOH из-за некоторой внутренней jdk оптимизации.

LOH обрабатывается jre иначе, чем кучи поколений, разными c-sharp способами:

  • Он очищается только во время полного сбора и никогда не уплотняется, как кучи поколений.
  • Распределение из LOH выполняется через свободный список, подобно тому, как malloc обрабатывается во время выполнения C, тогда как выделение из кучи поколений по существу выполняется простым перемещением указателя в поколении 0.

Я не знаю, есть oraclejdk ли в JVM что-то подобное, но gc это важная информация о том, как c# обрабатывается память в .NET, так jdk что, надеюсь, вы найдете openjdk ее полезной.

c#

java

garbage-collection

2022-10-28T20:52:46+00:00