我正在使用(高度优化/改编版本)CakePHP 2.3,我的应用程序运行在非常慢的硬件(300MHz ARM)上,所以我仍然在尽可能优化。框架的一种方法经常被称为非常快(约0.5-1ms),但我想不出一种方法来改进它(不改变输出) - 总共花费约5%的总时间这个方法:
function pluginSplit($name, $dotAppend = false, $plugin = null) {
if (strpos($name, '.') !== false) {
$parts = explode('.', $name, 2);
if ($dotAppend) {
$parts[0] .= '.';
}
return $parts;
}
return array($plugin, $name);
}
有没有人知道如何加快速度?
根据探查器strpos占用大约5%的方法时间并爆炸~1%:
(分析比正常执行慢大约10-15倍 - > 8.8ms在没有分析器的情况下大约为0.5-1ms)
答案 0 :(得分:1)
稍微改进一下,不要搜索字符串2次:
function pluginSplit($name, $dotAppend = false, $plugin = null) {
if (count($parts = explode('.', $name, 2)) === 2) {
if ($dotAppend) {
$parts[0] .= '.';
}
return $parts;
}
return array($plugin, $name);
}