¿Cuánto más rápido es sincronizar con --jitvm?

geth helpposee:

OPCIONES DE MÁQUINA VIRTUAL:

--jitvm Habilitar la máquina virtual JIT

El impacto de no --jitvmha sido respondido y estoy buscando respuestas a estos 3 específicamente:

¿Cuánto más rápido es geth --fast --jitvmque solo geth --fast?

¿Cuánto más rápido es geth --fast --cache=1024 --jitvmque solo geth --fast --cache=1024?

¿Cuánto más rápido es geth --jitvmque solo geth?

una evaluación comparativa típica significaría: a) eliminar cualquier db anterior con geth removedbb) cerrar todo el software que usa ancho de banda (adictos a los torrents :) c) ejecutar el comando d) ¿cómo lo cronometras? d) es crítico, no puedo pensar en una manera de obtener la marca de tiempo cuando la base de datos está sincronizada

Respuestas (2)

geth 1.5 es mucho más rápido pero hay problemas para mantener las conexiones con los compañeros. Cuando hay una latencia alta, elimina agresivamente la conexión entre pares. Yo uso el parche 2630 de Péter Szilágyi en la versión 1.5.

conseguir 1.4.4

puntos de referencia realizados en OS X con 37320qm 16Go ram 1To SSD con geth 1.4.4 (estable):

___________________________________________________________________
| Option                      | Disk Used | Time | Disk Written   |
|-----------------------------|-----------|-------|---------------|
|                             | 21GB      | 5h00  | 1TB           |
| --fast                      | 4.1GB     | 1h00  | 100GB         |
| --cache 1024 --jitvm        | 21GB      | 6h00  | 1TB           |
| --fast --cache 1024 --jitvm | ????      |       |               |
-------------------------------------------------------------------

Nota: la red es muy inestable hoy (para los bancos --cache y --jitvm), se realizaron otras pruebas cuando la red funcionó mejor. Hay muchas ocasiones en las que pierde a todos los compañeros. Pero no estoy seguro de que haya grandes beneficios con --jitvm o --cache.

geth 1.4.6 en SSD

puntos de referencia realizados en OS X con 37320qm 16Go ram 1To SSD:

___________________________________________________________________
| Option                      | Disk Used | Time | Disk Written   |
|-----------------------------|-----------|-------|---------------|
|                             | 21GB      |       |               |
| --cache 1024 --jitvm        | 21GB      | 4h10  | 543GB         |
| --fast                      | 4.1GB     | 25m   | 52GB          |
| --fast --cache 1024 --jitvm | 4.1GB     |       |               |
-------------------------------------------------------------------

Los resultados deberían ser los mismos que los de la versión 1.5.0. La diferencia probablemente se deba a las conexiones de red con otros pares.

geth 1.4.6 en disco duro

puntos de referencia realizados en OS X con 37320qm 16Go ram 1To HDD 5400tr/min:

___________________________________________________________________
| Option                      | Disk Used | Time  | Disk Written  |
|-----------------------------|-----------|-------|---------------|
|                             |           |       |               |
| --cache 1024 --jitvm        |           | 20h   | 450GB         |
| --fast                      | 4.1GB     |       | 60GB          |
| --fast --cache 1024 --jitvm | 4.1GB     | 4h15m | 60GB          |
------------------------------------------------------------------

Los puntos de referencia de HDD son muy bajos. Es mucho más lento. Si tiene 8Go de ram, cree un disco RAM para hacer --fast & --datadir en él y copie los resultados en su directorio ethereum.

geth 1.5.0 con el parche 2657 (Colecciones de futuros parches)

pruebas realizadas en OS X con 37320qm 16Go ram 1To SSD con geth 1.5.0 (inestable) el 4 de junio de 2016:

__________________________________________________________________
| Option                      | Disk Used | Time | Disk Written  |
|-----------------------------|-----------|------|---------------|
|                             | 21GB      |      | 450GB         |
| --cache 1024 --jitvm        | 21GB      |3h01  | 450GB         |
| --fast                      | 4.1GB     |20m06 | 52GB          |
| --fast --cache 1024 --jitvm | 4.1GB     |21m10s| 52GB          |
------------------------------------------------------------------

Esta versión 1.5 es muy estable. Hice algunas sincronizaciones completas y sincronizaciones rápidas y encontré los mismos resultados +/- pocos %. Buen trabajo

Nota 1: para el indicador --fast, --jitvm y --cache no muestran ganancia.

Nota 2: la operación de importación es similar a una sincronización completa: 3h00

¿Cómo cronometraste las diversas opciones?
ejecuto los comandos geth hasta que tenga todos los bloques actualmente 1.6Mi bloques
así que --fast parece mejorar mucho las cosas, mientras que la ganancia de --cache 1024 --jitvm es muy limitada. no puedo esperar para poner la recompensa de 50, un trabajo increíble
El jitvm es para el futuro cuando los contratos inteligentes serán grandes. La caché no mejora por culpa del SSD, probaré en un banco con un HDD

Hice algunos bancos por mi cuenta y también descubrí que no hay un impacto significativo de --jitvm. Y estoy de acuerdo en que geth 1.5.0 con parche es mucho más rápido :)

Nota: la versión 1.4.6 tiene estos parches y sincroniza rápidamente

Solo hará una diferencia significativa/notable en programas grandes. Hay algunas optimizaciones pendientes que marcarán una gran diferencia. Ver medium.com/@jeff.ethereum/…
Acabo de probar el 1.4.6 en una cadena privada de 70k y es 20 segundos más lento en comparación con un nodo 1.4.4. --jitvm parece 30 segundos más rápido que sin él. Sin embargo, todo difiere cuando los nodos se ejecutan simultáneamente.