我目前正在开发一个PHP网站,我想知道减少请求时间的最佳实践/方法是什么。我以模块化方式构建网站,因此页面将包含许多模块,并且每个模块都需要请求信息。
例如,我有一个购物车模块,(如果设置了购物车)将从数据库中获取带有id(存储在会话变量中)的购物车并返回其内容。我有另一个列出类别的模块,这需要从数据库中获取类别。
我的系统是使用模型构建的,每个模型也可能会发出请求,例如,类别模型会请求获取该类别的产品。
对于那些感兴趣的人,我现在正在使用IIS运行Windows Server 2003上的应用程序,但我希望在不久的将来更改为Linux。我知道这是一个广泛的主题,我只是好奇要注意什么以及用来帮助负载的工具。到目前为止,答案非常有用。
答案 0 :(得分:3)
减少请求时间的唯一练习/方法称为分析。
首先,您确定“瓶颈” - 应用程序中最慢的部分
然后加速这部分代码。
只有这样。
“以防万一”做事可能会让事情变得更糟。
Firebug控制台中的“Net”页面是一个很好的起点。
答案 1 :(得分:2)
您的高级方法听起来很合理,尽管将这种方法与实际代码,数据和环境进行权衡会有所帮助。那说:
使代码运行得更快的一种快速简便的方法是使用eAccelerator等工具来缓存已编译的PHP脚本。这样,当第二次请求进入脚本时,不必再次编译,这样可以提高性能。
如果您正在开发包含大量用户的站点,您可以考虑使用memcached等工具从数据库缓存数据。
答案 2 :(得分:1)
require_once()很贵
改用echo的多个参数 串联连接。
看看你是否可以使用strncasecmp, strpbrk和stripos而不是正则表达式
使用@进行错误抑制非常慢。
$ row ['id']快7倍 $行[ID]
所有这些都是微优化。在你已经完成所有真正重要的事情之前,甚至不值得看这些,比如缓存和减少不必要的数据库查询的数量。我还建议下载Firebug并使用Page Speed工具,它可以缩小CSS并为您优化图像。 PHP语法很少令人担心。
编辑:尽管使用@一般都是不好的做法。我也从未发现需要使用require_once,__ autoload似乎更容易。
答案 3 :(得分:-1)
也许您正在寻找这些提示,您可以谷歌这样做。一个example here。
这只是一般的良好做法,但如果您的代码运行缓慢 - 您需要对应用进行分析,找出哪些区域很慢并相应地解决这些问题。