我可以将PHP脚本编译为更快的执行格式吗?

我有一个 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倍意味着这些解决方案几乎可以肯定是过度工程,而不是问题.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...