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
..
2021-09-29 14:10:29 +02:00
2022-02-17 03:42:08 +09:00
2022-01-25 10:16:06 +01:00
2022-02-17 03:42:08 +09: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
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-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
2022-02-13 20:59:07 +00:00
2022-02-13 20:59:07 +00:00
2022-01-02 11:40:31 +01:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:40:31 +01:00
2022-01-02 11:52:11 +01:00
2021-12-30 19:36:57 +02:00
2022-01-02 11:13:40 +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-01-28 18:07:08 +10:00