lua-resty-radixtree icon indicating copy to clipboard operation
lua-resty-radixtree copied to clipboard

Using the radixtree.new() method in a similar way has a performance difference of ten times

Open dayongi opened this issue 6 months ago • 2 comments

Environment

  • APISIX 3.9.1
  • CentOS Stream release 9

Description

I added a custom logic to the _M.match method in radixtree_host_uri.lua in APISIX to simulate how long it takes to build a radix tree with 1000 routes. At the same time, I used Python to call the Admin API of APISIX and added 1000 routes. When I executed curl -X GET http://localhost:9080/foo, I was surprised to find that with the same number of routes, when using a similar method to call radixtree.new to build a radixtree, the performance difference between the two was as much as ten times. Why is this?

  • Use python to call the Admin API of APISIX and added routes. image

  • Added custom logic of radixtree_host_uri.match() image

  • Test 企业微信截图_0c63daae-f47d-45fc-9fb0-7e3eb138bf61 企业微信截图_67025e58-4cc7-4161-9b33-0438af73d216

dayongi avatar Aug 13 '24 00:08 dayongi