private void estimateBlockSize(List<TransactionReceipt> receipts, long number) { if (receipts.isEmpty()) return; long blockSize = receipts.stream().mapToLong(TransactionReceipt::estimateMemSize).sum(); synchronized (lastBlockSizes) { lastBlockSizes.add(blockSize); estimatedBlockSize = lastBlockSizes.stream().mapToLong(Long::longValue).sum() / lastBlockSizes.size(); } if (number % 1000 == 0) logger.debug("ReceiptsDownloader: estimated block size: {}", estimatedBlockSize); }
protected void estimateBlockSize(Collection<BlockWrapper> blockWrappers) { if (blockWrappers.isEmpty()) return; synchronized (lastBlockSizes) { blockWrappers.forEach(b -> lastBlockSizes.add(b.estimateMemSize())); estimatedBlockSize = lastBlockSizes.stream().mapToLong(Long::longValue).sum() / lastBlockSizes.size(); } logger.debug("{}: estimated block size: {}", name, estimatedBlockSize); }
/** * Estimates block size in bytes. * Block memory size can depend on the underlying logic, * hence ancestors should call this method on their own, * preferably after actions that impact on block memory size (like RLP parsing, signature recover) are done */ protected void estimateBlockSize(BlockWrapper blockWrapper) { synchronized (lastBlockSizes) { lastBlockSizes.add(blockWrapper.estimateMemSize()); estimatedBlockSize = lastBlockSizes.stream().mapToLong(Long::longValue).sum() / lastBlockSizes.size(); } logger.debug("{}: estimated block size: {}", name, estimatedBlockSize); }
public String latestConsoleLog() { synchronized (consoleLog) { return consoleLog.stream().collect(Collectors.joining()); } }