From 05ecd3423e84215e9334b70f294f03c99e5065f6 Mon Sep 17 00:00:00 2001 From: Robert Smallshire Date: Wed, 6 May 2015 12:50:45 +0200 Subject: [PATCH] Removing interning of IBMFloat instances gives a 20% performance improvement reading trace data. --- segpy/ibm_float.py | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/segpy/ibm_float.py b/segpy/ibm_float.py index 03094bf..df1fd36 100644 --- a/segpy/ibm_float.py +++ b/segpy/ibm_float.py @@ -174,11 +174,6 @@ class IBMFloat(Real): __slots__ = ['_data'] - _INTERNED = {IBM_ZERO_BYTES: None, - IBM_NEGATIVE_ONE_BYTES: None, - IBM_POSITIVE_ONE_BYTES: None} - - # noinspection PyUnresolvedReferences def __new__(cls, b): obj = object.__new__(cls) @@ -187,16 +182,8 @@ class IBMFloat(Real): if num_bytes != 4: raise ValueError("{} cannot be constructed from {} values".format(cls.__name__, num_bytes)) obj._data = data - - # Intern common values - if data in cls._INTERNED: - if cls._INTERNED[data] is None: - cls._INTERNED[data] = obj - return cls._INTERNED[data] - return obj - @classmethod def from_float(cls, f): """Construct an IBMFloat from an IEEE float.