laanwj
922c49a138
Merge bitcoin/bitcoin#23819 : ConnectBlock: don't serialize block hash twice
...
eb8b22d5176d7abc6f93b4473df446105ca595e6 block_connected: re-use previous GetTimeMicros (William Casarin)
80e1c55687aae61767f1ade0826746cda00d6a24 block_connected: don't serialize block hash twice (William Casarin)
Pull request description:
In the validation:block_connected tracepoint, we call block->GetHash(), which
ends up calling CBlockHeader::GetHash(), executing around 8000 serialization
instructions. We don't need to do this extra work, because block->GetHash() is
already called further up in the function. Let's save that value as a local
variable and re-use it in our tracepoint so there is no unnecessary tracepoint
overhead.
Shave off an extra 100 or so instructions from the validation:block_connected
tracepoint by reusing a nearby GetTimeMicros(). This brings the tracepoint down
to 54 instructions. Still high, but much better than the previous ~154 and
8000 instructions which it was originally.
Signed-off-by: William Casarin <jb55@jb55.com>
ACKs for top commit:
0xB10C:
ACK eb8b22d5176d7abc6f93b4473df446105ca595e6
laanwj:
Code review ACK eb8b22d5176d7abc6f93b4473df446105ca595e6
theStack:
re-ACK eb8b22d5176d7abc6f93b4473df446105ca595e6
Tree-SHA512: 92ae585e487554e0f73042a8abaa239f630502c1d198e010bd7c1de252d882bccb627bbf0e4faec09c1253e782b145bcf153f9fee78cdb8456188044a96f8267
2022-02-17 14:10:13 +01:00
..
2022-02-04 09:33:41 -05:00
2022-02-01 11:19:18 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-09-29 14:10:29 +02:00
2022-02-17 03:42:08 +09:00
2022-01-31 21:20:41 +01:00
2022-01-06 22:14:16 -05:00
2022-01-25 10:16:06 +01:00
2021-10-05 11:10:47 -04:00
2021-12-30 19:36:57 +02:00
2022-02-04 22:47:49 +08:00
2022-02-17 03:42:08 +09:00
2022-01-17 12:24:43 +00:00
2022-01-26 15:10:44 +01:00
2022-02-15 08:38:57 +02:00
2022-02-14 11:17:59 +01:00
2022-01-31 16:39:40 +01:00
2021-12-15 09:19:50 -05:00
2022-01-02 11:40:31 +01:00
2022-02-17 12:29:41 +01:00
2021-10-11 20:45:56 +08:00
2022-02-17 12:29:41 +01:00
2022-02-17 03:42:08 +09:00
2022-01-31 16:53:12 +01:00
2021-11-12 11:46:34 +01:00
2022-02-03 18:35:52 +08:00
2021-12-30 19:36:57 +02:00
2021-12-28 21:54:51 +01:00
2022-01-04 23:08:11 +08:00
2022-01-04 23:08:11 +08:00
2022-01-13 15:56:59 +01:00
2022-01-28 19:27:25 +00:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-06 14:17:41 +13:00
2021-12-06 14:17:41 +13:00
2021-12-30 19:36:57 +02:00
2022-01-28 15:26:24 +01:00
2021-12-30 19:36:57 +02:00
2022-01-06 22:14:16 -05:00
2022-01-06 22:14:16 -05:00
2022-01-06 11:29:55 -05:00
2022-01-25 10:49:46 +01:00
2022-01-31 09:23:54 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-01-26 12:58:23 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-02-11 17:21:44 +01:00
2022-01-07 13:37:47 -05:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:40:31 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-01-06 22:14:16 -05:00
2021-12-30 19:36:57 +02:00
2022-02-03 18:35:52 +08:00
2022-02-03 18:35:52 +08:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:40:31 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-01-13 18:35:25 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-02-09 19:31:22 +02:00
2022-01-06 22:14:16 -05:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-02-03 18:35:52 +08:00
2022-02-03 18:35:52 +08:00
2022-02-14 21:12:39 +01:00
2022-02-13 20:59:07 +00:00
2021-09-24 15:40:04 +08:00
2021-10-15 01:02:45 +00:00
2021-10-21 09:37:30 +08:00
2022-02-13 20:59:07 +00:00
2022-02-13 20:59:07 +00:00
2021-12-20 10:53:01 -05:00
2021-12-20 10:53:01 -05:00
2022-02-13 20:59:07 +00:00
2021-10-11 20:46:25 +08:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-01-25 20:43:37 +01:00
2022-01-25 18:48:41 +01:00
2021-12-14 18:58:45 +01:00
2021-12-30 19:36:57 +02:00
2022-02-04 09:24:17 +01:00
2022-02-04 09:24:17 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:40:31 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:40:31 +01:00
2022-02-02 17:22:42 +01:00
2022-01-30 08:59:10 -03:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-01-06 22:14:16 -05:00
2022-01-14 13:25:23 +01:00
2022-01-14 13:27:41 +01:00
2022-01-02 11:52:11 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:13:40 +01:00
2022-02-03 20:16:50 +01:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2021-12-30 19:36:57 +02:00
2022-01-28 20:52:53 +01:00
2022-01-28 20:52:53 +01:00
2022-01-25 11:20:18 +08:00
2022-01-25 11:20:18 +08:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:40:31 +01:00
2022-02-17 14:10:13 +01:00
2022-02-09 19:13:50 +01:00
2022-01-28 18:07:08 +10:00
2022-01-28 08:46:03 +01:00
2022-01-06 22:14:16 -05:00
2021-12-30 19:36:57 +02:00