【问题标题】:How can I improve the performance of 'include()s' in PHP?如何提高 PHP 中“include()s”的性能?
【发布时间】:2010-12-21 07:26:04
【问题描述】:

我有一个 1.9MB 的 PHP 库,我将它包含在脚本的开头。它包含我的网站所需的所有数据库对象、方法等。每次包含它需要0.1s到0.3s。

我使用 eAccelerator 来缓存这个文件的字节码。我还能做些什么来优化这个“包含”的性能?

【问题讨论】:

  • 出于好奇,a) 生成页面的其余部分,b) 下载页面需要多长时间?
  • 根据页面及其加载的信息量,生成页面的其余部分可能需要 0s 到 0.5s,通常在 0.2s-1.1s 左右。下载页面..我想尽可能多地挤出页面。 :P

标签: php performance


【解决方案1】:

将其拆分为模块并仅在需要时加载块。我认为这是真正提高性能的唯一方法,我也遇到过同样的情况,只有这样才能解决它。包含很多代码,在我看来太多了。我敢打赌,你不需要在每种情况下都使用全部 1.9MB 的代码。

【讨论】:

  • 我想如果我们打赌你可能会赢。 :P 我读过关于将库拆分为模块的信息。现在的设计问题变成了:拆分文件的最佳方法是什么?我也在考虑使用 php 内置的 __autoload 方法来包含被调用的类,但这似乎有点开销。
  • 要回答这个问题,您必须详细说明这是一个什么样的项目以及库由什么组成。一般来说,很明显,您会按主题将它们分成最常用的功能/对象组。这里有图像功能,那里有安全功能……但最后只有你可以决定。
  • 这是一个大型项目,具有许多不同的功能子集。该库由图像、安全、友谊、用户、组、消息、“戳”等的对象/方法和数据库模式映射组成。恐怕每个页面上使用的功能没有很好地映射,所以创建一个映射对所需库的请求将是我最关心的问题,因为这将是我最大的时间消耗。
  • 我建议手动执行此操作:创建有意义的文件(=模块)结构。从维护的角度来看,这也是非常健康的。有趣的是,我今天问了一个相关的问题:stackoverflow.com/questions/1812472/…
猜你喜欢
  • 2010-12-02
  • 2012-12-14
  • 1970-01-01
  • 2014-09-23
  • 2014-05-26
  • 2012-06-16
  • 1970-01-01
  • 1970-01-01
  • 2010-10-10
相关资源
最近更新 更多