Announcement

Collapse
No announcement yet.

Chrome 85 Is Clang PGO'ing Binaries For Better Performance But Linux Left Out

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Chrome 85 Is Clang PGO'ing Binaries For Better Performance But Linux Left Out

    Phoronix: Chrome 85 Is Clang PGO'ing Binaries For Better Performance But Linux Left Out

    As we frequently cover, making use of compiler PGO (Profile Guided Optimizations) can mean some sizable performance wins, assuming the generated usage profile is accurate. With the imminent Chrome 85 availability, Google is now making use of PGO with their default LLVM Clang compiler toolchain for squeezing out around 10% better performance...

    Phoronix, Linux Hardware Reviews, Linux hardware benchmarks, Linux server benchmarks, Linux benchmarking, Desktop Linux, Linux performance, Open Source graphics, Linux How To, Ubuntu benchmarks, Ubuntu hardware, Phoronix Test Suite

  • #2
    I wonder if ungoogled-Chromium is using any type of optimizations like this ?
    I use it as a backup for Firefox and unfortunately it seems already faster than Firefox.

    Comment


    • #3
      Originally posted by Danny3 View Post
      I wonder if ungoogled-Chromium is using any type of optimizations like this ?
      I use it as a backup for Firefox and unfortunately it seems already faster than Firefox.
      For some time now I've been building myself a custom Chromium on Gentoo using GCC and LTO and although I didn't make comparison benchmarks (maybe I should do it once), I'm already seeing reduced binary sizes. The price is in compilation time and memory usage - 16GB is barely enough. I've tried PGO once (also with GCC), but I came across a technical issue - Chromium is spawning processes for each opened tab (with some exceptions). Unfortunately none of these processes exit in a standard way (i.e. by returning from main or calling exit()). This means, that GCC's PGO mechanism has no way of flushing branch counters upon program exit. This means that although runtime information is gathered, it is never saved anywhere.

      Maybe with Chromium 85 some hooks have been added, which are used to dump the counters before exiting from the process. If yes, I should be able to use them for GCC also and run a true PGO build.

      Comment


      • #4
        Originally posted by Danny3 View Post
        I wonder if ungoogled-Chromium is using any type of optimizations like this ?
        I use it as a backup for Firefox and unfortunately it seems already faster than Firefox.
        Depends on what you compile it with. I wouldn't recommend it though.

        Comment


        • #5
          Originally posted by KrissN View Post

          For some time now I've been building myself a custom Chromium on Gentoo using GCC and LTO and although I didn't make comparison benchmarks (maybe I should do it once), I'm already seeing reduced binary sizes. The price is in compilation time and memory usage - 16GB is barely enough. I've tried PGO once (also with GCC), but I came across a technical issue - Chromium is spawning processes for each opened tab (with some exceptions). Unfortunately none of these processes exit in a standard way (i.e. by returning from main or calling exit()). This means, that GCC's PGO mechanism has no way of flushing branch counters upon program exit. This means that although runtime information is gathered, it is never saved anywhere.

          Maybe with Chromium 85 some hooks have been added, which are used to dump the counters before exiting from the process. If yes, I should be able to use them for GCC also and run a true PGO build.
          If you use clang and thin lto it won't take up anywhere near as much ram

          Comment


          • #6
            Originally posted by FireBurn View Post

            If you use clang and thin lto it won't take up anywhere near as much ram
            I know that, but I wanted to build it with GCC, because... why not?

            Comment


            • #7
              @Michael: "Chrome 85 is Clang PGO'ing", wtf? Especially considering you try to explain what PGO stands for in the first sentence, but also fail there.
              How about "Chrome 85 is using Clang PGO for better performance.."? Also, PGO doesn't stand for "Profile Guided Optimizations". It stands for profile-guided optimization.

              Comment


              • #8
                I'm surprised they don't do this already for years.

                Comment


                • #9
                  Originally posted by KrissN View Post

                  I know that, but I wanted to build it with GCC, because... why not?
                  I used to use GCC but Clang makes for a smaller binary - plus it's what Google themselves use, checkout my overlay if you wanna give VAAPI a spin

                  Comment


                  • #10
                    Originally posted by Danny3 View Post
                    I wonder if ungoogled-Chromium is using any type of optimizations like this ?
                    I use it as a backup for Firefox and unfortunately it seems already faster than Firefox.
                    firefox has been slow for donkeys years. only good thing with firefox an that is its Extensions

                    Comment

                    Working...
                    X