diff --git a/barretenberg/cpp/scripts/analyze_vm_compile_time.sh b/barretenberg/cpp/scripts/analyze_vm_compile_time.sh new file mode 100755 index 000000000000..4208fddb0f8a --- /dev/null +++ b/barretenberg/cpp/scripts/analyze_vm_compile_time.sh @@ -0,0 +1,24 @@ +#!/usr/bin/env bash +set -eu + +PRESET="${1:-wasm-threads}" +TARGET="${2:-barretenberg.wasm}" + +BUILD_DIR=build-$PRESET-compiler-profile + +cd $(dirname $0)/.. + +if [ -d $BUILD_DIR ]; then + # Run summary analysis + cd build-$PRESET-compiler-profile + pushd src/barretenberg/vm/CMakeFiles/vm_objects.dir/avm_trace/ > /dev/null 2>&1 + # Process vm json profiling files and "simplify" them in a summary + jq -cn 'inputs | .traceEvents | map(select(.name == "Total ExecuteCompiler")) | map({ name: input_filename, "time(ms)": .args."avg ms"})' **/*.cpp.json | jq -s add > avm_compilation_summary.json + popd > /dev/null 2>&1 + mv ./src/barretenberg/vm/CMakeFiles/vm_objects.dir/avm_trace/avm_compilation_summary.json . + echo -e "Summary file outputted to $BUILD_DIR/avm_compilation_summary.json" +else + echo -e "\n$BUILD_DIR not found, run $(dirname $0)/analyze_compile_time.sh $PRESET $TARGET before running this script" +fi + +