Производительность i18n: resx против базы данных?

Вопрос:

Я спрашиваю себя, следует ли мне использовать файлы .resx или базу данных для локализации моего приложения ASP.NET MVC 3.

Я все равно использую базу данных, поэтому для уровня доступа к данным не требуется дополнительных усилий.

Я знаю, что могу сделать и то, и другое, но меня немного беспокоит производительность ...

Является ли хорошей идеей загружать БД с дополнительной работой по переводу, тогда как это может сделать веб-сервер?
Или чтение файлов .resx намного медленнее, чем при использовании базы данных?

Кроме того, мне кажется, что путь .resx-файла немного негибкий.
Вы можете предположить, что база данных и веб-сервер работают на одном компьютере.
Вы также можете предположить, что система Linux с nginx в качестве веб-сервера, моно через fastcgi и настроенный сервер PostGreSQL.


person Stefan Steiger    schedule 22.02.2012    source источник


Ответы (2)


Создание приложения, которое извлекает ресурсы из базы данных и генерирует файл resx, не требует больших усилий. Таким образом, вы получаете гибкость и простоту обслуживания базы данных, а также производительность resx.

Недавно я получил эту технику, работающую на моем веб-сайте MVC, вот несколько ответов на мои вопросы по этой теме, на некоторые из которых я также ответил сам с помощью решения.

person Antony Scott    schedule 22.02.2012

В любом случае кешируйте их в своей памяти, используя правильную структуру данных. Загрузка его в скрипты важна, важнее не загружать их снова, важнее всего быстрый поиск в данных.

В зависимости от того, что вы собираетесь делать, простая HashMap должна быть очень быстрой для быстрого поиска строк. Обязательно храните все в памяти сервера (RAM).

Производительность i18n делится на две категории: загрузка и поиск. Просто ограничьте количество загрузок и используйте быстрый поиск. Определенно не перезагружайте файл при каждом вызове модуля, базы данных или файла i18n.

person Tom van der Woerdt    schedule 22.02.2012