# Benchmark Go performance with Sweet and Benchstat

## In this learning path

- [Introduction](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/)
- [Overview](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/overview/)
- [Launch an Arm-based c4a-standard-4 instance](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/add_c4a_vm/)
- [Launch an Intel Emerald Rapids c4-standard-8 instance](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/add_c4_vm/)
- [Install Go, Sweet, and Benchstat](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/installing_go_and_sweet/)
- [Benchmark types and metrics](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/running_benchmarks/)
- [Manually run benchmarks](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/manual_run_benchmark/)
- [Manually run Benchstat](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/manual_run_benchstat/)
- [Install the automated benchmark and Benchstat runner](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/rexec_sweet_install/)
- [Run the automated benchmark and Benchstat runner](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/rexec_sweet_run/)
- [Next Steps](https://learn.arm.com/learning-paths/servers-and-cloud-computing/go-benchmarking-with-sweet/_next-steps/)

## About this Learning Path

| Skill level:        | Introductory       |
|---------------------|--------------------|
| Reading time:       | 1 hr               |
| Last updated:       | 11 Sep 2026        |

| Author:             | Geremy Cohen, Arm [GitHub](https://github.com/geremyCohen) [LinkedIn](https://linkedin.com/in/geremyinanutshell) |
|---------------------|--------------------|
| Arm IP:             | [Neoverse](https://support.arm.com/?tab=compute-ip&Product%20Type=Infrastructure%20Processors) |
| Tags:               | [Performance and Architecture](https://learn.arm.com/tag/performance-and-architecture) [Google Axion](https://learn.arm.com/tag/google-axion) [Linux](https://learn.arm.com/tag/linux) [Go](https://learn.arm.com/tag/go) |

## Who is this for?
This introductory topic is for developers who want to measure and compare the performance of Go applications on Arm-based servers.

## What will you learn?
Upon completion of this Learning Path, you will be able to:
- Provision Arm64 and x86_64 virtual machine (VM) instances on Google Cloud.
- Install Go, Sweet, and Benchstat on each VM instance.
- Run benchmarks and use Benchstat to compare Go application performance across architectures.

## Prerequisites
Before starting, you will need the following:
- A [Google Cloud account](https://console.cloud.google.com/)
- A local machine with [Google Cloud CLI](https://learn.arm.com/install-guides/gcloud/) installed

## Summary
You’ll compare Go application performance on Arm-based and Intel Google Cloud VMs. First, you’ll install Go, Sweet, and Benchstat on both systems, run the same benchmarks, and collect comparable results. Then, you’ll use Benchstat to analyze statistical differences and review the output as text or CSV. This gives you a reproducible basis for comparing application performance across architectures.

## Frequently asked questions

<details>
<summary>How do I know that the VM is configured correctly before continuing?</summary>
On the VM instances page, confirm that the series and machine type is `c4a-standard-4` for the Arm-based VM and `c4-standard-8` for the Intel-based VM.
</details>

<details>
<summary>Do I need to install Go, Sweet, and Benchstat on both VMs?</summary>
Yes. The comparison relies on running the same Go Benchmarks natively on each architecture and then using Benchstat to analyze the two result sets.
</details>

<details>
<summary>Where does the Sweet installation go, and what should I check?</summary>
Run the installer from your home directory, which creates a `$HOME/benchmarks/sweet` path. Verify that the directory exists before you proceed to run benchmarks.
</details>

<details>
<summary>When should I run Sweet versus Benchstat?</summary>
Run Sweet on each VM to execute the benchmarks and generate raw performance data. After both runs complete, use Benchstat to compare the results across the two systems.
</details>

<details>
<summary>Which metrics should I inspect in the Benchstat output?</summary>
Inspect `sec/op` for execution time, `average-RSS-bytes` for average resident memory, `peak-RSS-bytes` for maximum resident memory, and `peak-VM-bytes` for maximum virtual memory. Lower values indicate less time or memory for these metrics.
</details>
