2011-05-09 15 views
0

某些页面需要很长时间才能加载。我假设它来自所有的PHP - 使用大量的fopenfget陈述。我能做些什么来使这些页面加载速度更快?如何加快有很多php加载的页面?

+1

少使用'fopen'和'fget',或购买更快的连接。 – zerkms 2011-05-09 01:56:05

+0

@zerkms你是什么意思? – 2011-05-09 01:56:39

+0

你不能从我的话中得到什么?如果fopen是个问题 - 避免使用它。这对我来说很明显。 – zerkms 2011-05-09 01:57:30

回答

1
  1. 使用Xdebug来分析您的代码并对其进行重构。
  2. 使用PHP accelerator来缓存字节码,如XCache
  3. 将页面分成更小的块并使用AJAX将它们一次全部拉出
  4. 使用HTTP加速器,如varnish
  5. 以任何其他方式缓存页面(或整个页面)的位。
+0

感谢这是第一个合理的答案 – 2011-05-09 02:17:53

+1

“合理”,但不幸的是这个问题本身没有任何关系:“如何使更多的'fopen'更快” – zerkms 2011-05-09 02:19:27

3

实施积极的缓存。

+0

接下来的问题将是:“我如何使缓存无效,我的页面始终包含过时的信息”)) – zerkms 2011-05-09 01:58:16

+0

简单。缓存写入。 – 2011-05-09 02:00:41

+0

缓存写入以及何时使缓存失效? ;-)如果他总是需要实际数据 - 缓存不会提高远程通话性能。 – zerkms 2011-05-09 02:04:25

2

,数据库可能会更快,如果您使用的是大量的文件资源作为数据层的解决方案。

或者,考虑高速缓存您的页面,从客户端HTTP缓存开始并稍后考虑服务器端缓存。

除此之外,需要更多的细节(在哪个阶段我们基本上为您咨询)。

1

如果你真的需要用fopen执行很多远程调用 - 我建议你创建某种队列并实现一些工作,它可以同时处理线程。

因此,在您的PHP代码中,您将“任务”放入队列并等待答案。与此同时,快速和高性能的守护进程(用c/C++/python或任何支持线程的语言编写)从队列中读取任务并将响应放入另一个队列中。