1
嗨我正在全文搜索和我的功能,我找到字符串位置(切割字符串前后字符串发生)我使用PHP函数mb_stripos()
。有一段时间(代码波纹管)每次请求调用几次。字符串长度从500 - 100 000个字符。mb_stripos巨大的时差
但问题是,在桌面上需要这个(每个请求被称为几次)cca 500ms,但在服务器上需要20 000ms。的请求时
- 98%它的股票上的一个字符串呼应
microtime()
- 桌面测量长100个000字符
- 具有PHP 7.0.9和Win7操作系统和服务器7.1.3-3 + 0〜20170325135815.21 +杰西〜1.gbpafff68与Linux操作系统
- 两个阿帕奇直升机(台式机或服务器)的PHP加速和OPcache
- 它是symfony的FW(它不会事可能)
大多数PHP操作都澳ñ服务器更快
while (($lastPos = mb_stripos($content, $searchString, $lastPos)) !== false) { if($lastPos <= $offset) $startStr = 0; else $startStr = $lastPos - $offset; $subs[] = mb_substr($content, $startStr, 100); $lastPos = $lastPos + strlen($searchString); }
为什么这么可怕的区别?
您的服务器版本是最新的吗?我可能弄错了,但我通常会做相反的事情:在服务器和台式机上都是稳定的版本,最终在桌面上进行更新版本的测试和实验。在你的情况下,也许你的服务器上的版本不像桌面上那样稳定。您是否在两个系统上尝试过相同的版本?我唯一看到的是系统本身,也许是你的代码或Linux上的配置螺丝。很难猜测不知道其他东西在两端通常是否都是相同的。 – ksjohn
现在我试图添加到app_dev.php(symfony的'索引')循环与mb_stripos()和我有错误未捕获的错误:调用未定义的函数mb_stripos()在...我总是困惑...如果我添加代码'phpinfo()'仍然存在php版本7.1.3 ...那么如何在控制器中使用它? (但极其缓慢) –
你有没有尝试重新安装你的Apache?也许在某处有一个missng lib? – ksjohn