Files
asterisk/main
Sean Bright d9fdeae6a4 config: Speed up config template lookup
ast_category_get() has an (undocumented) implementation detail where it
tries to match the category name first by an explicit pointer comparison
and if that fails falls back to a normal match.

When initially building an ast_config during ast_config_load, this
pointer comparison can never succeed, but we will end up iterating all
categories twice. As the number of categories using a template
increases, this dual looping becomes quite expensive. So we pass a flag
to category_get_sep() indicating if a pointer match is even possible
before trying to do so, saving us a full pass over the list of current
categories.

In my tests, loading a file with 3 template categories and 12000
additional categories that use those 3 templates (this file configures
4000 PJSIP endpoints with AOR & Auth) takes 1.2 seconds. After this
change, that drops to 22ms.

Change-Id: I59b95f288e11eb6bb34f31ce4cc772136b275e4a
2017-12-01 11:14:04 -06:00
..
2017-11-17 09:36:14 -05:00
2016-10-27 09:53:55 -04:00
2017-11-20 14:05:25 -06:00
2017-11-20 14:21:32 -06:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-11-27 16:23:06 -06:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-11-20 14:26:11 -06:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-11-27 16:23:06 -06:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-05-30 15:10:20 -05:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2017-10-23 20:25:19 -04:00
2017-10-25 10:36:21 -05:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-11-01 11:48:06 +02:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00
2016-10-27 09:53:55 -04:00