Re: performance issues with for loop and imap/deque maxlen=0
Albert Cardona <[email protected]> Sat, 16 May 2020 14:13:42 +0100
| Newsgroups | gmane.comp.lang.jython.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi all, I think I can improve the performance of imap significantly. Would you take pull requests at https://github.com/jythontools/jython/blob/master/src/org/python/modules/itertools/imap.java ? Or should one submit patches to the mercurial repository? Thanks, Albert > On May 16, 2020, at 12:09 AM, Albert Cardona <[email protected]> wrote: > > Hi all, > > I am seeing severe performance problems when looping over sequences > and invoking a single method on each element of the sequence, both > with a for loop and with an imap + deque maxlen=0 strategy. The > baseline is clojure, which is fully typed and compiled to bytecode. > > The difference is staggering: 500x to 1000x (from about 1 second to 1 > millisecond). > > Here is a script that can run in Fiji: > > https://github.com/acardona/scripts/blob/dev/python/imagej/tests/test_looping_performance_imglib2_setOne.py > > The script creates an ImgLib2 image of width=512, height=512, depth=5, > of type unsigned byte, and then loops over all pixels to invoke the > method "setOne" on each pixel (pixels are presented as wrapped by an > UnsignedByteType object that offers the "setOne" method). There is an > underlying byte[] array of size 512*512*5 to the image. > > Why the enormous difference? Anything that can be done to mitigate this issue? > > Thank you very much. > > Albert _______________________________________________ Jython-dev mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jython-dev