哪些PHP脚本使用较少的服务器内存?

时间:2012-04-27 02:24:21

标签: php

function test($matches)
{
    $fx = '';
    if(strpos($matches[0],"http://")===false)
    {
        $fx = "http://";
    }
    elseif(strpos($matches[0],"http:/")===false)
    {
        $fx = "http:/";
    }
    elseif(strpos($matches[0],"http:")===false)
    {
        $fx = "http:";
    }
    elseif(strpos($matches[0],"http")===false)
    {
        $fx = "http";
    }
    return $fx.$matches[0];
}

function test($matches)
{
    if(strpos($matches[0],"http://")===false)
    {
        return  "http://".$matches[0];
    }
    elseif(strpos($matches[0],"http:/")===false)
    {
        return "http:/".$matches[0];
    }
    elseif(strpos($matches[0],"http:")===false)
    {
        return "http:".$matches[0];
    }
    elseif(strpos($matches[0],"http")===false)
    {
        return "http".$matches[0];
    }
}

我正在尝试编写我的脚本,尽可能使用更少的内存,但idk有时代码看起来很难看,在我看来第一个脚本看起来更漂亮和有条理,但我认为它使用更多的服务器内存。 / p>

感谢。

1 个答案:

答案 0 :(得分:2)

至于哪一个会使用更少的内存,我认为它们是等效的(两者都是最糟糕的情况)。

然而,至于它们的运行时间,第二个将比第一个快完成一小部分纳秒,因为它会在找到一个匹配条件后立即返回。 Big-O的所有差异都是常数,我们都知道它们没有区别:在最好的情况下O(3n)与O(n)相比,在最坏的情况下O(3n)与O(3n)相比(依赖)在$ match [0]的大小上。 但所有这些都严重依赖于strpos()函数的复杂性

为了便于阅读,它们也是相同的书面和结构。