Skip to content
Snippets Groups Projects
  1. Jan 25, 2024
  2. Jan 24, 2024
  3. Jan 02, 2024
  4. Nov 27, 2023
  5. Nov 24, 2023
  6. Jul 19, 2023
  7. Jun 07, 2023
  8. May 30, 2023
  9. Apr 26, 2023
  10. Jan 03, 2023
  11. Nov 02, 2022
  12. 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
  13. Sep 28, 2022
  14. Sep 23, 2022
  15. Sep 07, 2022
  16. Aug 17, 2022
  17. Apr 13, 2022
  18. Jan 09, 2022
  19. Oct 10, 2021
  20. Oct 09, 2021
  21. Jun 09, 2021
    • Dmitri Naumov's avatar
      Don't additionally link spdlog in every library. · 39728477
      Dmitri Naumov authored and Tom Fischer's avatar Tom Fischer committed
      spdlog is linked "public" in BaseLib.
      
      Reason is the violation of odr for some globals defined
      in the spdlog library.
      
      ==1540297==ERROR: AddressSanitizer: odr-violation (0x7f5ea9c9d020):
        [1] size=40 'vtable for spdlog::spdlog_ex' _deps/spdlog-src/src/spdlog.cpp
        [2] size=40 'vtable for spdlog::spdlog_ex' _deps/spdlog-src/src/spdlog.cpp
      These globals were registered at these points:
        [1]:
          #0 0x5614686e0dfa in __asan_register_globals.part.0 (/home/naumov/w/ogs/d/bin/ogs+0x1bfdfa)
          #1 0x7f5e6cdbe7eb in asan.module_ctor (/home/naumov/w/ogs/d/bin/../lib/libMeshLib.so+0x17d37eb)
      
        [2]:
          #0 0x558bd62b6dfa in __asan_register_globals.part.0 (/home/naumov/w/ogs/d/bin/ogs+0x1bfdfa)
          #1 0x7f831c7e54ab in asan.module_ctor (/home/naumov/w/ogs/d/bin/../lib/libBaseLib.so+0x89a4ab)
      39728477
    • Dmitri Naumov's avatar
      [ParL] Remove unnecessary data member and typedef. · 1231de9f
      Dmitri Naumov authored
      Data member is used only in constructor, no need to store it.
      1231de9f
  22. Apr 06, 2021
  23. Apr 04, 2021
  24. Mar 16, 2021
  25. Mar 10, 2021
  26. Mar 09, 2021
  27. Feb 16, 2021
  28. Feb 15, 2021
  29. Jan 11, 2021
  30. Jan 04, 2021
Loading