1 / 13

Rene Brun 23 February 2007

Rene Brun 23 February 2007. Restructuring sources and libs. Motivation. Introduce a more modular structure with new subdirs “ io ”, “ math ”, ” net ” Reduce the size of libCore Reduce compilation time when changing the most important header files. Better documentation in sources

sophie
Download Presentation

Rene Brun 23 February 2007

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Rene Brun 23 February 2007 Restructuring sources and libs

  2. Motivation • Introduce a more modular structure with new subdirs “io”, “math”, ”net” • Reduce the size of libCore • Reduce compilation time when changing the most important header files. • Better documentation in sources • In view of the removal of the G__ files • Towards BOOT

  3. Size of libCore libCore.so in MBytes 5.10: Process Map (pmap) root.exe = 66 Mbytes 5.10: Process Map (pmap) root.exe -b = 58 MBytes 5.14: Process Map (pmap) root.exe = 44 MBytes 5.14: Process Map (pmap) root.exe -b = 34 Mbytes Reducing pmap reduces startup time Objective is to reach 15 Mbytes in two steps Obtained by reducing size of CINT pointers tables

  4. Effect on compilation time Time for “make –j 2” on MacBookPro when all packages are enabled (twice as long as the default ./configure)

  5. Cont/meta/base reorganization MATHCORE BASE CONT META IO TArchiveFile TBufferFile TCollectionProxy TContainerConverters TDirectoryFile TEmulatedCollectionProxy TEmulatedMapProxy TFile TFileCacheRead TFileCacheWrite TGenCollectionProxy TGenCollectionStreamer TKey TMapFile TStreamerElement TStreamerInfo MATH TMath TRandom TRandom1,2,3 TComplex MathCore??

  6. Libraries reorganization (5.14) root.exe pmap=44 MB libCore graf graf3d gpad hist tree Postscript Matrix physics base clib cont meta net zip 10 MB 2 MB cint

  7. Libraries reorganization (proposal phase1) root.exe pmap=25 MB base-- clib cont-- meta-- 5 MB 1 MB math cint 2 MB io 3 MB reflex 1 MB net 1 MB

  8. Libraries reorganization (proposal phase2 == BOOT phase1) root.exe pmap=15 MB G__*.cxx cint more dicts.root base-- clib cont-- meta-- 3 MB reflex more < 1 MB math cint core 1 MB < 2 MB io reflex core 0.5 MB 1 MB net

  9. Important changes in CINT • The data structures G__ifunc_table has been reorganized to be independent of the parameter G__MAXFUNCPARA = 40. Only real function arguments are stored in memory. • The data structures G__inheritance has been reorganized to be independent of the parameter G__MAXBASE = 50. Only real function arguments are stored in memory.

  10. Important changes in AutoLoading • Many changes had to be done (thanks Axel, Bertrand, Fons) to minimize libraries dependencies and make possible the autoload via the plugin manager. • Still a lot of work in front to cleanup the GUI dependencies (now the biggest lib). • Would like to remove the libMatrix dependency in libHist and other places too. • Axel has developped a nice script that will automatize Makefile.depend and make it full proof.

  11. Where are we today with 5.15/03 ?

  12. Where are we today with 5.15/03 ? virtual size (MB) real size (MB)

  13. Libraries reorganization (proposal phase1 today) root.exe pmap=17 MB base-- clib cont-- meta-- math zip 8 MB 1 MB math io 3 MB 2 MB cint net 1 MB

More Related