你的测试代码是不是纯内存操作?比较简单。 但实际上,现实的业务中,大部分时间会耗在IO上,在这种环境下,影响就非常小了。 另外,你的lua是使用的LuaJIT环境么? jie123108 发件人: Jian Wu 发送时间: 2014-03-03 11:48 收件人: openresty 主题: [openresty] nginx_lua模块的性能优化问题 用lua和C分别实现了相同功能的一个nginx模块,然后在相同的配置和机器环境下测试性能,发现C模块的rps能到八千左右,而lua模块的rps只能到两千左右, 也就是说性能只有C模块的四分之一左右,不知道lua模块性能是不是一般只有C模块的四分之一。如果不是的话,lua模块怎么优化呢,有什么优化方法? 求解! 谢谢 --
Hello! 2014-03-02 19:48 GMT-08:00 Jian Wu: > 不知道lua模块性能是不是一般只有C模块的四分之一。 一般基于 Lua 模块的 Lua 应用的性能和纯 C 模块比较接近。 > 如果不是的话,lua模块怎么优化呢,有什么优化方法? 在进行任何优化之前,应该首先确认热点的所在。如果在满载时 CPU 使用率很高,建议分别采样出 C 级别和 Lua 级别的 on-CPU 火焰图: https://github.com/agentzh/nginx-systemtap-toolkit#sample-bt 以及 https://github.com/agentzh/stapxx#ngx-lj-lua-stacks 如果 CPU 使用率很低,则建议采样出 C 级别的 off-CPU 火焰图: https://github.com/agentzh/nginx-systemtap-toolkit#sample-bt-off-cpu 有了这些图,我们就可以通过“看图说话”来进行有效的优化了。 另外,如果你能同时给出你大致的 Lua 代码的实现,也会很有帮助。 Regards, -agentzh