任何比PHP';读取文件更快的编程语言;s readfile(test.html);@20.000,点击数/秒?

任何比PHP';读取文件更快的编程语言;s readfile(test.html);@20.000,点击数/秒?,php,performance,file,webserver,Php,Performance,File,Webserver,什么服务器端编程语言,无疑是输出文件内容最快的语言?(我看到的是每秒约20k的文件命中率,因此,如果某些X语言输出文件的速度比PHP快1ms,这是很重要的) 因为PHP是我的首选语言,所以在我发布这个问题之前,我已经阅读了以下链接(但突然它提出了一个问题,哪种服务器端编程语言比PHP更快?) 当您陈述您的答案时,请同时告诉我用于读取文件的方法。因此,不要只说FASTCGI/PHP,还要说用于读取文件的方法,例如在本例中的readfile() (我现在看到的是每秒约20k的文件命中率,这就是为什

什么服务器端编程语言,无疑是输出文件内容最快的语言?(我看到的是每秒约20k的文件命中率,因此,如果某些X语言输出文件的速度比PHP快1ms,这是很重要的)

因为PHP是我的首选语言,所以在我发布这个问题之前,我已经阅读了以下链接(但突然它提出了一个问题,哪种服务器端编程语言比PHP更快?)

当您陈述您的答案时,请同时告诉我用于读取文件的方法。因此,不要只说FASTCGI/PHP,还要说用于读取文件的方法,例如在本例中的
readfile()

(我现在看到的是每秒约20k的文件命中率,这就是为什么我完全放弃了使用apache的想法,我真的不希望我糟糕的服务器端编程语言选择会降低文件输出速度,因此,是的,如果某个X语言输出文件的速度比PHP快1ms,这是很重要的)

问题是,是否所有这些每秒20k的点击率都需要生成文件?这似乎不太可能。在第一代静态文件生成之后,您可以将
nginx
配置为缓存它,这样之后的所有请求都将命中缓存的版本,并且根本不会调用服务器端语言

我还需要一个服务器端脚本来检查这个文件是否存在

这就是在那里首先要有一个代理缓存,比如
nginx

那么,你确定你在寻找正确的问题吗?你应该给我们的数字不是你期望每秒有多少次点击,而是你期望每秒有多少次缓存未命中。毕竟,如果您提供的是每分钟更改一次的600个文件,那么每秒只有10次缓存未命中,这对于实际的服务器端程序来说是一个更易于管理的数字(并且使语言的选择不再是问题)


所以,请告诉我们更多:您的缓存命中/未命中率将是什么样的?10%的缓存未命中率与1%的缓存未命中率大不相同,依此类推。

您可以做的最快的事情是创建一个输出文件的CGI(c++,c)。FASTCGI/c++比FASTCGI/PHP输出文件快吗?有人能证实这一点吗?所以你说的是FASTCGI/PHP的readfile(test.html);X20K比FASTCGI/C++的coutAny解释语言慢,它有一个执行代码的虚拟机。对于PHP,它是ZendEngine,对于Java,它是Java虚拟机,等等——因此,与编译的二进制文件相比,它的开销很大。读取文件的最快方法是使用作为CGI执行的二进制文件(用C++/C编写)。它不会比[插入语言]快20倍。时期它会稍微快一点,随着更多用户使用你的应用程序,它很可能会扩展得更好。还有服务器硬件设置问题,它不仅是编程语言,你必须考虑。嗯,非常有趣。非常感谢您提供有关fastcgi/C++的信息,我将对此进行研究。。您还可以评论一下fastcgi/perl吗?对于简单的文件读取来说,perl不应该比php更快吗?我只是想重复一下我之前的陈述,您的实际应用程序不应该在静态文件上每秒看到20k的点击率;这些点击中的绝大多数都应该由这方面的专家(例如nginx、squid)编写的反向代理缓存来处理。你的应用程序代码应该只需要处理缓存未命中,这应该是一个更低的数字(对于静态内容,接近零)。请听一些人在一个几乎肯定比你的流量更大的网站上以此为生:你关注的问题是错误的。+1:或者只是坚持使用Apache和PHP,在它前面放一个(nginx/Varnish?)反向代理。虽然我很难理解一开始在一台服务器上处理如此大流量的情况。@symcbean:从OP来看,他们似乎已经想使用nginx,它可以很好地处理反向代理,所以我的全部观点是“这里真正的问题是什么?”内容生成不应该是一个问题,因为它只生成一次,每次内容被更改或更新时,服务器“应该”在被点击之前生成一个新的静态文件。无论如何,我的观点很简单,忽略了x-sendfile头或任何代理或任何其他web服务器功能,“有没有比PHP的readfile(test.html)更快的语言?”@N.B提到CGI能够比PHP更快地输出静态文件,是真的吗?我想告诉你的是,如果设置正确,
nginx
已经为你处理了“输出静态文件”部分;除了第一个请求,它不会调用PHP。如果您告诉它,
nginx
将缓存静态文件本身,并使用它自己的方法从磁盘上读取它,因此速度比其他任何东西都快,因为它不需要语言。不知何故,我对提到nginx感到后悔:(.好吧,忘了我一开始会使用nginx,有没有编程语言可以比PHP的readfile(test.html);x20k更快地读取文件?