summaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorMario Mulansky <mario.mulansky@gmx.net>2015-05-08 11:57:00 +0200
committerMario Mulansky <mario.mulansky@gmx.net>2015-05-08 11:57:00 +0200
commit76a4bbcc733bdd24bb61072a341c43a14b7f83d1 (patch)
treea7612697e0b299f087ea829b120ddffa44347c35 /examples
parenta0262fc04e4b084f4dd270a75938d4ad029783d4 (diff)
performance improvement for multivar spike sync
dont compute the average profile in the function spike_sync_multi, but rather compute the overall average distance directly
Diffstat (limited to 'examples')
-rw-r--r--examples/performance.py29
1 files changed, 23 insertions, 6 deletions
diff --git a/examples/performance.py b/examples/performance.py
index 469b5ab..94dae25 100644
--- a/examples/performance.py
+++ b/examples/performance.py
@@ -6,6 +6,7 @@ from __future__ import print_function
import pyspike as spk
from datetime import datetime
import cProfile
+import pstats
M = 100 # number of spike trains
r = 1.0 # rate of Poisson spike times
@@ -22,21 +23,37 @@ t_end = datetime.now()
runtime = (t_end-t_start).total_seconds()
print("Spike generation runtime: %.3fs" % runtime)
+print()
print("================ ISI COMPUTATIONS ================")
print(" MULTIVARIATE DISTANCE")
-cProfile.run('spk.isi_distance_multi(spike_trains)')
+cProfile.run('spk.isi_distance_multi(spike_trains)', 'performance.stat')
+p = pstats.Stats('performance.stat')
+p.strip_dirs().sort_stats('tottime').print_stats(5)
+
print(" MULTIVARIATE PROFILE")
-cProfile.run('spk.isi_profile_multi(spike_trains)')
+cProfile.run('spk.isi_profile_multi(spike_trains)', 'performance.stat')
+p = pstats.Stats('performance.stat')
+p.strip_dirs().sort_stats('tottime').print_stats(5)
print("================ SPIKE COMPUTATIONS ================")
print(" MULTIVARIATE DISTANCE")
-cProfile.run('spk.spike_distance_multi(spike_trains)')
+cProfile.run('spk.spike_distance_multi(spike_trains)', 'performance.stat')
+p = pstats.Stats('performance.stat')
+p.strip_dirs().sort_stats('tottime').print_stats(5)
+
print(" MULTIVARIATE PROFILE")
-cProfile.run('spk.spike_profile_multi(spike_trains)')
+cProfile.run('spk.spike_profile_multi(spike_trains)', 'performance.stat')
+p = pstats.Stats('performance.stat')
+p.strip_dirs().sort_stats('tottime').print_stats(5)
print("================ SPIKE-SYNC COMPUTATIONS ================")
print(" MULTIVARIATE DISTANCE")
-cProfile.run('spk.spike_sync_multi(spike_trains)')
+cProfile.run('spk.spike_sync_multi(spike_trains)', 'performance.stat')
+p = pstats.Stats('performance.stat')
+p.strip_dirs().sort_stats('tottime').print_stats(5)
+
print(" MULTIVARIATE PROFILE")
-cProfile.run('spk.spike_sync_profile_multi(spike_trains)')
+cProfile.run('spk.spike_sync_profile_multi(spike_trains)', 'performance.stat')
+p = pstats.Stats('performance.stat')
+p.strip_dirs().sort_stats('tottime').print_stats(5)