Optimizing Python loop with Numba for live load analysis
Just a few quick points on your code:  


any future imports should be at the top of any code. Are you using this intentionally (2to3?) or this is leftover code?
your loop to generate test data overrides i in two secondary loops - this is bad coding practice.
you're using xrange, which is pretty much deprecated since Python 2.3. Are you really using Python 2.3 or you just have stuck with xrange?
no entry point aka if __name__ == "__main__": to demonstrate the start of your code, you have pieces of code scattered around your listing.
Your code as-is with the random function cannot prove Numba JIT nor caching will have any effect. My results for your functions show:  

CacheInfo(hits=0, misses=665297, maxsize=0, currsize=0)
CacheInfo(hits=0, misses=1000, maxsize=0, currsize=0)

Which is to be expected with a random dataset. It's recommended to put a real dataset somewhere on the 'net for people to use.  
SimpleSpanMoment uses a global variable L, you should rewrite the function to inject all variables (or create them inside the function) and not use global variables.  
cstep_size is unused.


Hope this helps you move towards a better implementation, to solve the performance issue. Good Luck!