Может быть эталоном методология может быть как
а) онлайн (измерение передачи данных по сети, а)
б) в автономном режиме (измерение проверки дисков в данных)
разбиты на
а) в режиме реального времени (получение метрики RL блоков, как они будут добавлены в терминах скорости сети, требуется время процессора, ввода / вывода требуемого времени), в том числе "режим кетчуп" где вы открываете -qt клиента, вы один день позади, и вы можете измерить это, а также с точки зрения того, насколько процессор или I / O используется в Мб блоков данных и т.д. - хотя это не 100% точности из-за различий в пути TXS включены в блоки.
б) не в реальное время, где вы могли бы иметь что-то вроде --bench = высоты 350000-351000, где вы бы измерить ввод / вывод и процессор скорость для проверки заранее выбранного диапазона 1000 блоков, которые уже хранятся на жестком диске.
...также могут быть включены любые изменения на показатели, которые являются полезными.
Я сделал обычай строить с маршевыми = родными флагами, и я действительно не имею какой-либо серьезный инструмента для измерения ли быстрее, чем официальный, или двоичная моего дистрибутив моих двоичный. Я также хочу, чтобы экспериментировать с различными версиями GCC, Intel и AMD C компиляторы, лязгом и т.д. и т.д., чтобы увидеть, который получает лучшую производительность, но я не хватает бенчмаркинг инструментов.
Использование -O2, кажется, получить довольно близко к наилучшему варианту с большинством вещей, но, возможно, некоторая конкретный вектор оптимизация может сделать заметную разницу.
И без ориентира мы никогда не знаем,
Из того, что я видел RAM, DB медлительность и проблемы сериализации основные узкие места в настоящее время.
+
Последовательный характер создает много выбывших из насыщенного идеала полосы пропускания, поэтому, безусловно, параллельная синхронизация необходима для максимального быстродействия.
RAM могут быть обменены с CPU с чем-то вроде ZRAM, где вы увеличить данные, которые могут вписаться в него, путем их сжатия в реальном масштабе времени. Это очень удобно. С LZ4 я получаю 2.5-3x степень сжатия оперативной памяти и может легко избежать замены на диск, который является очень дорогим с точки зрения времени ввода / вывода.
В теории Bitcoin может использовать свою собственную схему сжатия барана со смещенным алгоритмом хранения для вещей, как его система кэширования или других подсистемы.
То же самое с сжатием диска, который является компромиссом ввода / вывода с центральным процессором. Я попытался установить blockchain в BTRFS сжатого раздела, он был немного быстрее, с точки зрения пропускной способности, а также сохраняется 10GB + в размере. Из того, что я помню, Windows 7 также сжимается поддержка папки, поэтому она должна быть выполнима в окнах тоже.
Сериализация действительно является проблемой, но если вы можете получить последовательный процесс, чтобы получить с него 10-20% быстрее из-за пользовательской компиляции, то это стоит - пока эти вещи не будут исправлены в коде.
Для синхронизации, я убеждаюсь пропускная способность сети, как насыщенная, как можно так долго, как это возможно. Это быстрый, но практично. Если в процессе код косяка данные на полной скорости, то она может быть оптимизирована. Ну по крайней мере, есть шанс.
Имеет смысл.