From 376ae332643a771e61f78e892c0b5771e83c3bf9 Mon Sep 17 00:00:00 2001 From: Eddie Hebert Date: Wed, 31 Jul 2013 18:55:07 -0400 Subject: [PATCH] PERF: Remove deepcopy from EventWindow ticks. The deepcopy of events into the EventWindow's ticks was causing a significant increase in memory consumption, e.g. an algorithm with almost 200 sids and 14 vwaps removing the deepcopy reduces the amount of memory consumed by about 40%. The downside is that if an event's properties are changed, which is not advised, later on, then the signal derived from vwap etc. may be changed. --- zipline/transforms/utils.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/zipline/transforms/utils.py b/zipline/transforms/utils.py index 892c6222..e2687d7c 100644 --- a/zipline/transforms/utils.py +++ b/zipline/transforms/utils.py @@ -23,7 +23,6 @@ import logbook from numbers import Integral -from copy import deepcopy from datetime import datetime from collections import deque from abc import ABCMeta, abstractmethod @@ -216,7 +215,7 @@ class EventWindow(object): self.assert_well_formed(event) # Add new event and increment totals. - self.ticks.append(deepcopy(event)) + self.ticks.append(event) # Subclasses should override handle_add to define behavior for # adding new ticks.