我有一个PHP脚本充当我的后端数据库的JSON API.
意思是,你发送一个HTTP请求,如:http://example.com/json/?a = 1&b = 2&c = 3 ...它将返回一个json对象,其结果集来自我的数据库.
PHP非常适用于此,因为它实际上大约有10行代码.
但我也知道PHP很慢,而且这个API有时被称为每秒40x,而PHP正在努力跟上.
有没有办法可以将我的PHP脚本编译成更快的执行格式?我已经在使用PHP-APC,它是PHP和FastCGI的字节码优化.
或者,是否有人推荐我重写脚本的语言,以便Apache仍然可以处理example.com/json/请求?
谢谢
更新:我刚刚运行了一些基准测试:
PHP脚本需要0.6秒才能完成
如果我使用上面PHP脚本生成的SQL并从同一个Web服务器运行查询,但直接从MySQL命令中运行,这意味着,网络延迟仍在使用中 - 获取的结果集只需0.09秒即可完成.
正如您所注意到的,PHP在生成结果时要慢一个数量级.网络似乎不是这种情况下的主要瓶颈,但我同意它通常是根本原因.
在你优化之前,先弄清楚它是否有问题.考虑到它只有10行代码(据你所知)我非常怀疑你没有问题.时间脚本执行的时间.请记住,网络延迟通常会使琐碎的脚本执行时间相形见绌.
换句话说:直到你不解决问题有一个问题.
您已经在使用操作码缓存(APC).它没有那么快.更重要的是,它很少需要比这更快.
如果您有任何数据库问题.连接太多(不太可能是每秒20次),连接速度太慢或者大连接:查询太慢.如果您发现自己处于这种情况,则有效索引和数据库调整中的9次就足够了.
在它不是你去哪里进行某种缓存的情况下:memcached,beanstalkd等.
但老实说,每秒20倍意味着这些解决方案几乎可以肯定是过度工程,而不是问题.