apisix
apisix copied to clipboard
help request: Using the radixtree.new() method in a similar way has a performance difference of ten times
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.
-
Added custom logic of
radixtree_host_uri.match()
-
Test
Environment
- APISIX version (run
apisix version
): 3.9.1 - Operating system (run
uname -a
): Linux localhost.localdomain 5.14.0-427.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Fri Feb 23 04:45:07 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux - OpenResty / Nginx version (run
openresty -V
ornginx -V
): nginx version: openresty/1.25.3.2 - etcd version, if relevant (run
curl http://127.0.0.1:9090/v1/server_info
): {"etcd_version":"3.4.0","boot_time":1723460812,"hostname":"","id":"ba56a241-98c4-433a-b1c9-ddcead159944","version":"3.9.1"} - APISIX Dashboard version, if relevant: No
- Plugin runner version, for issues related to plugin runners: Not used
- LuaRocks version, for installation issues (run
luarocks --version
): /usr/bin/luarocks 3.9.2