Skip to content
Snippets Groups Projects
  1. Aug 22, 2018
    • Vassil Vassilev's avatar
      [cxxmodules] Reduce the pcm duplicates. · 8c68429f
      Vassil Vassilev authored
      X3DBuffer.h is used indirectly by Graf3d and EG dictionaries. It does not
      make a lot of sense to exclude it. Digging git history shows the import from
      cvs so the real reason will probably remain unknown.
      8c68429f
  2. Aug 10, 2018
  3. Apr 03, 2018
    • Yuka Takahashi's avatar
      ROOT start up time and memory optimization · 903503ca
      Yuka Takahashi authored
        There are some codes compiled at the start up time. For example,
          - #include \"cling/Interpreter/RuntimeUniverse.h\"
          - #include \"cling/Interpreter/DynamicLookupRuntimeUniverse.h\"
          - namespace cling { class Interpreter; namespace runtime { Interpreter* gCling }}}
          - PrintValue
        These are passed to Cling as string and initialized at the start up time.  So I think it makes sense to reduce top-level global variables, #includes and virtual functions.
      
        1. Global variables
          If we break at emitModule, we can get a list of global variables and functions which are actually deserialized. These include functions, variables, STL classes and all the functions derives from them.
       I tried to change them to for example constexpr, so that it's processed at compile time.
        2. Eagerly Deserialized decls
          Thanks to @Axel 's hint and tip, we could minimize eagerly deserialized decls deserialized in ASTReader::PassInterestingDeclsToConsumer. We already removed most of eagerly deserialized decls (Some are remaining to be removed, some are hard to remove and some don't cost a lot).
      
        So far, we got 9.2% of cpu time improvement and 8.8% of memory improvement at start up time in release build.
      
        - root.exe -q -l
          - master
            cpu time = 0.09186914285714286 sec (average of 7 times)
            res  memory = 142.008 Mbytes
      
          - HEAD
            cpu time = 0.08337842857142856 sec
            res  memory = 129.508 Mbytes
      
        - hsimple.C
        Improved by 13% of cpu time and 8.5% of memory
          - master
            cpu time = 0.0954708 sec (average)
            res  memory = 142.891 Mbytes
      
          - HEAD
            cpu time = 0.0833258 sec
            res  memory = 130.73 Mbytes
      
        With modules
          - Improvement by 17.7% in cputime and 2% in memory on root.exe -q -l
          (For memory, small improvement is because most of the memory is taken by LoadModules)
          - With this patch, modules is 11.2% slower in cpu time and 6% better in residential memory.
      903503ca
  4. Mar 27, 2018
  5. Feb 21, 2018
  6. Dec 05, 2017
  7. Sep 08, 2017
  8. Sep 05, 2017
  9. Jul 28, 2017
    • Raphael Isemann's avatar
      Use ROOT_STANDARD_LIBRARY_PACKAGE where possible [NFC] · ac0de75b
      Raphael Isemann authored
      This refactors the CMake build files to no longer manually call
      the CMake functions for generating and linking the dicionairies.
      One reason is to reduce boilerplate, the other is that it is now
      no longer possible to have naming mismatches between the dictionary
      generation arguments and linking function arguments which was causing
      the race conditions we had in our build system.
      
      This also now follows more strictly the separation between dependencies
      like Math, Tree and Core and pure linking flags to external libraries.
      ac0de75b
  10. Jul 26, 2017
  11. Jul 12, 2017
    • Raphael Isemann's avatar
      Add missing dependencies to ROOT_GENERATE_DICTIONARY · 8a646b53
      Raphael Isemann authored
      ROOT_GENERATE_DICTIONARY allows to specify dependencies, but we currently
      don't actually specify those. As we need this for getting the module
      dependencies right (as we can't build missing modules on demand), we should
      add those dependencies here. Then those dependencies propagate to the
      rootcling invocation which will in the future also generate the C++ module
      for the selected dictionary.
      8a646b53
  12. Jun 06, 2017
    • Vassil Vassilev's avatar
      Do not confuse clang-format. · 68a8a335
      Vassil Vassilev authored
      ClassImp is a macro defined in Rtypes.h. It can be written without trailing
      semicolon. However, clang-format is based on lexing and it doesn't know at
      all about preprocessors and how to expand macros. When visiting ClassImp(X)
      it thinks this is not a completed entity (as it doesn't expand macros) and
      considers the next line as continuation of the previous.
      
      Inserting a semicolon fixes the issue and makes formatting with clang-format
      in the ROOT codebase less tricky.
      68a8a335
  13. Apr 05, 2017
  14. Apr 04, 2017
  15. Mar 21, 2017
  16. Feb 14, 2017
    • Raphael Isemann's avatar
      Remove all redundant header guards around include directives · 04fe6d5d
      Raphael Isemann authored
      
      Many headers contains redundant header guards around #include directives:
      
          #ifndef ROOT_TTree
          #include "TTree.h"
          #endif
      
      This patch removes the #ifndef's around these includes as they
      don't serve any pratical purpose anymore and are no longer part
      of the current ROOT coding convention.
      
      This patch also fixes the 153 typos that are contained in the
      symbols of the #ifndef directives.
      
      Signed-off-by: default avatarVassil Vassilev <vvasilev@cern.ch>
      04fe6d5d
  17. Jan 30, 2017
  18. Jan 26, 2017
  19. Dec 17, 2016
  20. Dec 14, 2016
  21. Oct 27, 2016
  22. Sep 27, 2016
  23. Sep 06, 2016
  24. Jul 07, 2016
  25. May 22, 2016
  26. May 18, 2016
  27. Apr 09, 2016
  28. Jan 18, 2016
  29. Jan 08, 2016
  30. Nov 13, 2015
  31. Nov 06, 2015
Loading