Benny Halevy
3c4c81c2d9
utils: chunked_vector: optimize for trivially_copyable types
...
Use std::uninitialized_{copy,move} and std::destroy
that have optimizations for trivially copyable and
trivially moveable types.
In those cases, memory can be copied onto the uninitialized
memory, rather than invoking the respective copy/move constructors,
one item at a time.
perf-simple-query results:
```
base: median 95954.90 tps ( 63.1 allocs/op, 0.0 logallocs/op, 14.1 tasks/op, 42312 insns/op, 0 errors)
post: median 97530.65 tps ( 63.1 allocs/op, 0.0 logallocs/op, 14.1 tasks/op, 42331 insns/op, 0 errors)
```
Signed-off-by: Benny Halevy <bhalevy@scylladb.com >
Closes scylladb/scylladb#18609
2024-05-15 22:32:45 +03:00
..
2023-09-11 14:38:46 +03:00
2024-04-11 14:33:43 +03:00
2023-12-07 10:50:55 +03:00
2023-12-02 22:37:22 +02:00
2024-01-18 12:50:06 +02:00
2023-12-02 22:37:22 +02:00
2023-12-02 22:37:22 +02:00
2024-01-18 12:50:06 +02:00
2024-04-19 07:44:07 +03:00
2023-12-12 21:09:51 +08:00
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2024-05-15 22:32:45 +03:00
2024-01-31 16:45:09 +02:00
2023-12-05 15:18:11 +02:00
2024-05-06 10:00:31 +03:00
2024-01-26 08:44:44 +01:00
2023-11-30 08:52:57 +03:00
2023-11-30 08:52:57 +03:00
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2023-12-20 10:25:03 +02:00
2024-04-19 22:56:16 +08:00
2024-02-01 12:20:23 +05:30
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2024-01-23 10:03:51 +02:00
2024-05-09 19:57:40 +05:30
2024-03-13 02:06:30 -04:00
2024-04-19 07:44:07 +03:00
2024-01-18 12:50:06 +02:00
2024-02-01 14:50:17 +02:00
2024-02-02 15:20:40 +01:00
2024-02-02 15:20:40 +01:00
2024-02-02 22:12:57 +08:00
2024-04-19 07:44:07 +03:00
2023-11-21 08:42:33 +00:00
2024-01-18 12:50:06 +02:00
2024-01-23 13:12:34 +02:00
2023-11-07 04:39:33 -05:00
2024-03-12 14:53:55 +08:00
2024-04-19 07:44:07 +03:00
2024-01-18 12:50:06 +02:00
2024-01-18 12:50:06 +02:00
2023-12-02 22:37:22 +02:00
2024-02-21 19:43:17 +02:00
2023-12-05 15:18:11 +02:00
2023-12-05 15:18:11 +02:00
2024-01-18 12:50:06 +02:00
2024-02-02 22:12:57 +08:00
2024-05-09 16:29:49 +03:00
2024-05-02 18:42:41 +03:00
2024-05-02 18:42:41 +03:00
2024-02-23 11:32:41 +08:00
2024-04-19 22:56:13 +08:00
2023-11-20 23:02:41 +02:00
2023-12-02 22:37:22 +02:00
2024-02-09 17:00:33 +01:00
2024-01-31 16:45:09 +02:00
2024-01-31 16:45:09 +02:00
2024-02-07 18:31:28 +01:00
2024-01-11 14:33:47 +08:00
2024-01-31 09:16:10 +02:00
2023-12-02 22:37:22 +02:00
2024-02-02 22:12:57 +08:00
2024-01-18 12:50:06 +02:00
2024-02-02 22:12:57 +08:00
2024-03-29 18:41:54 +01:00
2024-01-18 12:50:06 +02:00
2024-04-19 22:57:36 +08:00
2024-01-18 12:50:06 +02:00
2024-03-12 14:53:55 +08:00
2024-04-23 12:09:05 +03:00
2024-01-18 12:50:06 +02:00
2023-12-02 22:37:22 +02:00
2023-12-02 22:37:22 +02:00
2024-04-30 09:07:22 +03:00
2024-03-13 10:21:25 +02:00
2024-02-01 10:27:55 +02:00
2024-04-19 07:44:07 +03:00