good morning!!!!

Skip to content
Snippets Groups Projects
  1. Jul 16, 2020
    • Martin Holst Swende's avatar
      core/vm: less allocations for various call variants (#21222) · 29569375
      Martin Holst Swende authored
      
      * core/vm/runtime/tests: add more benchmarks
      
      * core/vm: initial work on improving alloc count for calls to precompiles
      
      name                                  old time/op    new time/op    delta
      SimpleLoop/identity-precompile-10M-6     117ms ±75%      43ms ± 1%  -63.09%  (p=0.008 n=5+5)
      SimpleLoop/loop-10M-6                   79.6ms ± 4%    70.5ms ± 1%  -11.42%  (p=0.008 n=5+5)
      
      name                                  old alloc/op   new alloc/op   delta
      SimpleLoop/identity-precompile-10M-6    24.4MB ± 0%     4.9MB ± 0%  -79.94%  (p=0.008 n=5+5)
      SimpleLoop/loop-10M-6                   13.2kB ± 0%    13.2kB ± 0%     ~     (p=0.357 n=5+5)
      
      name                                  old allocs/op  new allocs/op  delta
      SimpleLoop/identity-precompile-10M-6      382k ± 0%      153k ± 0%  -59.99%  (p=0.000 n=5+4)
      SimpleLoop/loop-10M-6                     40.0 ± 0%      40.0 ± 0%     ~     (all equal)
      
      * core/vm: don't allocate big.int for touch
      
      name                                  old time/op    new time/op    delta
      SimpleLoop/identity-precompile-10M-6    43.3ms ± 1%    42.4ms ± 7%     ~     (p=0.151 n=5+5)
      SimpleLoop/loop-10M-6                   70.5ms ± 1%    76.7ms ± 1%   +8.67%  (p=0.008 n=5+5)
      
      name                                  old alloc/op   new alloc/op   delta
      SimpleLoop/identity-precompile-10M-6    4.90MB ± 0%    2.46MB ± 0%  -49.83%  (p=0.008 n=5+5)
      SimpleLoop/loop-10M-6                   13.2kB ± 0%    13.2kB ± 1%     ~     (p=0.571 n=5+5)
      
      name                                  old allocs/op  new allocs/op  delta
      SimpleLoop/identity-precompile-10M-6      153k ± 0%       76k ± 0%  -49.98%  (p=0.029 n=4+4)
      SimpleLoop/loop-10M-6                     40.0 ± 0%      40.0 ± 0%     ~     (all equal)
      
      * core/vm: reduce allocs in staticcall
      
      name                                  old time/op    new time/op    delta
      SimpleLoop/identity-precompile-10M-6    42.4ms ± 7%    37.5ms ± 6%  -11.68%  (p=0.008 n=5+5)
      SimpleLoop/loop-10M-6                   76.7ms ± 1%    69.1ms ± 1%   -9.82%  (p=0.008 n=5+5)
      
      name                                  old alloc/op   new alloc/op   delta
      SimpleLoop/identity-precompile-10M-6    2.46MB ± 0%    0.02MB ± 0%  -99.35%  (p=0.008 n=5+5)
      SimpleLoop/loop-10M-6                   13.2kB ± 1%    13.2kB ± 0%     ~     (p=0.143 n=5+5)
      
      name                                  old allocs/op  new allocs/op  delta
      SimpleLoop/identity-precompile-10M-6     76.4k ± 0%      0.1k ± 0%     ~     (p=0.079 n=4+5)
      SimpleLoop/loop-10M-6                     40.0 ± 0%      40.0 ± 0%     ~     (all equal)
      
      * trie: better use of hasher keccakState
      
      * core/state/statedb: reduce allocations in getDeletedStateObject
      
      * core/vm: reduce allocations in all call derivates
      
      * core/vm: reduce allocations in call variants
      
      - Make returnstack `uint32`
      - Use a `sync.Pool` of `stack`s
      
      * core/vm: fix tests
      
      * core/vm: goimports
      
      * core/vm: tracer fix + staticcall gas fix
      
      * core/vm: add back snapshot to staticcall
      
      * core/vm: review concerns + make returnstack pooled + enable returndata in traces
      
      * core/vm: fix some test tracer method signatures
      
      * core/vm: run gencodec, minor comment polish
      
      Co-authored-by: default avatarPéter Szilágyi <peterke@gmail.com>
      Unverified
      29569375
  2. Jul 15, 2020
  3. Jul 14, 2020
  4. Jul 13, 2020
  5. Jul 10, 2020
  6. Jul 09, 2020
  7. Jul 08, 2020
  8. Jul 07, 2020
  9. Jul 06, 2020
  10. Jul 04, 2020
  11. Jul 03, 2020
    • meowsbits's avatar
      cmd/geth: allow configuring metrics HTTP server on separate endpoint (#21290) · 490b380a
      meowsbits authored
      Exposing /debug/metrics and /debug/metrics/prometheus was dependent
      on --pprof, which also exposes other HTTP APIs. This change makes it possible
      to run the metrics server on an independent endpoint without enabling pprof.
      Unverified
      490b380a
    • Gary Rong's avatar
      eth/gasprice: lighter gas price oracle for light client (#20409) · 61270e5e
      Gary Rong authored
      This PR reduces the bandwidth used by the light client to compute the
      recommended gas price. The current mechanism for suggesting the price is:
      
      - retrieve recent 20 blocks
      - get the lowest gas price of these blocks
      - sort the price array and return the middle(60%) one
      
      This works for full nodes, which have all blocks available locally.
      However, this is very expensive for the light client because the light
      client needs to retrieve block bodies from the network.
      
      The PR changes the default options for light client. With the new config,
      the light client only retrieves the two latest blocks, but in order to
      collect more sample transactions, the 3 lowest prices are collected from
      each block.
      
      This PR also changes the behavior for empty blocks. If the block is empty,
      the lastest price is reused for sampling.
      Unverified
      61270e5e
  12. Jul 02, 2020
  13. Jul 01, 2020
  14. Jun 30, 2020
    • Marius van der Wijden's avatar
      eth/downloader: fixes data race between synchronize and other methods (#21201) · d671dbd5
      Marius van der Wijden authored
      * eth/downloaded: fixed datarace between synchronize and Progress
      
      There was a race condition between `downloader.synchronize()` and `Progress` `syncWithPeer` `fetchHeight` `findAncestors` and `processHeaders`
      This PR changes the behavior of the downloader a bit.
      Previously the functions `Progress` `syncWithPeer` `fetchHeight` `findAncestors` and `processHeaders` read the syncMode anew within their loops. Now they read the syncMode at the start of their function and don't change it during their runtime.
      
      * eth/downloaded: comment
      
      * eth/downloader: added comment
      Unverified
      d671dbd5
    • rene's avatar
    • Guillaume Ballet's avatar
      go.mod: bump gopsutil version (#21275) · b86b1e6d
      Guillaume Ballet authored
      Unverified
      b86b1e6d
    • Marius van der Wijden's avatar
      core: types: less allocations when hashing and tx handling (#21265) · ddeea1e0
      Marius van der Wijden authored
      
      * core, crypto: various allocation savings regarding tx handling
      
      * core: reduce allocs for gas price comparison
      
      This change reduces the allocations needed for comparing different transactions to each other.
      A call to `tx.GasPrice()` copies the gas price as it has to be safe against modifications and
      also needs to be threadsafe. For comparing and ordering different transactions we don't need
      these guarantees
      
      * core: added tx.GasPriceIntCmp for comparison without allocation
      
      adds a method to remove unneeded allocation in comparison to tx.gasPrice
      
      * core/types: pool legacykeccak256 objects in rlpHash
      
      rlpHash is by far the most used function in core that allocates a legacyKeccak256 object on each call.
      Since it is so widely used it makes sense to add pooling here so we relieve the GC.
      On my machine these changes result in > 100 MILLION less allocations and > 30 GB less allocated memory.
      
      * reverted some changes
      
      * reverted some changes
      
      * trie: use crypto.KeccakState instead of replicating code
      
      Co-authored-by: default avatarMartin Holst Swende <martin@swende.se>
      Unverified
      ddeea1e0
Loading