Как работает параллельная сборка мусора с параллельными вычислениями?

В .NET 4 можно включить параллельный GC.

Q1 Как это работает с параллельными вычислениями: Parallel, Task, PLINQ и т.д.
Q2 Как разработчик программного обеспечения, о чем я должен знать при работе с параллельным GC?

Ответ 1

  • Concurrent GC отлично справится с параллельными вычислениями. Он работает внутри собственного выделенного потока, поэтому он уже работает с другими потоками. Сама среда выполнения выполняет любую необходимую вам синхронизацию.
  • В общем, вам не стоит об этом беспокоиться. Красота GC - это то, что вам редко приходится беспокоиться о деталях ее реализации. Единственный раз, когда я буду беспокоиться об этом, больше, если вы профилируете и обнаружите, что большая часть вашего времени обработки тратится в GC. Однако это не совсем специфично для одной формы GC, а скорее для общего профилирования и использования памяти в целом.

Как сказано, в .NET 4 был добавлен новый "Background GC". Существует подробное сообщение, описывающее это здесь, а также этот видеоролик Канала 9.