Я написал программу, которая анализирует исходный код проекта и сообщает о различных проблемах и показателях на основе кода.
Для анализа исходного кода я загружаю файлы кода, которые существуют в структуре каталогов проекта, и анализирую код из памяти. Код проходит обширную обработку, прежде чем он передается другим методам для дальнейшего анализа.
Код передается нескольким классам при обработке.
На днях я запустил его на одном из более крупных проектов, которые есть в моей группе, и моя программа обрушилась на меня из-за того, что в память было загружено слишком много исходного кода. На данный момент это ключевой случай, но я хочу иметь возможность решить эту проблему в будущем.
Как лучше всего избежать проблем с памятью?
Я думаю о загрузке кода, выполнить первоначальную обработку файла, затем сериализовать результаты на диск, чтобы при повторном обращении к ним мне не приходилось проходить процесс манипулирования необработанным файлом. Снова код Имеет ли это смысл? Или сериализация / десериализация дороже, чем повторная обработка кода?
Я хочу сохранить разумный уровень производительности при решении этой проблемы. В большинстве случаев исходный код без проблем помещается в памяти, поэтому есть ли способ «пролистать» мою информацию, когда у меня мало памяти? Есть ли способ узнать, когда моему приложению не хватает памяти?
Обновление :
Проблема не в том, что один файл заполняет память, его все файлы в памяти сразу заполняют память. Моя текущая идея состоит в том, чтобы вращать диск при обработке их