Simulación Local, Benchmarking y Perfilado de Gas
Resumen
Sección titulada «Resumen»El tutorial anterior demuestra cómo puedes desplegar e interactuar con contratos Move usando varios comandos del CLI.
Por defecto, esos comandos envían una transacción al fullnode remoto para simulación y ejecución. Puedes anular este comportamiento y simular la transacción localmente, agregando una de las siguientes opciones de línea de comandos de tu preferencia:
--local
: Simular la transacción localmente sin realizar más mediciones o análisis.--benchmark
: Hacer benchmark de la transacción y reportar el(los) tiempo(s) de ejecución.--profile-gas
: Perfilar la transacción para uso detallado de gas.
Estas opciones adicionales pueden usarse en combinación con los siguientes comandos del CLI:
aptos move run
aptos move run-script
aptos move publish
Alternativamente, si estás interesado en reproducir una transacción pasada, revisa este tutorial.
Desplegando el Contrato de Ejemplo
Sección titulada «Desplegando el Contrato de Ejemplo»Para propósitos de demostración, continuaremos usando el paquete hello_blockchain
como ejemplo.
Primero, publica el paquete en devnet o testnet (si no lo has hecho ya).
Cambia al directorio del paquete.
cd aptos-move/move-examples/hello_blockchain
Luego publica el paquete usando el siguiente comando.
aptos move publish --named-addresses hello_blockchain=default --assume-yes
Simulación Local
Sección titulada «Simulación Local»Para simular localmente una transacción, simplemente agrega la bandera --local
a tu comando:
aptos move run --function-id default::message::set_message --args string:"hello, blockchain" --local
Esto ejecutará la transacción localmente sin enviarla a la red.
Benchmarking
Sección titulada «Benchmarking»Para hacer benchmark de una transacción, usa la bandera --benchmark
:
aptos move run --function-id default::message::set_message --args string:"hello, blockchain" --benchmark
Esto reportará los tiempos de ejecución tanto para caché de código frío como caliente.
Perfilado de Gas
Sección titulada «Perfilado de Gas»El Perfilador de Gas de Aptos es una herramienta poderosa para entender el uso de gas de las transacciones. Para usar el perfilador de gas:
aptos move run --function-id default::message::set_message --args string:"hello, blockchain" --profile-gas
Esto generará un reporte detallado de gas en formato web que incluye:
- Desglose detallado del uso de gas por operación
- Trace de ejecución completo
- Información de depuración
El reporte se guarda en el directorio gas-profiling
:
Directorygas-profiling/
Directorytxn-[hash]-[module]-[function]/
Directoryassets/
- …
- index.html
Entendiendo el Reporte de Gas
Sección titulada «Entendiendo el Reporte de Gas»El reporte de gas generado proporciona información valiosa sobre:
- Uso total de gas - La cantidad total de unidades de gas consumidas
- Desglose por categoría - Gas usado para diferentes tipos de operaciones
- Trace de ejecución - Secuencia paso a paso de operaciones
- Puntos de acceso - Operaciones que consumen más gas
Esta información es crucial para optimizar tus contratos inteligentes Move y reducir costos de transacción.