[root] / trunk / core / meta / src / TVirtualStreamerInfo.cxx Repository:
ViewVC logotype

Log of /trunk/core/meta/src/TVirtualStreamerInfo.cxx

Parent Directory Parent Directory


Links to HEAD: (view) (download) (as text) (annotate)
Sticky Revision:

Revision 43337 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Mar 12 19:06:23 2012 UTC (2 years, 10 months ago) by pcanal
File length: 8745 byte(s)
Diff to previous 43288
Addendum to revision 43288: add one more test that the Factory has been properly created and always return the value of the static variable.  This should quiet down coverity

Revision 43288 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Mar 8 13:43:50 2012 UTC (2 years, 10 months ago) by pcanal
File length: 8579 byte(s)
Diff to previous 41895
Not be able to create the TVirtualStreamerInfo factory is also fatal (this fixes many coverity on not checking the return value of TVirtualStreamerInfo::Factory

Revision 41895 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Nov 10 23:50:32 2011 UTC (3 years, 2 months ago) by axel
File length: 8417 byte(s)
Diff to previous 40444
Fix various MSVC2010 warnings.

Revision 40444 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Aug 3 16:39:27 2011 UTC (3 years, 5 months ago) by pcanal
File length: 8421 byte(s)
Diff to previous 33175
From Matthew Strait, clarify the error message in case where the StreamerInfo plugin is not initialized properly.   See Savannah #85111

Revision 33175 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Sat Apr 24 21:43:40 2010 UTC (4 years, 9 months ago) by pcanal
File length: 7824 byte(s)
Diff to previous 32159
Change the default for streaming the content of STL containers from object-wise
to member-wise.

We evaluated the impact of moving to MemberWise streaming using 5 different CMS data files

cms1.root an older split using level 99 Reco file 
cms2.root a more recent non split raw data file 
cms3.root a more recent non split Reco file 
cms4.root is an example of the lepton plus jet analysis format known as a user PAT-tuple (split)
cms5.root is an example AOD (analysis object dataset) format file.  It is not split because the objects here are a strict subset of the RECO objects. 

We rewrote all the files using the v5.26/00 new basket clustering algorithm using both memberwise streaming and objectwise streaming. 

In the table below the read time is the CPU time to completion including loading the libraries. 
When reading the file where always in the os cache (since we are focusing evaluating cpu time). 

The number of event actually read varies from file set to file set but was calibrated to result 
in about 10s of cpu time.  The files are read using a library generated with TFile::MakeProject. 

The object-wise files are between 2% and 10% larger compared to their member-wise coutnerpart.

The CPU time for reading object-wise files is 12% higher for split files 
and 30% higher for non-split files. 

So the improvement is significant enough to warrant switch the default from objectwise to memberwise.

Split files: 

Filename Memberwise Size     Cpu Time To read 
cms1.root    N     17.5 Gb    10.55s ± 0.15 (2200 entries) 
cms1.root    Y     16.8 Gb     9.12s ± 0.08 

cms4.root    N     1.47 Gb    10.18s ± 0.19 (2500 entries) 
cms4.root    Y     1.43 Gb     9.24s ± 0.06 

Non Split files: 

Filename Memberwise Size 
cms2.root    N     1.65 Gb    10.95s ± 0.05 (1000 entries) 
cms2.root    Y     1.53 Gb     8.20s ± 0.05 

cms3.root    N     0.780 Gb   10.59s ± 0.05 (700 entries) 
cms3.root    Y     0.717 Gb    8.29s ± 0.08 

cms5.root    N     1.55 Gb    10.20s ± 0.17 (700 entries) 
cms5.root    Y     1.40 Gb     8.09s ± 0.08

Revision 32159 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jan 29 17:17:09 2010 UTC (4 years, 11 months ago) by pcanal
File length: 7825 byte(s)
Diff to previous 22961
Improve thread safety and performance of TStreamerInfo creation and use.
Remove a spurrious error message when in MemberWise streaming mode (see r30751 and r30527)
Insure that the StreamerInfo using in MemberWise streaming in not optimized (previously this was checked/done only for the 'current' StreamerInfo).
Reduce (dramatically) the number of times a StreamerInfo is recompiled.
Add TVirtualStreamerInfo::IsCompiled (to replace use of GetOffset()!=0)

Implementation details:
Remove internal use of TVirtualStreamerInfo::Optimize(kFALSE), replace
by explicit setting of kCannotOptimize.
Remove virtually (and make inline) 3 time critical functions.

Revision 22961 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Thu Apr 3 13:32:57 2008 UTC (6 years, 9 months ago) by rdm
File length: 7711 byte(s)
Diff to previous 22667
move the directories:
  base clib cont meta metautils newdelete pcre rint thread unix utils
  winnt zip
under the new core meta directory.

Revision 22667 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Mar 14 19:14:43 2008 UTC (6 years, 10 months ago) by pcanal
Original Path: trunk/meta/src/TVirtualStreamerInfo.cxx
File length: 7711 byte(s)
Diff to previous 21431
TVirtualStreamerInfo::Factory now returns the factory object itself
instead of an active instance.  To create an instead call NewInfo 
on the Factory object.
This solved a memory in a few usage of TVirtualStreamerInfo::Factory

Revision 21431 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Dec 17 20:03:17 2007 UTC (7 years, 1 month ago) by pcanal
Original Path: trunk/meta/src/TVirtualStreamerInfo.cxx
File length: 7734 byte(s)
Diff to previous 20882
Add class docs

Revision 20882 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Mon Nov 19 11:31:26 2007 UTC (7 years, 2 months ago) by rdm
Original Path: trunk/meta/src/TVirtualStreamerInfo.cxx
File length: 7208 byte(s)
Diff to previous 19826
Set property svn:eol-style LF on all source and Makefiles. This should avoid
problems with Win32 line endings ending up in the repository. All MS tools
support LF eols fine.

Revision 19826 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:56:11 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/meta/src/TVirtualStreamerInfo.cxx
File length: 7208 byte(s)
Diff to previous 19825
imported svn:keywords Id property

Revision 19825 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Wed Sep 19 19:49:10 2007 UTC (7 years, 4 months ago) by rdm
Original Path: trunk/meta/src/TVirtualStreamerInfo.cxx
File length: 7270 byte(s)
Diff to previous 19716
remove :$ from tag line

Revision 19716 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Tue Aug 28 17:58:58 2007 UTC (7 years, 4 months ago) by pcanal
Original Path: trunk/meta/src/TVirtualStreamerInfo.cxx
File length: 7280 byte(s)
Diff to previous 19040
From Axel:
Issue a warning message if we can not find the TStreamerInfo plugin.
Hence avoiding the case where a foreign class didn't get its TClass
object without any error message! [The reason was a missing etc dir]

Revision 19040 - (view) (download) (as text) (annotate) - [select for diffs]
Modified Fri Jun 15 12:35:04 2007 UTC (7 years, 7 months ago) by brun
Original Path: trunk/meta/src/TVirtualStreamerInfo.cxx
File length: 7070 byte(s)
Diff to previous 17703
Add a new static function TVirtualStreamerInfo::SetFactory(TVirtualStreamerInfo *factory)
This function can be used to initialize a dedicated factory instead of using the
default version created by the plug-in manager.

Revision 17703 - (view) (download) (as text) (annotate) - [select for diffs]
Added Mon Feb 5 18:06:25 2007 UTC (7 years, 11 months ago) by brun
Original Path: trunk/meta/src/TVirtualStreamerInfo.cxx
File length: 6837 byte(s)
-New abstract interface implemented to separate TClass from the I/O sub-system.
The interface declares a large fraction of the functions in TStreamerInfo.

This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

Sort log by:

Subversion Admin
ViewVC Help
Powered by ViewVC 1.0.9