Join GitHub today
GitHub is home to over 36 million developers working together to host and review code, manage projects, and build software together.Sign up
pgo: enabling pgo at configure #21596
This modification allows for compiling with profiled guided optimization (pgo) using the flags
This is a modification proposed towards enabling pgo compilation. From some preliminary results, I have the following data:
I have compared Node-DC-EIS and Ghost, and have obtained 3.7% and 3.8% improvements respectively. These numbers were validated with unpaired t-test. Moreover, I am collecting data regarding the Node.js benchmark suite and mentioned partial results in Refs: #21583. In this context, I would like to mention that assert and async manifest 3.17% and 3.92% improvements respectively.
The experiments were done on Intel(R) Xeon(R) Platinum 8180 CPU @ 2.50GHz. Nevertheless, the solution passes the tests, and also compiles for 32 bits, see also issue Refs: #1409.
Thank you again for the very good feedback. In a trial to answer the suggestions, I have tried to resolve the problems related to lines and indentations. Moreover, regarding the checking of the compiler, I tried to make a uniform design with the lto code. In this context, the tests for the compiler are located between lines 962-998 in configure. Moreover, I have introduced the function check_gcc_version that is used for both pgo and lto. Of course, pgo is covered in both of generate and use cases. The reason for doing the checks in these lines is following the fact that more tests are done here, see also
if flavor == 'aix':
if target_arch in ('x86', 'x64', 'ia32', 'x32'):
in lines 950-960.
Could you please tell if you have further suggestions? Is there anything I can do in order to help making the code better?
Thank you in advance,
referenced this pull request
Sep 2, 2018
Resume CI, again: https://ci.nodejs.org/job/node-test-pull-request/16985/
Dear Reviewers, Hello,
First of all, please accept my apologies for a prolonged inactivity, it is related to personal issues.
@misterdjules the intention was to use pgo on demand only, i.e. not to enable it by default. Adding pgo by default means having a predefined workload for profiling, and, actually it would be good to ask the community if there is such an accepted software.
In this context, I would like to backport this PR to v10. However, I feel I would like to learn a bit more what is to be done, provided, this is acceptable, of course.
@addaleax I would like to ask for a bit of guidance for understanding what were the reasons not to land this on v10? Could you and colleagues, please, write a bit more comments on this?
Thank you in advance,