0

今天我有一个新的非常奇怪的问题。我正在尝试找到一种缓存语言罐文件的方法。

CakePHP 执行此操作的标准方式是将文件解析为数组,然后返回键值对。由于文件呈指数增长,我正在考虑提高性能

我有四个解决方案,但我不知道其中哪些将易于维护并提供最快的性能。

选项 1:使用 CakePHP 的标准翻译方法,但只需将文件拆分一点并使用 __d() 函数

选项 2:使用我编写的类来解析所有语言文件的内容并使用 apc 缓存它们。然后通过 apc_fetch 检索翻译

选项 3:使用 serialize 或 json_encode 序列化翻译数组(这是最快的)并使用 apc_define_contants 定义它

选项 4:使用 apc_define_contants 将翻译文件中的每个键定义为具有其值的常量

我坚持这一点,我不知道什么是最好的

4

1 回答 1

1

我可以为您指出其他一些可能的解决方案:

  1. 将它们缓存在内存缓存中 - 如果您有一些(足够的)RAM,那就太好了
  2. 将它们缓存在fatcache中- 如果您的服务器上有 SSD,这是一个不错的选择
  3. 从Redis为它们提供服务 - 由于 Redis 是一个非常快速的键值对存储,您应该能够将所有转换移至它,或者只是解析.po/.pot文件并将它们“缓存”在 redis 中。但是,使用这些方法,您将必须了解如何准确处理缓存以及在何处附加/检索它。CakePHP中有一个RedisEngineMemcacheEngine

也许你最好的解决方案是一些内存缓存,比如 memcache。

于 2013-06-11T12:24:39.330 回答