性能,apc定义语言文件中的常量或apc fetch

时间:2013-06-11 09:18:35

标签: php cakephp apc

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

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

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

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

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

检索翻译

选项3:使用serialize或json_encode(使用速度最快)并使用apc_define_contants定义转换数组

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

我被困在这上面,我不知道什么是最好的

1 个答案:

答案 0 :(得分:1)

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

  1. 在memcache中缓存它们 - 如果你有一些(足够的)RAM
  2. ,那就太好了
  3. 将它们缓存在fatcache中 - 如果您的服务器上有SSD,那么这是一个不错的选择
  4. Redis提供服务 - 由于Redis是一个非常快速的键值存储,您应该能够将所有转换都移动到它,或者只是解析.po/.pot个文件并“缓存”它们 在redis。但是,使用这些方法,您将不得不看到如何处理缓存以及附加/检索它的位置。 CakePHP中有RedisEngineMemcacheEngine
  5. 也许你的最佳解决方案是内存缓存,比如memcache。