2012-03-15 110 views
1

我有一个脚本,生成一个非常github-gist像代码段代码突出显示。缓慢读取缓存文件在php

由于突出显示需要一点时间才能渲染长文件,因此我将它们作为缓存文件存储在服务器上,如果缓存文件存在,我使用file_get_contents来抓取它并将其吐出。

我刚刚发布了其中一段较长的剪辑(大约257K代码),缓存文件花费了整整一秒的时间才加载。

对于文件大小这似乎很长时间。我刚刚检查过,50K文件大约需要.4到0.5秒。

什么可能会导致这种慢读取速度的想法?

+5

你能展示一些代码吗? – 2012-03-15 12:43:48

回答

1

如果可以,请尝试使用客户端突出显示。 google-code-prettify看起来不错。

+0

我前一阵子看着这个。当时很难找到像Arduino和处理这样的代码突出显示的代码。我使用geshi,因此制作荧光笔相当容易。我再看看这个。谢谢。 – 2012-03-16 02:36:13

1

您是否尝试过使用readfile而不是file_get_contents?这可能会让你获得更好的结果。

+0

我做到了,速度几乎没有了。就像快5%一样。 – 2012-03-16 02:36:51

1

您可能想尝试使用X-Sendfile。它内置在lighttpdnginx中,或作为module for Apache提供。

基本上你只是要求网络服务器提供一个自定义的静态文件,而不是将其加载到内存中,然后将其发送出去。

+0

如果他正在阅读的文件应该嵌入其他生成的HTML中,则这将不起作用。 – chiborg 2012-03-16 15:10:54

+0

当然不会。但是你可以缓存整个页面(假设你不为每个用户量身定制)。 – CAFxX 2012-03-16 16:05:07