Skip to content

Instantly share code, notes, and snippets.

@olidb2
Forked from remh/benchmar.py
Last active December 22, 2015 03:59
Show Gist options
  • Select an option

  • Save olidb2/6414154 to your computer and use it in GitHub Desktop.

Select an option

Save olidb2/6414154 to your computer and use it in GitHub Desktop.
import numpy as np
import timeit
metric_series_count = 3
test_list = [2.10723804e+03,1.26780400e+04, 1.47227500e+04, 1.62780752e+04, 1.71822812e+04 , 1.64260996e+04 , 2.72706328e+04 , 1.57876689e+04, 1.47809004e+04 , 1.43575615e+04 , 1.55860273e+04 , 1.55252500e+04, 1.70042930e+04 , 1.54317500e+04 , 2.22643242e+04 , 1.54446250e+04, 1.45285752e+04 , 1.52491279e+04 , 1.42818574e+04 , 1.85883770e+04, 1.90738242e+04 , 2.76426113e+04 , 1.51628740e+04 , 1.66276758e+04, 2.91944414e+04 , 1.79294004e+04 , 1.85493008e+04 , 5.05975156e+04, 5.97016328e+04 , 1.36698350e+04 , 1.75005508e+04 , 1.48950996e+04, 2.98080750e+05 , 1.28499795e+04 , 2.33493750e+04 , 1.87940508e+04, 3.70170000e+04 , 1.99230508e+04 , 1.57387549e+04 , 1.64653398e+04, 1.52441250e+04 , 1.71265371e+04 , 1.45260479e+04 , 2.36466992e+04, 1.49441504e+04 , 1.56413750e+04 , 1.53727500e+04 , 1.65995508e+04, 2.31307363e+04 , 3.10398047e+04 , 2.02409023e+04 , 2.81140957e+04, 2.01719004e+04 , 1.79341504e+04 , 1.94490742e+04 , 1.84646230e+04, 2.68916992e+04 , 1.58801221e+04 , 1.92853906e+05 , 1.24943656e+05, 5.59167500e+04 , 4.97305508e+04 , 4.63533086e+04 , 4.88107266e+04, 4.58746836e+04 , 4.67675117e+04 , 5.54424492e+04 , 5.18530977e+04, 4.12353281e+04 , 4.48636016e+04 , 4.36200273e+04 , 4.78300508e+04, 5.98861484e+04 , 5.65999492e+04 , 5.18126992e+04 , 5.12607188e+04, 5.10735273e+04 , 4.48206250e+04 , 2.13880047e+05 , 8.43175078e+04, 7.89681016e+04 , 8.58591797e+04 , 7.91386094e+04 , 6.74334219e+04, 8.73430000e+04 , 8.30917734e+04 , 6.77104375e+04 , 8.08490469e+04, 8.75585469e+04 , 7.33623516e+04 , 8.43328594e+04 , 9.49262422e+04, 8.92074688e+04 , 7.61907734e+04 , 7.35939062e+04 , 4.94489492e+04, 5.20644414e+04 , 1.40493766e+05 , 7.47076719e+04 , 5.91278008e+04, 7.13965625e+04 , 7.43846484e+04 , 6.03837266e+04 , 7.46186250e+04, 8.40347812e+04 , 6.32518242e+04 , 6.82605156e+04 , 6.76610781e+04, 5.40575352e+04 , 6.80397734e+04 , 6.89431016e+04 , 5.52928984e+04, 6.96947109e+04 , 7.27605781e+04 , 5.70301016e+04 , 6.97338359e+04, 1.91428566e+01 , 8.03999996e+00 , 5.57499981e+00 , 0.00000000e+00, 0.00000000e+00 , 0.00000000e+00 , 0.00000000e+00 , 2.28205132e+00, 0.00000000e+00 , 0.00000000e+00 , 0.00000000e+00 , 1.67500000e+01, 6.53658581e+00 , 0.00000000e+00 , 0.00000000e+00 , 0.00000000e+00, 0.00000000e+00 , 0.00000000e+00 , 2.11904740e+00 , 0.00000000e+00, 2.01250000e+01 , 9.80487919e+00 , 1.03076925e+01 , 1.97850006e+02, 1.54682938e+02 , 8.97500038e+00 , 6.75000000e+00 , 1.31707325e+01, 6.58536625e+00 , 1.12500000e+01 , 2.15499992e+01 , 6.75000000e+00, 2.95121937e+01 , 1.27959194e+01 , 1.35000000e+01 , 6.75000000e+00, 3.26341515e+01 , 3.42000008e+01 , 1.33170738e+01 , 0.00000000e+00, 0.00000000e+00 , 2.28205132e+00 , 1.30731697e+01 , 6.69999981e+00, 3.34999990e+00 , 0.00000000e+00 , 0.00000000e+00 , 0.00000000e+00, 2.11904740e+00 , 0.00000000e+00 , 0.00000000e+00 , 0.00000000e+00, 0.00000000e+00 , 2.01000004e+01 , 3.26829290e+00 , 0.00000000e+00, 0.00000000e+00 , 0.00000000e+00]
test_array = np.array(test_list, dtype=np.float32)
def using_magic():
return zip(*([iter(test_list)]*(len(test_list) / metric_series_count)))
def using_numpy():
return np.reshape(test_array, (metric_series_count, -1))
if __name__=='__main__':
print "Starting benchmark"
print "Magic took: {0}s".format(timeit.timeit("using_magic()", setup="from __main__ import using_magic"))
print "Numpy took: {0}s".format(timeit.timeit("using_numpy()", setup="from __main__ import using_numpy"))
Starting benchmark
Magic took: 7.12010908127s
Numpy took: 2.20317482948s
# 10x more data
import numpy as np
import timeit
metric_series_count = 3
test_list = 10 * [2.10723804e+03,1.26780400e+04, 1.47227500e+04, 1.62780752e+04, 1.71822812e+04 , 1.64260996e+04 , 2.72706328e+04 , 1.57876689e+04, 1.47809004e+04 , 1.43575615e+04 , 1.55860273e+04 , 1.55252500e+04, 1.70042930e+04 , 1.54317500e+04 , 2.22643242e+04 , 1.54446250e+04, 1.45285752e+04 , 1.52491279e+04 , 1.42818574e+04 , 1.85883770e+04, 1.90738242e+04 , 2.76426113e+04 , 1.51628740e+04 , 1.66276758e+04, 2.91944414e+04 , 1.79294004e+04 , 1.85493008e+04 , 5.05975156e+04, 5.97016328e+04 , 1.36698350e+04 , 1.75005508e+04 , 1.48950996e+04, 2.98080750e+05 , 1.28499795e+04 , 2.33493750e+04 , 1.87940508e+04, 3.70170000e+04 , 1.99230508e+04 , 1.57387549e+04 , 1.64653398e+04, 1.52441250e+04 , 1.71265371e+04 , 1.45260479e+04 , 2.36466992e+04, 1.49441504e+04 , 1.56413750e+04 , 1.53727500e+04 , 1.65995508e+04, 2.31307363e+04 , 3.10398047e+04 , 2.02409023e+04 , 2.81140957e+04, 2.01719004e+04 , 1.79341504e+04 , 1.94490742e+04 , 1.84646230e+04, 2.68916992e+04 , 1.58801221e+04 , 1.92853906e+05 , 1.24943656e+05, 5.59167500e+04 , 4.97305508e+04 , 4.63533086e+04 , 4.88107266e+04, 4.58746836e+04 , 4.67675117e+04 , 5.54424492e+04 , 5.18530977e+04, 4.12353281e+04 , 4.48636016e+04 , 4.36200273e+04 , 4.78300508e+04, 5.98861484e+04 , 5.65999492e+04 , 5.18126992e+04 , 5.12607188e+04, 5.10735273e+04 , 4.48206250e+04 , 2.13880047e+05 , 8.43175078e+04, 7.89681016e+04 , 8.58591797e+04 , 7.91386094e+04 , 6.74334219e+04, 8.73430000e+04 , 8.30917734e+04 , 6.77104375e+04 , 8.08490469e+04, 8.75585469e+04 , 7.33623516e+04 , 8.43328594e+04 , 9.49262422e+04, 8.92074688e+04 , 7.61907734e+04 , 7.35939062e+04 , 4.94489492e+04, 5.20644414e+04 , 1.40493766e+05 , 7.47076719e+04 , 5.91278008e+04, 7.13965625e+04 , 7.43846484e+04 , 6.03837266e+04 , 7.46186250e+04, 8.40347812e+04 , 6.32518242e+04 , 6.82605156e+04 , 6.76610781e+04, 5.40575352e+04 , 6.80397734e+04 , 6.89431016e+04 , 5.52928984e+04, 6.96947109e+04 , 7.27605781e+04 , 5.70301016e+04 , 6.97338359e+04, 1.91428566e+01 , 8.03999996e+00 , 5.57499981e+00 , 0.00000000e+00, 0.00000000e+00 , 0.00000000e+00 , 0.00000000e+00 , 2.28205132e+00, 0.00000000e+00 , 0.00000000e+00 , 0.00000000e+00 , 1.67500000e+01, 6.53658581e+00 , 0.00000000e+00 , 0.00000000e+00 , 0.00000000e+00, 0.00000000e+00 , 0.00000000e+00 , 2.11904740e+00 , 0.00000000e+00, 2.01250000e+01 , 9.80487919e+00 , 1.03076925e+01 , 1.97850006e+02, 1.54682938e+02 , 8.97500038e+00 , 6.75000000e+00 , 1.31707325e+01, 6.58536625e+00 , 1.12500000e+01 , 2.15499992e+01 , 6.75000000e+00, 2.95121937e+01 , 1.27959194e+01 , 1.35000000e+01 , 6.75000000e+00, 3.26341515e+01 , 3.42000008e+01 , 1.33170738e+01 , 0.00000000e+00, 0.00000000e+00 , 2.28205132e+00 , 1.30731697e+01 , 6.69999981e+00, 3.34999990e+00 , 0.00000000e+00 , 0.00000000e+00 , 0.00000000e+00, 2.11904740e+00 , 0.00000000e+00 , 0.00000000e+00 , 0.00000000e+00, 0.00000000e+00 , 2.01000004e+01 , 3.26829290e+00 , 0.00000000e+00, 0.00000000e+00 , 0.00000000e+00] * 100
test_array = np.array(test_list, dtype=np.float32)
def using_magic():
return zip(*([iter(test_list)]*(len(test_list) / metric_series_count)))
def using_numpy():
return np.reshape(test_array, (metric_series_count, -1))
if __name__=='__main__':
print "Starting benchmark"
print "Magic took: {0}s".format(timeit.timeit("using_magic()", setup="from __main__ import using_magic"))
print "Numpy took: {0}s".format(timeit.timeit("using_numpy()", setup="from __main__ import using_numpy"))
@olidb2
Copy link
Author

olidb2 commented Sep 2, 2013

Now with 10x more data. The Magic one didn't complete in the 10 mins or so I waited. Numpy one still takes the same amount of time.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment