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. 
 package 
  
 main 
 import 
  
 ( 
  
 "log" 
  
 "runtime" 
  
 "cloud.google.com/go/profiler" 
 ) 
 func 
  
 busyloop 
 () 
  
 { 
  
 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 
 () 
  
 } 
 } 
 func 
  
 load 
 () 
  
 { 
  
 for 
  
 i 
  
 := 
  
 0 
 ; 
  
 i 
 < 
 ( 
 1 
 << 
 20 
 ); 
  
 i 
 ++ 
  
 { 
  
 } 
 } 
 func 
  
 main 
 () 
  
 { 
  
 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", 
  
 }) 
  
 if 
  
 err 
  
 != 
  
 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 .

Design a Mobile Site
View Site in Mobile | Classic
Share by: