Issue2738
Created on 2019-01-24.00:59:06 by sergei175, last changed 2019-10-06.13:39:44 by jeff.allen.
msg12336 (view) |
Author: Sergei (sergei175) |
Date: 2019-01-24.00:59:06 |
|
Hi,
Just to draw your attention: There is a discussion thread about some problems with Jython https://stackoverflow.com/questions/54281767/benchmarking-java-groovy-jython-and-python/54326863
i.e. certain calculations cannot be done due to very slow execution.
I do not know, is this a feature or a bug. Why other scripting languages (such as Groovy) are so fast? Can this point to some problems in the Jython core?
|
msg12338 (view) |
Author: Jim Baker (zyasoft) |
Date: 2019-01-24.23:27:46 |
|
Yes, it is slow for this scenario, at x10 slower as seen here. Jython and CPython should currently be at about the same speed, since they have very close implementations. I did find it interesting that JRuby had very similar performance, which shows how challenging speeding dynamically typed languages is.
There is however one thing that makes things unnecessarily slow: because Jython 2.7 implements the Python 2.7 language, the code should be written to use xrange, not range, which will allocate a list containing 100 million consecutive integers. That's obviously unnecessary overhead.
It is also possible that we can still improve this speed with InvokeDynamic and related support, but that's a hard engineering challenge, even with the improvements in this support in JDK 12.
|
msg12340 (view) |
Author: Sergei (sergei175) |
Date: 2019-01-25.02:01:17 |
|
Hi, Jim
Thanks! I see that the stackoverlow has been already corrected with range()->xrange() for the Jython example. Now it's much better (40 sec) than it was with "range()". Still, not clear why Groovy is super-fast.
best
|
msg12342 (view) |
Author: Sergei (sergei175) |
Date: 2019-02-03.02:22:27 |
|
Not a bug, but just a free "visionary" idea where to go with Jython
(after reading again the thread https://stackoverflow.com/questions/54281767/benchmarking-java-groovy-jython-and-python/ )
If Jython will be as fast as Groovy then Jython may easily dwarf CPython in popularity. This will be a very strong selling point for Jython, and will attract many developers. But one needs to learn what is under the hood of Groovy/JRuby. Of course, this is a lot of work, but this can be very promising direction.
|
msg12694 (view) |
Author: Jeff Allen (jeff.allen) |
Date: 2019-10-06.13:39:44 |
|
Adjusting the priority here so that, if ever we produce a Jython with decent performance for arithmetic (and who wouldn't want that?), we have this to hand. Taking off the 2.7.1 though.
|
|
Date |
User |
Action |
Args |
2019-10-06 13:39:44 | jeff.allen | set | priority: high resolution: later messages:
+ msg12694 nosy:
+ jeff.allen milestone: Jython 2.7.1 -> |
2019-02-03 02:22:27 | sergei175 | set | type: behaviour -> security messages:
+ msg12342 severity: major -> minor components:
+ Any, - Core title: Is Jython core slow for numeric calculations? -> Looking again at benchmarks |
2019-01-25 02:01:17 | sergei175 | set | messages:
+ msg12340 |
2019-01-24 23:27:46 | zyasoft | set | nosy:
+ zyasoft messages:
+ msg12338 |
2019-01-24 00:59:06 | sergei175 | create | |
|