From c09c786bcdd496f3bc21d0f179a725674ec10e95 Mon Sep 17 00:00:00 2001 From: Eddie Hebert Date: Wed, 22 Aug 2012 13:41:07 -0400 Subject: [PATCH] Removes unused profiler for multiprocessor architecture. --- zipline/profile/prof_yappi.py | 93 ----------------------------------- 1 file changed, 93 deletions(-) delete mode 100644 zipline/profile/prof_yappi.py diff --git a/zipline/profile/prof_yappi.py b/zipline/profile/prof_yappi.py deleted file mode 100644 index 58878fe8..00000000 --- a/zipline/profile/prof_yappi.py +++ /dev/null @@ -1,93 +0,0 @@ -from __future__ import division - -import logging -from zipline.core.devsimulator import AddressAllocator -import zipline.finance -from zipline.optimize.factory import create_predictable_zipline -import pandas as pd -import numpy as np -import os.path - -def convert_ystats(ystats): - """Convert yappi.get_stats().func_stats object to pandas - DataFrame. - - """ - func_names = [os.path.split(item[0])[-1] for item in ystats] - ncall = [float(item[1]) for item in ystats] - ttot = [float(item[2]) for item in ystats] - tsub = [float(item[3]) for item in ystats] - tavg = [float(item[4]) for item in ystats] - stats = pd.DataFrame({'ncall': ncall, 'ttot': ttot, 'tsub': tsub, 'tavg': tavg}, index=func_names) - - return stats - - -allocator = AddressAllocator(1000) - -config = { 'allocator' :allocator, - 'sid' :133, - 'trade_count' :5000, - 'amplitude' :30, - 'base_price' :50 - } - -LOGGER = logging.getLogger('ZiplineLogger') - -import yappi - -def gen_single_stats(func, *args, **kwargs): - """Profile func(*args, **kwargs) with yappi. - - Returns DataFrame of statistics. - """ - yappi.start() - func(*args, **kwargs) - yappi.stop() - return convert_ystats(yappi.get_stats().func_stats) - -def gen_avg_stats(func, runs=1, *args, **kwargs): - """Profile func(*args, **kwargs) with yappi. Runs multiple times at computes the average. - - Returns DataFrame of average statistics. - """ - - avg_stats = pd.concat([gen_single_stats() for i in range(runs)], keys=range(runs)) - grouped = avg_stats.groupby(level=1) - - return grouped.aggregate(np.mean) - -def run_updown(fname='before_stats.csv'): - """Profile a zipline with the UpDown tradesource (does not require - DB access) and the buy/sell algorithm (requires no - computation). - - Saves output statics under fname. - - Returns Dataframe of statistics. - """ - zp, _ = create_predictable_zipline(config, simulate=False) - stats = gen_single_stats(zp.simulate, blocking=True) - stats.to_csv(fname) - - return stats - -def calc_speedup(before='before_stats.csv', after='after_stats.csv'): - """Calculate speed-up between two previously run and saved - statistics under filename before and after. - - Prints DataFrame of top 30 speed-ups and top 30 slow-downs. - - """ - old = pd.DataFrame.from_csv(before) - new = pd.DataFrame.from_csv(after) - speed_up = old / new - speed_up = speed_up.fillna(1) - speed_up = speed_up.sort(column='ttot', ascending=False) - slow_down = speed_up.sort(column='ttot', ascending=True) - print speed_up[:30] - print slow_down[:30] - -if __name__ == '__main__': - run_updown() - yappi.print_stats(sort_type=yappi.SORTTYPE_TTOT) \ No newline at end of file