Python SciPy convolve vs fftconvolve
FFT fast convolution via the overlap-add or overlap save algorithms can be done in limited memory by using an FFT that is only a small multiple (such as 2X) larger than the impulse response.  It breaks the long FFT up into properly overlapped shorter but zero-padded FFTs.
Even with the overlap overhead, O(NlogN) will beat M*N in efficiency for large enough N and M.
I know generally speaking FFT and multiplication is usually faster than direct convolve operation, when the array is relatively large. However, I'm convolving a very long signal (say 10 million points) with a very short response (say 1 thousand points). In this case the fftconvolve doesn't seem to make much sense, since it forces a FFT of the second array to the same size of the first array. Is it faster to just do direct convolve in this case?