Все, что заканчивается дисковым вводом-выводом, стоит дорого (определенно, когда речь идет о вращающихся носителях).
См. Какие цифры должен знать каждый компьютерный инженер, согласно Джеффу Дину? на Quora, чтобы увидеть разницу в скорости.
Если вы читаете файл несколько раз, вам следует кэшировать результаты (в частности, если файл не изменяется).
При использовании конфигурации по умолчанию файл .config
читается только один раз, при запуске приложения и результаты кэшируются в памяти.
Обновить, пример по запросу:
private Configuration appConfig;
private Configuration GetConfig()
{
if (appConfig != null)
return appConfig;
ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap();
fileMap.ExeConfigFilename = GetConfigFilePath();
appConfig = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None);
return appConfig;
}
Предполагая, что это происходит в классе, у которого есть время жизни приложения, вы теперь кэшировали конфигурацию в памяти на время жизни приложения.