Утомительный сборщик мусора. Вызовы collect () в сторонней библиотеке

При профилировании моего приложения (C #, .NET 4) я заметил, что сторонняя библиотека, которую я использую, явно вызывает GC.Collect ( ). Это очень раздражает, потому что иногда это сильно влияет на производительность моего приложения, поскольку некоторые вызовы этой библиотеки заканчиваются огромными циклами: время, проведенное в GC.Collect, составляет более 80% от общего времени выполнения.

курс, Я сообщил об этом поведении сопровождающим библиотеки (библиотека не является открытым исходным кодом), но пока они работают над новой версией, я хотел бы оптимизировать свое приложение. Что я могу сделать?

Я попытался настроить сборщик мусора, установив для GCSettings.LatencyMode значение GCLatencyMode.LowLatency (конечно, только во время выполнения вызовов библиотеки), но безуспешно. Я бы предпочел избежать разветвления своего процесса.

Есть идеи?

10
задан Dominique Eav 14 March 2011 в 15:20
поделиться