Перед тем, как приступить к экспериментам с рефакторингом моего кода, я надеюсь, что мудрость сообщества сможет посоветовать мне правильный путь.
Проблема: у меня есть программа WPF, которая выполняет различие между сотнями INI-файлов. Для повышения производительности я хотел бы сохранить в памяти несколько сотен базовых файлов, с которыми сталкиваются другие файлы. Я обнаружил, что использование пользовательских классов для хранения этих данных приводит к остановке моего графического интерфейса после загрузки 10-15 файлов с примерно 4000 строками данных в каждом.
Я рассматриваю несколько стратегий улучшения производительности:
- Не храните в памяти более нескольких файлов одновременно и забудьте о том, что, как я надеялся, улучшило бы синтаксический анализ, сохранив их в памяти
- Поэкспериментируйте с запуском всех данных базового файла в потоке
BackgroundWorker
. Я не делаю никакой работы с этими файлами в потоке графического интерфейса, но, возможно, все эти хранимые данные как-то влияют на это. Я предполагаю здесь.
- Эксперимент с
System.Runtime.Caching
классом.
Вопрос, заданный здесь на SO , на мой взгляд, не ответил на вопрос о том, какова лучшая стратегия для этого типа работы. Заранее благодарим за любую помощь, которую вы можете оказать!