Issue2738
Created on 2019年01月24日.00:59:06 by sergei175, last changed 2019年10月06日.13:39:44 by jeff.allen.
| Messages | |||
|---|---|---|---|
| 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. |
|||
| History | |||
|---|---|---|---|
| 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 | |
Supported by Python Software Foundation,
Powered by Roundup