[CalendarServer-changes] [6161] CalendarServer/trunk/contrib/performance
source_changes at macosforge.org
source_changes at macosforge.org
Fri Aug 20 14:04:35 PDT 2010
Revision: 6161
http://trac.macosforge.org/projects/calendarserver/changeset/6161
Author: exarkun at twistedmatrix.com
Date: 2010-08-20 14:04:34 -0700 (Fri, 20 Aug 2010)
Log Message:
-----------
factor stats loading helper out so compare and graph can both use it
Modified Paths:
--------------
CalendarServer/trunk/contrib/performance/benchlib.py
CalendarServer/trunk/contrib/performance/compare.py
CalendarServer/trunk/contrib/performance/graph.py
Modified: CalendarServer/trunk/contrib/performance/benchlib.py
===================================================================
--- CalendarServer/trunk/contrib/performance/benchlib.py 2010-08-20 21:03:43 UTC (rev 6160)
+++ CalendarServer/trunk/contrib/performance/benchlib.py 2010-08-20 21:04:34 UTC (rev 6161)
@@ -1,4 +1,4 @@
-
+import pickle
from time import time
from twisted.internet.defer import inlineCallbacks, returnValue
@@ -73,3 +73,22 @@
stats = yield dtrace.stop()
stats[Duration('urlopen time')] = data
returnValue(stats)
+
+
+def select(statistics, benchmark, parameter, statistic):
+ for stat, samples in statistics[benchmark][int(parameter)].iteritems():
+ if stat.name == statistic:
+ return (stat, samples)
+ raise ValueError("Unknown statistic %r" % (statistic,))
+
+
+def load_stats(statfiles):
+ data = []
+ for fname in statfiles:
+ fname, bench, param, stat = fname.split(',')
+ stats, samples = select(
+ pickle.load(file(fname)), bench, param, stat)
+ data.append((stats, samples))
+ if data:
+ assert len(samples) == len(data[0][1])
+ return data
Modified: CalendarServer/trunk/contrib/performance/compare.py
===================================================================
--- CalendarServer/trunk/contrib/performance/compare.py 2010-08-20 21:03:43 UTC (rev 6160)
+++ CalendarServer/trunk/contrib/performance/compare.py 2010-08-20 21:04:34 UTC (rev 6161)
@@ -2,6 +2,8 @@
import stats
+from benchlib import load_stats
+
try:
from scipy.stats import ttest_1samp
except ImportError:
@@ -20,25 +22,15 @@
[p, None])
-def select(statistics, benchmark, parameter, statistic):
- for stat, samples in statistics[benchmark][int(parameter)].iteritems():
- if stat.name == statistic:
- return (stat, samples)
- raise ValueError("Unknown statistic %r" % (statistic,))
-
-
def main():
- first = pickle.load(file(sys.argv[1]))
- second = pickle.load(file(sys.argv[2]))
+ [(stat, first), (stat, second)] = load_stats(sys.argv[1:])
- stat, first = select(first, *sys.argv[3:])
- stat, second = select(second, *sys.argv[3:])
-
fmean = stats.mean(first)
+ smean = stats.mean(second)
p = 1 - ttest_1samp(second, fmean)[1][0]
if p >= 0.95:
# rejected the null hypothesis
- print sys.argv[1], 'mean of', fmean, 'differs from', sys.argv[2], 'mean of', stats.mean(second), '(%2.0f%%)' % (p * 100,)
+ print sys.argv[1], 'mean of', fmean, 'differs from', sys.argv[2], 'mean of', smean, '(%2.0f%%)' % (p * 100,)
else:
# failed to reject the null hypothesis
- print 'cannot prove means differ (%2.0f%%)' % (p * 100,)
+ print 'cannot prove means (%s, %s) differ (%2.0f%%)' % (fmean, smean, p * 100,)
Modified: CalendarServer/trunk/contrib/performance/graph.py
===================================================================
--- CalendarServer/trunk/contrib/performance/graph.py 2010-08-20 21:03:43 UTC (rev 6160)
+++ CalendarServer/trunk/contrib/performance/graph.py 2010-08-20 21:04:34 UTC (rev 6161)
@@ -4,20 +4,13 @@
from matplotlib import pyplot
import numpy
-from compare import select
+from benchlib import load_stats
def main():
fig = pyplot.figure()
ax = fig.add_subplot(111)
- data = []
- for fname in sys.argv[1:]:
- fname, bench, param, stat = fname.split(',')
- stats, samples = select(
- pickle.load(file(fname)), bench, param, stat)
- data.append(samples)
- if data:
- assert len(samples) == len(data[0])
+ data = [samples for (stat, samples) in load_stats(sys.argv[1:])]
bars = []
color = iter('rgbcmy').next
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/calendarserver-changes/attachments/20100820/f24e8bdc/attachment-0001.html>
More information about the calendarserver-changes
mailing list