你用在节约函数参数那自然是不合适的。ngx.ctx 牛逼的地方在于可以在其生命周期是每请求(没有内部跳转),因此用于保存数据是非常合适的。至于你说的元方法调用比较昂贵,你可以在需要使用的地方用 local ctx = ngx.ctx 来 cache 一下,当然,不要在模块级别的地方这么做。
On Wednesday, November 8, 2017 at 5:39:29 PM UTC+8, hello world wrote:
ngx.ctx
表查询需要相对昂贵的元方法调用,这比通过用户自己的函数参数直接传递基于请求的数据要慢得多。所以不要为了节约用户函数参数而滥用此 API,因为它可能对性能有明显影响。这个也不太推荐。。。
在 2017年11月8日 下午5:36,tokers
<zcha...@gmail.com>写道:
ngx.var.VARIABLE 内部调用了 nginx 的变量系统接口(ngx_http_get_variable),内部操作包括查询 hash 表和一定的内存分配,有一定的开销。如果不是非要使用,可以用 ngx.ctx 替代。