i18n性能:resx与数据库?

时间:2012-02-22 20:07:44

标签: database performance asp.net-mvc-3 internationalization resx

问题:

我问自己是否应该使用.resx文件或数据库来本地化我的ASP.NET MVC 3应用程序。

无论如何我使用数据库,因此数据访问层不需要额外的工作。

我知道我可以做到这两点,但我有点担心表现......

使用额外的翻译工作加载数据库是一个好主意,而这可以通过网络服务器完成吗?
或者读取.resx文件比使用数据库慢得多?

另外,在我看来,.resx文件的方式有点不灵活 您可以假设数据库和Web服务器在同一台计算机上运行 您还可以假设一个Linux系统,其中nginx为webserver,mono通过fastcgi和调优的PostGreSQL服务器。

2 个答案:

答案 0 :(得分:2)

创建一个将资源从数据库中拉出并生成resx文件的应用程序并不需要花费太多精力。从而为您提供数据库的灵活性和易维护性以及resx的性能。

我最近将此技术用于我的MVC网站,这里有一些关于这个主题的问题,其中一些我也用解决方案回答了自己。

答案 1 :(得分:2)

无论哪种方式,使用适当的数据结构将它们缓存在您的内存中。将其加载到脚本中很重要,不必再次加载它们更重要,快速查找数据是最重要的。

根据你要做的事情,一个简单的HashMap应该非常快,可以快速查找字符串。确保将所有内容存储在服务器的内存(RAM)中。

i18n性能分为两类:加载和搜索。只需限制加载的次数,并使用快速查找。绝对不要为每次调用i18n模块,数据库或文件重新加载文件。