PHP Include是否能让您的代码更快?

时间:2011-12-28 12:54:57

标签: php performance include

我有一个广告网络脚本,如下所示

http://cdn.domain.com/ad.php?variables=etc

我们每秒有大约10,000次点击,我们正在考虑对我们的伪代码进行一些改进 - 这就是我想到的 - 我的问题是 - PHP会不会像if else代码一样减慢我的脚本,它会不会值得在这个页面上缩小PHP:

<?php
// mysql connect
// get variables from publisher
// if publisher has no ads show advertise here banner 
// if resolution from variables is 125x125 show that banner or whatever resolution from the vars
// example www.noadhere.com/image/advertishere_{var}125px.jpg
// if publisher has no ads show advertise here banner and also updated mysql with page views for this publisher

// if publisher has a banner then show it and update mysql with page views
// show also the click code that redirects and updates the record with a hit click
?>

我已经更新了代码。对于那些感兴趣的人来说,这是第1阶段草案。我认为这样简单得多,我会缩小它 - 尽管可能没有必要 - 我们有4个mysql动作正在发生。现在有3个 - 我只是让更新视图成为一个内容。

# mysql
$c=mysql_connect("sqlmaster.adserver.com","user","************");
mysql_select_db("adserver", $c);

# vars
$a=mysql_real_escape_string($_GET["z"]);//id
$z=mysql_real_escape_string($_GET["z"]);//zone
$h=mysql_real_escape_string($_GET["h"]);//height
$w=mysql_real_escape_string($_GET["w"]);//width
$d=date("Y-m-d H:i:s");//date
$u=mysql_real_escape_string($_SERVER['HTTP_REFERER']);//url

# constructor

    # do we have ads?
    $r1=mysql_query("");
    if(mysql_affected_rows()==0){

        # empty ad code unit
        echo 'Blog Empty';

    } else {

        # we have ads - so show random click code
        echo 'Click here .php ? and redirect';

    }

    # update mysql view table for this ad unit - empty or filled
    $r2=mysql_query("");

# end constructor
mysql_close($c);

任何有关改善这一点的建议都会受到欢迎。我认为mysql_real_escape很慢。

4 个答案:

答案 0 :(得分:2)

使用include只会减慢脚本的速度,因为服务器打开文件所需的时间通常只有几分之一秒。所以它不会大大减慢你的脚本执行速度。

答案 1 :(得分:1)

使用PHP缓存时,包含真的无关紧要。但是,肯定存在很小的差异。

我自己的构建脚本自动替换包含“普通”代码,使用向后兼容PHP的自制语法:

/*safeinclude*/ include 'file.php';

我的解析器然后读取PHP文件并注意到这包括。它抓取file.php文件的内容并用此代码替换include(在进行一些清理之后,例如删除前导<?php标记)。然后它被保存到bin目录,这是实时文件所在的目录。

此方法效果很好,但您必须始终检查<?php?>标记。此外,您必须拆分srcbin目录,因为您无法更改已经存在的任何内容。

优化的主要关注区域应该是数据库,以及其他CPU密集型操作,例如循环。

答案 2 :(得分:1)

有很多方法可以让代码运行得更快。通常将代码拆分为单独的文件不会提高性能(有选择地只包括您需要的代码而不是大型库可能会有所帮助)。

您可能已经注意到,没有很多用于缩小PHP代码的现成解决方案 - 这是有充分理由的。它不会对执行时间产生很大的影响(它主要是由于网络传输时间的减少 - 而不是减少解析时间)。 PHP代码不会通过网络。如果你想减少解析时间,那么使用操作码缓存是一个非常有效的解决方案。

由于这可能是一笔重要的收入来源,因此您应该具备了解这一点的技能。然而,通过反复试验(以及仔细的实验​​设计和测量)会带来很多性能改进 - 您可能需要花一些时间来开发这些设施。

答案 3 :(得分:0)

运行if和else的好处是只运行需要运行的代码。包含的页面以一秒钟的速度加载,并且对速度没有任何影响。大多数大型网站都有很长的包含文件,你并没有真正注意到它。