Итак, я создал эту систему, которая загружает данные с локального диска в базу данных, я недавно недавно проверил, что он потреблял память на 667 МБ (на компьютере с объемом 1 ГБ) Как бы то ни было, очистить память? Я использую GC.Collect
и Dispose
в каждом конце каждого под.Как освободить память в системе, которая работает 24/7
ответ
Проверьте, нет ли в вашем процессе утечек памяти и проверьте, что такое макс. использование памяти в устойчивой стадии. Может быть, она не пройдет дальше. Регулируйте размер данных, которые вы загружаете, и количество строк вставки навалом в случае rel. db или количество документов в случае отсутствия. относительный дб.
К сожалению, я не могу регулировать размер данных для загрузки, данные могут содержать от 8 часов до 3 недель данные. И файлы варьируются от 2 CSV-файлов в папке, до 11 файлов CSV на загрузчика. –
Без правильной балансировки нагрузки вы можете делать GC на том, что вы хотите, но все равно не будете измерять, если вы загрузите много данных в память. Начните с настольной маркировки при максимальной нагрузке. Создайте очередь с файлами csv (заданиями) перед их загрузкой. Вы можете читать csv в пакетах и вставлять их одинаково. – aslavkin
не хватает объектов и надлежащим образом уничтожайте неиспользуемые объекты. – bansi
Я всегда «распоряжаю» каждый объект, который я закончил использовать, а затем «GC.Collect» –
Это может быть больше подходит для проверки кода (я, возможно, ошибаюсь), однако в любом случае мы нужно видеть, как ваш код понимает, что происходит не так. – Bugs