Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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