Kevin Svetlitski
6841110bd6
Make edata_cmp_summary_comp 30% faster
...
`edata_cmp_summary_comp` is one of the very hottest functions, taking up
3% of all time spent inside Jemalloc. I noticed that all existing
callsites rely only on the sign of the value returned by this function,
so I came up with this equivalent branchless implementation which
preserves this property. After empirical measurement, I have found that
this implementation is 30% faster, therefore representing a 1% speed-up
to the allocator as a whole.
At @interwq's suggestion, I've applied the same optimization to
`edata_esnead_comp` in case this function becomes hotter in the future.
2023-05-04 09:59:17 -07:00
..
2020-11-05 12:33:25 -08:00
2022-09-16 15:04:59 -07:00
2021-02-04 14:10:43 -08:00
2023-04-05 10:16:37 -07:00
2021-12-29 14:44:43 -08:00
2022-09-16 15:04:59 -07:00
2022-09-16 15:04:59 -07:00
2020-07-09 13:41:04 -07:00
2021-09-17 16:56:41 -07:00
2021-09-17 16:56:41 -07:00
2021-09-17 16:56:41 -07:00
2021-12-20 15:37:53 -08:00
2021-02-04 14:10:43 -08:00
2020-12-07 06:21:08 -08:00
2020-07-30 15:25:23 -07:00
2020-05-11 14:51:24 -07:00
2023-05-01 10:21:17 -07:00
2020-05-12 08:23:15 -07:00
2020-12-18 10:39:58 -08:00
2021-09-17 16:56:41 -07:00
2021-12-15 10:39:17 -08:00
2021-07-26 15:14:37 -07:00
2023-05-04 09:59:17 -07:00
2021-09-26 16:30:15 -07:00
2021-12-15 10:39:17 -08:00
2020-05-11 14:51:24 -07:00
2021-08-02 15:02:49 -07:00
2020-11-13 13:42:33 -08:00
2022-04-25 11:29:00 -07:00
2021-05-12 11:14:23 -07:00
2021-02-04 20:58:31 -08:00
2022-05-18 17:01:09 -07:00
2021-12-21 23:37:22 -08:00
2021-09-17 16:56:41 -07:00
2023-03-10 11:25:47 -08:00
2021-08-20 18:06:17 -07:00
2022-07-19 13:20:11 -07:00
2023-03-23 11:16:19 -07:00
2022-11-21 11:14:05 -08:00
2022-04-25 11:29:00 -07:00
2023-03-23 11:16:19 -07:00
2022-01-11 16:59:22 -08:00
2022-11-21 11:14:05 -08:00
2022-10-14 15:48:32 -07:00
2022-07-19 13:23:08 -07:00
2021-01-07 20:39:49 -08:00
2020-05-12 08:23:15 -07:00
2020-05-11 14:51:24 -07:00
2021-06-24 14:55:49 -07:00
2021-01-07 20:39:49 -08:00
2023-04-06 10:57:04 -07:00
2021-12-23 10:55:08 -08:00
2022-04-25 11:29:00 -07:00
2021-12-15 10:39:17 -08:00
2022-03-22 17:45:55 -07:00
2021-12-15 10:39:17 -08:00
2020-06-11 13:54:22 -07:00
2020-06-11 13:54:22 -07:00
2023-03-31 14:35:31 -07:00
2020-10-05 19:55:57 -07:00
2023-04-05 10:03:12 -07:00
2022-12-07 16:06:49 -08:00
2022-12-07 16:06:49 -08:00
2023-04-05 10:03:12 -07:00
2020-06-29 14:27:50 -07:00
2020-09-09 13:31:35 -07:00
2021-01-07 20:39:49 -08:00
2023-04-05 10:03:12 -07:00
2021-09-22 15:04:01 -07:00
2023-04-05 10:03:12 -07:00
2021-07-12 17:59:18 -07:00
2020-04-11 10:32:11 -07:00
2020-04-11 10:32:11 -07:00
2022-05-26 10:51:10 -07:00
2021-05-12 11:14:23 -07:00
2021-10-28 10:05:59 -07:00
2021-10-28 16:55:54 -07:00
2022-08-04 16:58:22 -07:00
2021-12-15 10:39:17 -08:00
2022-01-04 13:55:06 -08:00
2022-04-25 11:29:00 -07:00
2022-03-24 22:05:35 -07:00
2021-05-22 08:17:41 -07:00
2020-10-23 11:14:34 -07:00
2022-03-24 16:56:59 -07:00
2021-12-29 14:44:43 -08:00
2021-12-29 14:44:43 -08:00
2020-10-16 13:49:51 -07:00
2020-10-16 13:49:51 -07:00
2021-10-15 15:25:36 -07:00
2021-10-28 10:05:59 -07:00
2023-04-05 10:16:37 -07:00
2020-12-18 10:05:59 -08:00
2022-03-02 10:10:27 -08:00
2022-03-02 10:10:27 -08:00
2022-03-02 10:10:27 -08:00
2022-10-25 09:54:38 -07:00
2020-07-31 09:16:50 -07:00
2021-02-04 14:10:43 -08:00
2021-12-15 10:39:17 -08:00