62 messages in org.codehaus.groovy.devRe: [groovy-dev] Groovy performance: ...| From | Sent On | Attachments |
|---|---|---|
| Alex Tkachman | 19 Feb 2008 02:09 | |
| Steven Devijver | 19 Feb 2008 02:37 | |
| Alexandru Popescu ☀ | 19 Feb 2008 02:57 | |
| Alex Tkachman | 19 Feb 2008 03:03 | |
| Patric Bechtel | 19 Feb 2008 03:12 | |
| Guillaume Laforge | 19 Feb 2008 03:25 | |
| Guillaume Laforge | 19 Feb 2008 03:26 | |
| Patric Bechtel | 19 Feb 2008 05:05 | |
| Gavin Grover | 19 Feb 2008 05:51 | |
| Steven Devijver | 19 Feb 2008 05:52 | |
| Guillaume Laforge | 19 Feb 2008 05:54 | |
| Tom Nichols | 19 Feb 2008 06:26 | |
| Alex Tkachman | 19 Feb 2008 06:28 | |
| Guillaume Laforge | 19 Feb 2008 06:35 | |
| Tom Nichols | 19 Feb 2008 07:03 | |
| Guillaume Laforge | 19 Feb 2008 07:38 | |
| Chanwit Kaewkasi | 19 Feb 2008 07:52 | |
| Charles Oliver Nutter | 19 Feb 2008 08:49 | |
| Steven Devijver | 19 Feb 2008 10:03 | |
| Charles Oliver Nutter | 19 Feb 2008 11:38 | |
| Steven Devijver | 19 Feb 2008 12:11 | |
| Alex Tkachman | 19 Feb 2008 12:39 | |
| Alex Tkachman | 19 Feb 2008 12:48 | |
| tugwilson | 19 Feb 2008 13:36 | |
| Alex Tkachman | 19 Feb 2008 20:51 | |
| Guillaume Laforge | 20 Feb 2008 02:10 | |
| Jochen Theodorou | 20 Feb 2008 09:46 | |
| Martin C. Martin | 20 Feb 2008 17:25 | |
| Guillaume Laforge | 21 Feb 2008 01:35 | |
| Tom Nichols | 21 Feb 2008 04:15 | |
| Martin C. Martin | 21 Feb 2008 05:44 | |
| Tom Nichols | 21 Feb 2008 06:22 | |
| Smith, Jason, CTR, OASD(HA)/TMA | 21 Feb 2008 06:34 | |
| Martin C. Martin | 21 Feb 2008 06:43 | |
| Guillaume Laforge | 21 Feb 2008 06:48 | |
| Guillaume Laforge | 21 Feb 2008 07:04 | |
| Smith, Jason, CTR, OASD(HA)/TMA | 21 Feb 2008 07:18 | |
| Charles Oliver Nutter | 21 Feb 2008 07:38 | |
| Guillaume Laforge | 21 Feb 2008 07:42 | |
| Martin C. Martin | 21 Feb 2008 08:36 | |
| Martin C. Martin | 21 Feb 2008 08:48 | |
| Pascal DeMilly | 21 Feb 2008 17:35 | |
| Gavin Grover | 21 Feb 2008 18:21 | |
| Jochen Theodorou | 22 Feb 2008 04:31 | |
| Tom Nichols | 22 Feb 2008 04:49 | |
| Charles Oliver Nutter | 22 Feb 2008 23:43 | |
| Guillaume Laforge | 23 Feb 2008 00:28 | |
| Martin C. Martin | 23 Feb 2008 03:51 | |
| Jochen Theodorou | 23 Feb 2008 14:49 | |
| Jochen Theodorou | 23 Feb 2008 14:53 | |
| Charles Oliver Nutter | 24 Feb 2008 02:01 | |
| Martin C. Martin | 24 Feb 2008 03:56 | |
| Martin C. Martin | 24 Feb 2008 04:11 | |
| Charles Oliver Nutter | 24 Feb 2008 05:12 | |
| Jochen Theodorou | 24 Feb 2008 15:17 | |
| Jochen Theodorou | 24 Feb 2008 15:31 | |
| Alexandru Popescu ☀ | 24 Feb 2008 15:36 | |
| Martin C. Martin | 26 Feb 2008 14:20 | |
| Martin C. Martin | 26 Feb 2008 15:15 | |
| Jochen Theodorou | 27 Feb 2008 02:38 | |
| Jochen Theodorou | 27 Feb 2008 03:03 | |
| Martin C. Martin | 02 Mar 2008 17:21 |
| Subject: | Re: [groovy-dev] Groovy performance: what to do![]() |
|---|---|
| From: | Charles Oliver Nutter (char...@sun.com) |
| Date: | 02/22/2008 11:43:04 PM |
| List: | org.codehaus.groovy.dev |
Excellent summary of the problems with this proposal. I have some comments below.
Jochen Theodorou wrote:
Groovy has atm dynamic typing. Any change with a fast mode goals a more or less static system, which is a major change for such a language. There is either version 2, which will mean you can not mix dynamic typed parts and static typed parts in the same area and there is version 3 which allows that, but will also give not many hints when it will do static and when it will do dynamic typing.
This is exactly what worried me. Because static typing goes through an entirely different mechanism, it would be both confusing and problematic for users. This is further complicated by the many users that would try to take their Groovy code and "make it faster" by adding static types. Suddenly dispatch rules would be completely different, and the code would break.
Some argue, that they would like to use Groovy, because it has a better syntax... for example with closures. Let us forget a moment about the GDK methods. Let us first look at a usage of Closures:
My opinion here is that it sounds like many people want Groovy features in Java for certain pieces of code. I think that's a great idea...if these features have proven useful we should consider adding them to Java or consider making a static-typed Java-like language that supports them if we can't push through actual Java language changes. Heck, even the javac compiler toolchain is open-source now, so we could build off that.
But don't try to turn Groovy into "Java with extras" just because it might solve a few performance problems. It wouldn't be Groovy.
The way we want to go is to find a fast method selection process, where the selection will be cached at the place where the method call will be done (call site cache) and in later calls we will need only a verification step here, which can be much faster than the normal method selection and which probably can be inlined by the JIT together with the method call itself. This will mean that.
This is the technique that has been proven to work in JRuby, and it would work for Groovy too. I'm willing to help make it happen (once I find my misplaced 8th day of the week).
- Charlie
--------------------------------------------------------------------- To unsubscribe from this list, please visit:




