Go quickstart

Sample profiler_quickstart simulates a CPU-intensive workload for Cloud Profiler in Go.

Code sample

Go

For more information, see the Profiler Go API reference documentation.

To authenticate to Profiler, set up Application Default Credentials. For more information, see Set up authentication for a local development environment.


// Sample profiler_quickstart simulates a CPU-intensive workload for profiler.
packagemain
import(
"log"
"runtime"
"cloud.google.com/go/profiler"
)
funcbusyloop(){
for{
load()
// Make sure to yield so that the profiler thread
// gets some CPU time even on single core machines
// where GOMAXPROCS is 1. Not needed in real programs
// as typically the preemption happens naturally.
runtime.Gosched()
}
}
funcload(){
fori:=0;i < (1 << 20);i++{
}
}
funcmain(){
err:=profiler.Start (profiler.Config {
Service:"hello-profiler",
NoHeapProfiling:true,
NoAllocProfiling:true,
NoGoroutineProfiling:true,
DebugLogging:true,
// ProjectID must be set if not running on GCP.
// ProjectID: "my-project",
})
iferr!=nil{
log.Fatalf("failed to start the profiler: %v",err)
}
busyloop()
}

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.