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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions