性能,apc定义常量或apc获取语言文件


Performance, apc define constants or apc fetch on language file

今天我有一个新的很奇怪的问题。我正试图找到一种方法来缓存语言锅文件。

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

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

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

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

检索翻译

选项3:使用Serialize或json_encode(最快的一种)序列化翻译数组,并使用apc_define_contents

定义它

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

的内容

我被这个卡住了,我不知道什么是最好的

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

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

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