mirror of
https://github.com/status-im/nimbus-eth1.git
synced 2025-01-29 13:35:38 +00:00
73b628491d
* Add persistent snapshot size logging why: Suspecting too much space used snapshot statistic: [..] blockNumber=2214912 nSnaps=2236 snapsTotal=1.14m blockNumber=2215936 nSnaps=2237 snapsTotal=1.14m [..] Persisting blocks fromBlock=2216449 toBlock=2216640 36458496 datadir-nimbus-goerlish/data/nimbus/ * Replace legacy `lru_cache` by `keyed_queue` why: `keyed_queue` generalises `lru_cache` snapshot statistic: [..] blockNumber=2234368 nSnaps=2259 snapsTotal=1.15m blockNumber=2235392 nSnaps=2260 snapsTotal=1.15m [..] Persisting blocks fromBlock=2235649 toBlock=2235840 37627288 datadir-nimbus-goerlish/data/nimbus/ * Increase persistent snapshot storage interval by 300% snapshot statistic: [..] blockNumber=2232320 nSnaps=620 snapsTotal=0.30m blockNumber=2236416 nSnaps=621 snapsTotal=0.30m [..] Persisting blocks fromBlock=2237185 toBlock=2237376 37627288 datadir-nimbus-goerlish/data/nimbus/ * Cull legacy debugging environment for clique why: Chronicles provides a better choice (when properly set up)
48 lines
1.7 KiB
Nim
48 lines
1.7 KiB
Nim
# Nimbus - Types, data structures and shared utilities used in network sync
|
|
#
|
|
# Copyright (c) 2018-2021 Status Research & Development GmbH
|
|
# Licensed under either of
|
|
# * Apache License, version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or
|
|
# http://www.apache.org/licenses/LICENSE-2.0)
|
|
# * MIT license ([LICENSE-MIT](LICENSE-MIT) or
|
|
# http://opensource.org/licenses/MIT)
|
|
# at your option. This file may not be copied, modified, or
|
|
# distributed except according to those terms.
|
|
|
|
## Some logging helper moved here in absence of a known better place.
|
|
|
|
import
|
|
std/strutils
|
|
|
|
proc toSI*(num: SomeUnsignedInt): string =
|
|
## Prints `num` argument value greater than 99 as rounded SI unit.
|
|
const
|
|
siUnits = [
|
|
# <limit> <multiplier> <symbol>
|
|
( 100_000u64, 1000f64, 'k'),
|
|
( 100_000_000u64, 1000_000f64, 'm'),
|
|
( 100_000_000_000u64, 1000_000_000f64, 'g'),
|
|
( 100_000_000_000_000u64, 1000_000_000_000f64, 't'),
|
|
( 100_000_000_000_000_000u64, 1000_000_000_000_000f64, 'p'),
|
|
(10_000_000_000_000_000_000u64, 1000_000_000_000_000_000f64, 'e')]
|
|
|
|
lastUnit =
|
|
# <no-limit-here> <multiplier> <symbol>
|
|
( 1000_000_000_000_000_000_000f64, 'z')
|
|
|
|
if num < 1000:
|
|
return $num
|
|
|
|
block checkRange:
|
|
let
|
|
uNum = num.uint64
|
|
fRnd = (num.float + 5) * 100
|
|
for (top, base, sig) in siUnits:
|
|
if uNum < top:
|
|
result = (fRnd / base).int.intToStr(3) & $sig
|
|
break checkRange
|
|
result = (fRnd / lastUnit[0]).int.intToStr(3) & $lastUnit[1]
|
|
|
|
result.insert(".", result.len - 3)
|
|
|