Как параллельная сборка мусора работает с параллельными вычислениями? - PullRequest
10 голосов
/ 07 июня 2011

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

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

1 Ответ

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

При этом в .NET 4 был добавлен новый "Background GC".* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * .

...