diff options
author | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-06-25 18:04:08 +0000 |
---|---|---|
committer | ben <ben@2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109> | 2002-06-25 18:04:08 +0000 |
commit | aa36fa26a216b2faf89b0bbd4d90fb16fd082f38 (patch) | |
tree | 4368b953be31798122ce1583cdcf5712c7cb073b /rdiff-backup/rdiff_backup/statistics.py | |
parent | a8e880f1ad9cf62dc8b02fa60543b8925c10a846 (diff) | |
download | rdiff-backup-aa36fa26a216b2faf89b0bbd4d90fb16fd082f38.tar.gz |
More optimization: rewrote selection iteration to not recur, and added
"fast processing" to IterTreeReducer, so objects don't need to be
created in the typical case.
git-svn-id: http://svn.savannah.nongnu.org/svn/rdiff-backup/trunk@145 2b77aa54-bcbc-44c9-a7ec-4f6cf2b41109
Diffstat (limited to 'rdiff-backup/rdiff_backup/statistics.py')
-rw-r--r-- | rdiff-backup/rdiff_backup/statistics.py | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/rdiff-backup/rdiff_backup/statistics.py b/rdiff-backup/rdiff_backup/statistics.py index d471667..e2546ba 100644 --- a/rdiff-backup/rdiff_backup/statistics.py +++ b/rdiff-backup/rdiff_backup/statistics.py @@ -217,18 +217,17 @@ class StatsObj: return s -class StatsITR(IterTreeReducer, StatsObj): +class StatsITRB(ITRBranch, StatsObj): """Keep track of per directory statistics This is subclassed by the mirroring and incrementing ITRs. """ - def __init__(self, *args): + def __init__(self): """StatsITR initializer - zero out statistics""" attr_dict = self.__dict__ for attr in StatsObj.stat_file_attrs: attr_dict[attr] = 0 self.ElapsedTime = self.Filename = None - IterTreeReducer.__init__(self, *args) def start_stats(self, mirror_dsrp): """Record status of mirror dsrp @@ -273,16 +272,24 @@ class StatsITR(IterTreeReducer, StatsObj): self.DeletedFileSize += self.mirror_base_size self.stats_incr_incfiles(inc_rp) + def fast_process(self, mirror_rorp): + """Use when there is no change from source to mirror""" + source_size = self.stats_getsize(mirror_rorp) + self.SourceFiles += 1 + self.MirrorFiles += 1 + self.SourceFileSize += source_size + self.MirrorFileSize += source_size + def stats_incr_incfiles(self, inc_rp): """Increment IncrementFile statistics""" if inc_rp: self.IncrementFiles += 1 self.IncrementFileSize += self.stats_getsize(inc_rp) - def add_file_stats(self, subinstance): - """Add all file statistics from subinstance to current totals""" + def add_file_stats(self, branch): + """Add all file statistics from branch to current totals""" for attr in self.stat_file_attrs: - self.__dict__[attr] += subinstance.__dict__[attr] + self.__dict__[attr] += branch.__dict__[attr] from log import * |