【问题标题】:Wincache extension is not working on IIS properly (its still slow|Wincache 扩展无法在 IIS 上正常工作(它仍然很慢|
【发布时间】:2014-05-11 10:19:12
【问题描述】:

我花了很多时间来完成 wincache 工作,因为我在 Symfony 2 中的应用程序在我的 Windows 8 上运行缓慢(初始化时间 > 2 秒)。 Wincache解决方案在这里创立https://stackoverflow.com/a/9487264

IIS 已安装且位于 phpinfo() 中。但问题是我的应用程序仍然很慢。我试图搜索有什么问题,看起来 reroute.ini 根本没有加载,即使它在 php.ini 中

wincache.rerouteini="C:\Program Files (x86)\iis express\PHP\v5.5\reroute.ini"

但它在 phpinfo() 中缺失

我什至查看了pecl上的源代码,我发现

#ifdef WINCACHE_TEST
/* index 21 */ STD_PHP_INI_ENTRY("wincache.rerouteini", NULL, PHP_INI_SYSTEM, OnUpdateString, rerouteini, zend_wincache_globals, wincache_globals)
/* index 22 */ STD_PHP_INI_ENTRY("wincache.olocaltest", "0", PHP_INI_SYSTEM, OnUpdateBool, olocaltest, zend_wincache_globals, wincache_globals)
#endif

那是什么?这意味着仅当常量 WINCACHE_TEST 为真时才存在此选项?因为那从来没有,因为我也发现了这个

#ifdef WINCACHE_DEBUG
# define WINCACHE_TEST
# define _ASSERT(x)   if(!(x)) { dprintalways(#x); if(IsDebuggerPresent()) { DebugBreak(); } }
#else
# define _ASSERT(x)
#endif

并且常量WINCACHE_DEBUG在上面的代码中被注释掉了

/* comment following line for release builds */
/* #define WINCACHE_DEBUG */
/* #define DEBUG_DUMP_OPARRAY */

这是错误吗?我只想让 reroute.ini (http://www.php.net/manual/en/wincache.reroutes.php) 工作。那是可以将初始化时间缩短 4 倍的选项,请帮助解决我的问题,或者在此处向我发送 PHP5.5 VC11 NTS 版本的功能性 wincache 扩展,谢谢!

【问题讨论】:

  • 您对此有什么具体的编程问题? “无法正常工作”“这是错误吗?” 不足以描述问题。还像你用 "end me functional wincache extension here for PHP5.5 VC11 NTS version, thx!" 一样要求场外资源,最后是题外话。
  • 问题是,在没有功能性重新路由的情况下安装了它的wincache绝对没有效果。现在我有初始化时间~2s,应该是~500ms。这应该通过 reroutes.ini 中的优化函数来完成,但它们根本没有加载。
  • 嗯,这不是编程问题。只是你假设的结果比你在现实生活中得到的更快。然而,这本身并不是一个问题的迹象,它可能只是一个你期望错误的问题。例如。谁说它应该是~500ms?以及为什么。然后检查您的系统是否支持该原因。
  • "例如,谁说它应该是 ~500 毫秒?"例如这里stackoverflow.com/questions/7741043/…
  • 或者例如当我尝试 ubuntu virtual box 时它不到 500 毫秒。都是关于像file_exists()这样的IO函数,wincache应该用自己的内部函数来解决这个问题,但是甚至没有加载reroutes。

标签: php windows symfony iis iis-7


【解决方案1】:

我遇到了同样的问题,所以我在 WinCache 上询问了forums,结果发现重新路由功能已经被删除了一段时间,而他们没有更新文档。太糟糕了。

【讨论】:

    【解决方案2】:

    是的,wincache.rerouteini 设置很早就因应用兼容性原因被禁用。

    但是,在 WinCache 1.3.7.1 中添加了一种新形式的重新路由支持。它不再需要单独的 .ini 文件。默认情况下,重新路由处于启用状态。

    php 5.4:http://sourceforge.net/projects/wincache/files/development/wincache-1.3.7.1-dev-5.4-nts-vc9-x86.exe/download php 5.5:http://sourceforge.net/projects/wincache/files/development/wincache-1.3.7.1-dev-5.5-nts-vc11-x86.exe/download php 5.6:http://sourceforge.net/projects/wincache/files/development/wincache-1.3.7.1-dev-5.6-nts-vc11-x86.exe/download

    这个私有封装了 10 个 PHP 函数,这些函数可以从首先查看 WinCache 文件缓存中受益。功能是:

    • file_exists
    • file_get_contents
    • 文件大小
    • 读取文件
    • is_writable
    • is_writeable(is_writable 的别名)
    • 是可读的
    • is_file
    • is_dir
    • 真实路径

    默认情况下重新路由/绕行。如果您确实需要将其关闭:

    wincache.reroute_enabled=0

    【讨论】:

      猜你喜欢
      • 2019-04-26
      • 1970-01-01
      • 2015-04-14
      • 1970-01-01
      • 2017-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多