Skip to content

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

@dayongi

Description

@dayongi

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions