Skip to content
Snippets Groups Projects
  1. Jan 27, 2025
  2. Jan 01, 2025
  3. Jul 05, 2024
  4. Jul 04, 2024
  5. Jul 01, 2024
  6. Mar 27, 2024
  7. Feb 22, 2024
  8. Feb 12, 2024
  9. Jan 25, 2024
  10. Jan 24, 2024
  11. Jan 02, 2024
  12. Nov 27, 2023
  13. Nov 24, 2023
  14. Jul 19, 2023
  15. Jun 07, 2023
  16. May 30, 2023
  17. Apr 26, 2023
  18. Jan 03, 2023
  19. Nov 02, 2022
  20. Nov 01, 2022
    • Dmitri Naumov's avatar
      Add selection of precompiled headers · a1753e6b
      Dmitri Naumov authored
      This significantly speeds up total rebuild of the project especially in
      the debug preset where it reaches 30%. In the release configuration most
      of the time is spent in the optimization of the code and header parsing
      improvese only by 5%
      
      The expensive header files were determined by ClangBuildAnalyzer
      https://github.com/aras-p/ClangBuildAnalyzer which requires clang's
      -ftime-trace compiler option.
      
      "master" is 8a0f3b66 and the "precompiled headers" branch is descending directly from it.
      
      Improvement of user time around 984s ^= 36%, system time around 30s ^= 22%, wall clock time around 98s ^= 34%.
      
      ninja -j10  1692.19s user 130.79s system 975% cpu 3:06.80 total
      ninja -j10  1693.08s user 130.55s system 976% cpu 3:06.75 total
      
      ninja -j10  2675.04s user 166.38s system 998% cpu 4:44.44 total
      ninja -j10  2677.04s user 168.18s system 999% cpu 4:44.61 total
      
      Improvement of user time around 1010s ^= 5.6%, system time around 50s ^= 36%, wall clock time around 52s ^= 1.9%.
      
      ninja -j10  16864.30s user 96.46s system 661% cpu 42:42.49 total
      ninja -j10  17044.40s user 97.29s system 643% cpu 44:25.82 total
      
      ninja -j10  17890.56s user 188.18s system 687% cpu 43:48.51 total
      ninja -j10  17863.29s user 132.79s system 679% cpu 44:06.71 total
      
      For debug build because of significant improvement there.
      
      405626 ms: eigen3-src/Eigen/Core (included 689 times, avg 588 ms)
      250368 ms: BaseLib/Error.h (included 675 times, avg 370 ms)
      178942 ms: BaseLib/Logging.h (included 739 times, avg 242 ms)
      168664 ms: MaterialLib/MPL/Property.h (included 228 times, avg 739 ms)
      151512 ms: BaseLib/ConfigTree.h (included 220 times, avg 688 ms)
      148939 ms: googletest-src/googletest/include/gtest/gtest.h (included 190 times, avg 783 ms)
      146104 ms: MathLib/Point3d.h (included 548 times, avg 266 ms)
      143836 ms: MeshLib/Elements/Element.h (included 351 times, avg 409 ms)
      135652 ms: /usr/include/boost/property_tree/ptree.hpp (included 225 times, avg 602 ms)
      123695 ms: MeshLib/Mesh.h (included 415 times, avg 298 ms)
      
      72868 ms: BaseLib/Error.h (included 108 times, avg 674 ms)
      53854 ms: MeshLib/Mesh.h (included 207 times, avg 260 ms)
      51212 ms: MeshLib/Elements/Element.h (included 161 times, avg 318 ms)
      45812 ms: MaterialLib/MPL/Property.h (included 191 times, avg 239 ms)
      45603 ms: MathLib/Point3d.h (included 300 times, avg 152 ms)
      45143 ms: BaseLib/Logging.h (included 118 times, avg 382 ms)
      42384 ms: ProcessLib/Process.h (included 42 times, avg 1009 ms)
      30976 ms: MathLib/LinAlg/GlobalMatrixVectorTypes.h (included 120 times, avg 258 ms)
      29221 ms: iphreeqc-src/src/phreeqcpp/Phreeqc.h (included 62 times, avg 471 ms)
      27882 ms: NumLib/DOF/LocalToGlobalIndexMap.h (included 80 times, avg 348 ms)
      
      Many of the same headers, but the total parsing times went 10-fold down.
      a1753e6b
  21. Sep 28, 2022
  22. Sep 23, 2022
  23. Sep 07, 2022
  24. Aug 17, 2022
Loading