Re: RFC: JDK-8031043: ClassValue's backing map should have a smaller initial size

2014-01-09 Thread Jochen Theodorou
Am 08.01.2014 21:45, schrieb Christian Thalinger:
[...]
> If we’d go with an initial value of 1 would it be a performance problem for 
> you if it grows automatically?

that means the map will have to grow for hundreds of classes at startup. 
I don't know how much impact that will have

bye Jochen

-- 
Jochen "blackdrag" Theodorou - Groovy Project Tech Lead
blog: http://blackdragsview.blogspot.com/
german groovy discussion newsgroup: de.comp.lang.misc
For Groovy programming sources visit http://groovy-lang.org

___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


Re: State of lambda forms stealing stack frames?

2014-01-09 Thread Vladimir Ivanov
Jochen,

There's some work going on to reduce heap and stack usage for 
LambdaForm-based JSR292 implementation in 8update. Backporting it to 7u 
will be also considered.

Best regards,
Vladimir Ivanov

On 1/7/14 7:55 PM, Jochen Theodorou wrote:
> Am 06.01.2014 19:48, schrieb Andrew Haley:
> [...]
>> I think that wnat is happening is that you (and Groovy) are
>> unfortunate to be a victim of a design decision that was made a year
>> or so ago.  Back then, invokedynamic was handled by a ton of
>> hard-to-maintain C++ code.  The HotSpot team decide to throw much of
>> it away and generate bytecode instead, in the hope that the optimizer
>> would be able to "see through" all the invocations and smash it all
>> down to a single call in many cases.  Generally speaking, this does
>> work.  However, it can take a while before the optimizer kicks in, and
>> by this time your stack has already overflowed.
>
> yes, I am aware of the decision... only I was not realizing this problem
> back then.
>
>> Having said all of that, the lambdas must be fairly amazing to require
>> such a lot of work.  I don't know what fib$_closure1 looks like.
>
> fib$_closure1.doCall is the the doCall method of the generated
> groovy.lang.Closure which is used for the memoization. As of why it does
> produces such an extremely complex handle is unclear to me too actually.
> I think part of the output is related to fallbacks in case the
> arguments, receiver and such do not fit, also the is a guard with catch,
> that may produce some of it.
>
>
> bye Jochen
>
___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


Re: RFC: JDK-8031043: ClassValue's backing map should have a smaller initial size

2014-01-09 Thread Christian Thalinger

On Jan 9, 2014, at 2:46 AM, Jochen Theodorou  wrote:

> Am 08.01.2014 21:45, schrieb Christian Thalinger:
> [...]
>> If we’d go with an initial value of 1 would it be a performance problem for 
>> you if it grows automatically?
> 
> that means the map will have to grow for hundreds of classes at startup. 
> I don't know how much impact that will have

If it’s only hundreds it’s probably negligible.  You could do a simple 
experiment if you are worried:  change ClassValueMap.INITIAL_ENTRIES to 1, 
compile it and prepend it to the bootclasspath.

> 
> bye Jochen
> 
> -- 
> Jochen "blackdrag" Theodorou - Groovy Project Tech Lead
> blog: http://blackdragsview.blogspot.com/
> german groovy discussion newsgroup: de.comp.lang.misc
> For Groovy programming sources visit http://groovy-lang.org
> 
> ___
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


Re: RFC: JDK-8031043: ClassValue's backing map should have a smaller initial size

2014-01-09 Thread Charles Oliver Nutter
It depends how JRuby is deployed. If the same code runs in every JRuby
runtime, then there would be one value attached to a given class per
runtime. Generally, this does not exceed a few dozen JRuby instances
for an individual app, and most folks don't deploy more than a few
apps in a given JVM.

- Charlie

On Thu, Jan 9, 2014 at 1:16 PM, Christian Thalinger
 wrote:
>
> On Jan 9, 2014, at 2:46 AM, Jochen Theodorou  wrote:
>
>> Am 08.01.2014 21:45, schrieb Christian Thalinger:
>> [...]
>>> If we’d go with an initial value of 1 would it be a performance problem for 
>>> you if it grows automatically?
>>
>> that means the map will have to grow for hundreds of classes at startup.
>> I don't know how much impact that will have
>
> If it’s only hundreds it’s probably negligible.  You could do a simple 
> experiment if you are worried:  change ClassValueMap.INITIAL_ENTRIES to 1, 
> compile it and prepend it to the bootclasspath.
>
>>
>> bye Jochen
>>
>> --
>> Jochen "blackdrag" Theodorou - Groovy Project Tech Lead
>> blog: http://blackdragsview.blogspot.com/
>> german groovy discussion newsgroup: de.comp.lang.misc
>> For Groovy programming sources visit http://groovy-lang.org
>>
>> ___
>> mlvm-dev mailing list
>> mlvm-dev@openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>
> ___
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev


Re: RFC: JDK-8031043: ClassValue's backing map should have a smaller initial size

2014-01-09 Thread Christian Thalinger

On Jan 9, 2014, at 5:25 PM, Charles Oliver Nutter  wrote:

> It depends how JRuby is deployed. If the same code runs in every JRuby
> runtime, then there would be one value attached to a given class per
> runtime. Generally, this does not exceed a few dozen JRuby instances
> for an individual app, and most folks don't deploy more than a few
> apps in a given JVM.

Interesting.  Thanks for the information.

> 
> - Charlie
> 
> On Thu, Jan 9, 2014 at 1:16 PM, Christian Thalinger
>  wrote:
>> 
>> On Jan 9, 2014, at 2:46 AM, Jochen Theodorou  wrote:
>> 
>>> Am 08.01.2014 21:45, schrieb Christian Thalinger:
>>> [...]
 If we’d go with an initial value of 1 would it be a performance problem 
 for you if it grows automatically?
>>> 
>>> that means the map will have to grow for hundreds of classes at startup.
>>> I don't know how much impact that will have
>> 
>> If it’s only hundreds it’s probably negligible.  You could do a simple 
>> experiment if you are worried:  change ClassValueMap.INITIAL_ENTRIES to 1, 
>> compile it and prepend it to the bootclasspath.
>> 
>>> 
>>> bye Jochen
>>> 
>>> --
>>> Jochen "blackdrag" Theodorou - Groovy Project Tech Lead
>>> blog: http://blackdragsview.blogspot.com/
>>> german groovy discussion newsgroup: de.comp.lang.misc
>>> For Groovy programming sources visit http://groovy-lang.org
>>> 
>>> ___
>>> mlvm-dev mailing list
>>> mlvm-dev@openjdk.java.net
>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>> 
>> ___
>> mlvm-dev mailing list
>> mlvm-dev@openjdk.java.net
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
> ___
> mlvm-dev mailing list
> mlvm-dev@openjdk.java.net
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

___
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev