Производительность i18n: Resx или база данных? - PullRequest
2 голосов
/ 23 февраля 2012

Вопрос:

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

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 23 февраля 2012

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

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

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

2 голосов
/ 23 февраля 2012

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

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

...