-2

我很好奇在评估 PHP if 语句时对服务器的影响是什么,即内存消耗和 CPU 使用率,以及这是否会随着流量的增长而成为主要问题?

例如,如果我在 WordPress 博客上的每个帖子摘要的主题中使用大量 PHP IF 语句,如果主页开始获得高流量,这是否需要更多的服务器资源?而且,在列出许多帖子的页面(即类别页面)上,这似乎会成为一个问题。

我认为在流量激增的情况下减少并非绝对必要的 IF 语句可能是个好主意。或者,这甚至是我担心的事情吗?

4

4 回答 4

10

评估 1000 条语句所花费的时间if将完全被单个数据库查询所淹没。

你需要:

  1. 配置文件以找出您的瓶颈在哪里
  2. 专注——如果一个函数占用了总时间的 50%,那么让它快 10% 会比让一个很小的函数快 90% 更有效。

编辑:

数据库查询慢(即使是快速查询)——您应该在合理范围内尽量减少查询。在查询中,我认为检查 NULL 或特定值之间没有速度差异——如果有的话,差异会很小。

于 2009-08-16T19:27:11.030 回答
2

我认为这是您不必担心的事情:如果您的应用程序对数据库进行一两次查询,那么这些查询将比几次(甚至超过几次)“if”花费更多的时间。

这是一种“微优化”:如果您正在寻找流量高峰时的大优化,则应首先探索其他方法;-)

对于一些(相当长的)解释/想法,你可以看看我昨天给另一个问题 的这个答案。
(我真的不想在至少几天过去之前重写任何内容^^)

基本上,真正有帮助的是:

  • 使用操作码缓存,例如APC
  • 使用缓存:您缓存的数据越多,您必须进行的计算/数据库查询就越少——而这些通常会花费最重要的时间
  • 使用Xdebug及其分析功能,确定您的应用程序中需要时间的内容
  • 使用正确的索引优化 SQL 查询
  • 如果你想走得更远,你可以使用反向代理来充当另一级缓存;例如,清漆
于 2009-08-16T19:26:44.617 回答
2

完全不用担心。

于 2009-08-16T19:29:05.097 回答
0

我认为我们需要给出一个更合乎逻辑的理由为什么它不重要......这是因为汇编程序中基本级别的 IF 语句来自JNZ助记符。这是一个 1 个“单词”值,意思是“如果不是零则跳转”。真正的重载将来自比较和评估条件,而不是 IF 语句本身。

于 2009-08-16T22:13:47.337 回答