Optimizing your python code: code performance profiling