From a56fc707ed7529b47d121cc200638e7f373c84da Mon Sep 17 00:00:00 2001 From: Scott Sanderson Date: Wed, 26 Oct 2016 15:22:28 -0400 Subject: [PATCH] PERF: Try cache on scalar asset lookups. This provides a 15% speedup for an algo that calls `data.current` with 1000 every minute. --- zipline/assets/assets.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/zipline/assets/assets.py b/zipline/assets/assets.py index 9dd928bd..39d9301c 100644 --- a/zipline/assets/assets.py +++ b/zipline/assets/assets.py @@ -362,7 +362,10 @@ class AssetFinder(object): """ Retrieve the Asset for a given sid. """ - return self.retrieve_all((sid,), default_none=default_none)[0] + try: + return self._asset_cache[sid] + except KeyError: + return self.retrieve_all((sid,), default_none=default_none)[0] def retrieve_all(self, sids, default_none=False): """