auto import from //depot/cupcake/@135843
This commit is contained in:
@@ -1,87 +0,0 @@
|
||||
#!/usr/bin/env python
|
||||
|
||||
"""
|
||||
chewperf.py: Chew an http perf log
|
||||
bucketize
|
||||
|
||||
"""
|
||||
|
||||
import sys, time
|
||||
|
||||
def resets():
|
||||
f = open(sys.argv[1]).read()
|
||||
rawLines = f.split('\n')
|
||||
|
||||
times = []
|
||||
for x in range(len(rawLines)):
|
||||
line = rawLines[x].split()
|
||||
try:
|
||||
if line[-1] == "SIGNAL_STRENGTH":
|
||||
ts = int(rawLines[x - 1].split()[-1])
|
||||
times.append(ts)
|
||||
except:
|
||||
pass
|
||||
|
||||
return times
|
||||
|
||||
def augment():
|
||||
f = open(sys.argv[1]).read()
|
||||
rawLines = f.split('\r\n')
|
||||
|
||||
out = []
|
||||
t0 = None
|
||||
last = 0
|
||||
for line in rawLines:
|
||||
if "Pulled" in line:
|
||||
chewed = [int(line.split()[5]), int(line.split()[7])]
|
||||
if not t0: t0 = chewed[1]
|
||||
tm = chewed[1] - t0
|
||||
out.append("%s %d" % (line, (tm - last)))
|
||||
last = tm
|
||||
else:
|
||||
out.append(line)
|
||||
print "\n".join(out)
|
||||
|
||||
def chew():
|
||||
f = open(sys.argv[1]).read()
|
||||
rawLines = f.split('\n')
|
||||
lines = [x for x in rawLines if "Pulled" in x]
|
||||
|
||||
sidx = lines[0].split().index("Pulled")
|
||||
print "sidx", sidx
|
||||
chewed = [[int(x.split()[sidx + 2]), int(x.split()[sidx + 4])] for x in lines]
|
||||
|
||||
t0 = chewed[0][1]
|
||||
tLast = chewed[-1][1]
|
||||
chewed = [[x[1] - t0, x[0]] for x in chewed]
|
||||
|
||||
totalTime = tLast - t0
|
||||
bytes = sum(x[1] for x in chewed)
|
||||
print "total time", totalTime, "bytes", bytes, "rate", bytes * 1000 / totalTime
|
||||
|
||||
buckets = {}
|
||||
for x in chewed:
|
||||
bucket = x[0] / 1000
|
||||
bytes = x[1]
|
||||
if bucket in buckets:
|
||||
buckets[bucket] += bytes
|
||||
else:
|
||||
buckets[bucket] = bytes
|
||||
|
||||
top = max(buckets.keys())
|
||||
for x in range(top):
|
||||
if x not in buckets.keys():
|
||||
buckets[x] = 0
|
||||
|
||||
# smooth
|
||||
window = [0 for x in range(5)]
|
||||
|
||||
for x in range(len(buckets.items())):
|
||||
window[x % len(window)] = buckets.items()[x][1]
|
||||
print "%s\t%s" % (buckets.items()[x][0], sum(window) / len(window))
|
||||
|
||||
def main():
|
||||
chew()
|
||||
|
||||
if __name__ == '__main__':
|
||||
main()
|
||||
Reference in New Issue
Block a user