I have the following class:
class C1:
STORE = []
TYPE = []
ITEMS = []
PRICE = []
def __init__(self,STORE,TYPE,ITEMS,PRICE):
se
Using Python 2.3 is going to limit your options (including excluding the option of going to 64-bit). That's also the main reason the memory is not being released back to the OS: the internal object allocator in CPython didn't gain the ability to return no longer used memory to the OS until 2.5.
If you can, try running the algorithm on 2.7 and see what gains you're able to achieve purely by using a more recent version of the interpreter (or what compatibility problems would arise in such a migration).
And, as others have suggested, optimise your data structures. Check the algorithmic complexity of the operations you perform regularly, and see if there is a way to convert O(n*n) operations to O(n*logn) and O(n) to O(logn) or O(1).
Even if the underlying data structures can't change, you may be able to use the bisect
module to speed up some operations on your lists.