Во время профилирования моего приложения (С#,.NET 4) я заметил, что сторонняя библиотека, я использую явно вызовы GC.Collect(). Это очень раздражает, потому что это иногда оказывает существенное влияние на производительность моего приложения, так как некоторые вызовы этой библиотеки заканчиваются огромными циклами: время, затраченное на GC.Collect, составляет более 80% от общего времени выполнения.
Конечно, я сообщил об этом поведении для поддерживающих библиотек (lib не является открытым исходным кодом), но пока они работают над новой версией, я бы хотел оптимизировать свое приложение. Что я могу сделать?
Я попытался настроить GC, установив GCSettings.LatencyMode в GCLatencyMode.LowLatency(конечно, только во время выполнения вызовов библиотеки), но безрезультатно. Я бы предпочел избежать разветвления моего процесса.
Любые идеи?