By using this site, you agree to the Privacy Policy and Terms of Use.
Accept
World of SoftwareWorld of SoftwareWorld of Software
  • News
  • Software
  • Mobile
  • Computing
  • Gaming
  • Videos
  • More
    • Gadget
    • Web Stories
    • Trending
    • Press Release
Search
  • Privacy
  • Terms
  • Advertise
  • Contact
Copyright © All Rights Reserved. World of Software.
Reading: Uber Boosted Performance with Go’s Profile-Guided Optimization
Share
Sign In
Notification Show More
Font ResizerAa
World of SoftwareWorld of Software
Font ResizerAa
  • Software
  • Mobile
  • Computing
  • Gadget
  • Gaming
  • Videos
Search
  • News
  • Software
  • Mobile
  • Computing
  • Gaming
  • Videos
  • More
    • Gadget
    • Web Stories
    • Trending
    • Press Release
Have an existing account? Sign In
Follow US
  • Privacy
  • Terms
  • Advertise
  • Contact
Copyright © All Rights Reserved. World of Software.
World of Software > News > Uber Boosted Performance with Go’s Profile-Guided Optimization
News

Uber Boosted Performance with Go’s Profile-Guided Optimization

News Room
Last updated: 2025/03/19 at 7:46 AM
News Room Published 19 March 2025
Share
SHARE

Profile-guided optimization (PGO) has emerged as a powerful technique for improving application performance by using runtime data to inform compiler decisions. In a recent implementation, Uber collaborated with Google to integrate PGO into Golang, resulting in significant performance improvements and resource savings across their service fleet.

PGO takes advantage of actual runtime behavior to make smarter compiler decisions compared to traditional static analysis. By collecting execution profiles during representative runs, PGO identifies hot code paths and optimizes them accordingly through techniques like:

  • Intelligent function inlining based on call frequency
  • Improved code and data layout for better locality
  • Enhanced register allocation and instruction scheduling
  • Basic block reordering to optimize execution paths

Uber profiling infrastructure for Go

The implementation of PGO at Uber encompasses several key phases: profiling, analysis, and recompilation. Initially, runtime profiling data is collected during representative executions of applications. This data is then analyzed to identify optimization opportunities, which are subsequently applied during the recompilation process to produce optimized binaries. While languages like C++, Rust, Java, and Swift have long supported PGO, its integration into Go is relatively recent. Uber collaborated with Google to introduce PGO support in Go, with PGO-driven inlining introduced in version 1.20 and devirtualization optimizations added in version 1.21.

To seamlessly incorporate PGO into its continuous optimization framework, Uber established a systematic process:

  1. Daily Profile Collection: Continuous profiling data is gathered from multiple instances to create representative profiles.
  2. Service-Specific Enrollment: A configuration system enrolls specific services for PGO, ensuring targeted optimizations.
  3. Continuous Integration (CI) Testing: The PGO Software Development Kit (SDK) undergoes CI tests to validate changes and maintain stability.
  4. Deployment: Post-validation, PGO-optimized services are deployed into the production environment.
  5. Performance Monitoring: A performance dashboard monitors the impact of PGO on services, facilitating ongoing assessment.

A significant challenge encountered during PGO implementation was the increase in build times, with some services experiencing delays of up to eight times. This was primarily due to the extensive time required for parsing profiling data during compilation. To address this, Uber developed a profile preprocessing tool that extracts runtime profiling data, constructs call graphs, and caches this information for use during compilation. This preprocessing significantly reduced build times, making PGO integration more practical for developers.

The performance impact of PGO was evaluated using synthetic benchmarks and real-world service assessments. In the case of the widely used third-party JSON library in Go, known as go-json, benchmarks demonstrated that:

  • 30% reduction in instruction Translation Lookaside Buffer (iTLB) misses for Go’s go-json library.
  • 4% performance improvement through optimized inlining.
  • 24,000 fewer CPU cores required across Uber’s top services, leading to significant cost savings.

Several other technology companies have embraced Profile-Guided Optimization (PGO) to enhance the performance of their Go applications. Cloudflare has integrated PGO into its Go-based services, collecting CPU profiles from production environments to guide compiler optimizations, resulting in reduced CPU usage and improved performance. Similarly, Datadog employs PGO to optimize Go applications, achieving up to 14% CPU savings in production environments by leveraging profiling data to inform the Go compiler’s optimization decisions. Grafana Labs utilizes PGO in conjunction with Grafana Pyroscope, an open-source continuous profiling platform, to optimize Go applications. This integration provides real-time performance analysis, enabling developers to identify inefficiencies and optimize code execution for peak performance.

In summary, Uber’s integration of Profile-Guided Optimization into its Go programming environment has yielded substantial performance improvements. By systematically collecting profiling data, preprocessing it to reduce build times, and applying targeted compiler optimizations, Uber has enhanced the efficiency of its services. This initiative not only demonstrates the potential of PGO in optimizing resource utilization but also highlights the benefits of collaboration and innovation in software performance engineering.

Sign Up For Daily Newsletter

Be keep up! Get the latest breaking news delivered straight to your inbox.
By signing up, you agree to our Terms of Use and acknowledge the data practices in our Privacy Policy. You may unsubscribe at any time.
Share This Article
Facebook Twitter Email Print
Share
What do you think?
Love0
Sad0
Happy0
Sleepy0
Angry0
Dead0
Wink0
Previous Article Windows 11 will soon let you know why your PC hardware sucks
Next Article 11 tips for taking Pinterest-worthy photos with your smartphone
Leave a comment

Leave a Reply Cancel reply

Your email address will not be published. Required fields are marked *

Stay Connected

248.1k Like
69.1k Follow
134k Pin
54.3k Follow

Latest News

Foxconn Chair Claims AI Will Destroy Manufacturing Jobs
News
Fidelity Bank drops out of trillion-naira club after court ruling
Computing
AI Mode is obviously the future of Google Search
News
Gmail’s new tools help you reply smarter and schedule faster
News

You Might also Like

News

Foxconn Chair Claims AI Will Destroy Manufacturing Jobs

1 Min Read
News

AI Mode is obviously the future of Google Search

11 Min Read
News

Gmail’s new tools help you reply smarter and schedule faster

2 Min Read
News

Tourist faces £168k fine after launching huge rock from Spanish beauty spot

5 Min Read
//

World of Software is your one-stop website for the latest tech news and updates, follow us now to get the news that matters to you.

Quick Link

  • Privacy Policy
  • Terms of use
  • Advertise
  • Contact

Topics

  • Computing
  • Software
  • Press Release
  • Trending

Sign Up for Our Newsletter

Subscribe to our newsletter to get our newest articles instantly!

World of SoftwareWorld of Software
Follow US
Copyright © All Rights Reserved. World of Software.
Welcome Back!

Sign in to your account

Lost your password?