Решил тут побаловаться с C#.
Вообщем задача создать xlsx файл немалого размера.
Писать самому парсер OpenOffice формата влом, потому нашел в гугле либу для работы с excel SmartXls.
Либа после работы поджирает порядка 400 метров(немаленький такой xlsx - порядка 30 таблиц размера 4000 x 20 в среднем.).Но вот gc отказывался освобождать память после работы( принудительный вызов GC.Collect() не помогал, ссылки на все объекты ручками считал - не было. все disposable объекты вызывали dispose)
В итоге нарыл костыль GC.WaitForPendingFinalizers(). В итоге такая связка:
Код:
GC.Collect();
GC.WaitForPendingFinalizers();
GC.Collect();
Высвобождала всю память.
Вопрос таков: в чем мб причина, что память не очищалась нормальным ходом и не слишком ли костыльный выход из такой ситуации?
PS
Просмотреть код либы нет возможности-все закрыто.