【问题标题】:i18n performance: resx vs. database?i18n 性能:resx 与数据库?
【发布时间】:2012-03-13 05:09:33
【问题描述】:

问题:

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

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

我知道我可以两者兼得,但我有点担心性能......

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

另外,在我看来 .resx 文件的方式有点不灵活。
您可以假设数据库和网络服务器在同一台机器上运行。
你也可以假设一个 Linux 系统,使用 nginx 作为网络服务器,通过 fastcgi 和一个调整的 PostGreSQL 服务器进行单声道。

【问题讨论】:

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


    【解决方案1】:

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

    我最近在 My MVC 网站上使用了这种技术,这里有一些关于这个主题的问题的链接,其中一些我也用解决方案回答了自己。

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 2010-09-18
        • 1970-01-01
        • 1970-01-01
        • 2010-09-16
        • 1970-01-01
        • 2011-12-03
        • 2012-03-29
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多