jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: Why do Functions that only have values as instance variable synchronize execute ?
Date Thu, 16 Oct 2014 15:14:39 GMT
Please create a Bugzilla issue.

On 16 October 2014 16:04, UBIK LOAD PACK Support
<support@ubikloadpack.com> wrote:
> Hi sebb,
> Thanks for answers.
>
> This should be investigated as the gain of removing synchronized and
> switching to volatile is huge 25% more throughput on Javascript function
> for example with 10 threads. The more you add threads the more you gain.
> And we have customers reporting locking due to _javascript , Thread dump
> shows 1 thread blocking others on execute.
>
> Regards
>
>
> On Thu, Oct 16, 2014 at 4:55 PM, sebb <sebbaz@gmail.com> wrote:
>
>>
>> On 14 October 2014 19:57, UBIK LOAD PACK Support
>> <support@ubikloadpack.com> wrote:
>> > Hi,
>> > Reviewing code of Functions in JMeter we don't understand why Functions
>> > that only have values as instance variable (so Beanshell or
>> StringFromFile
>> > or IterationCounter (which could be improved to avoid it) are not
>> > concerned) synchronize on execute.
>> >
>> > It appears "values" instance variable is initialized within
>> > StandardJMeterEngine thread and then only accessed in read mode by
>> > JMeterThread
>>
>> i.e. it is written in one thread and read in another
>>
>> > But it is true that if synchronized is removed then CompoundVariable is
>> > accessed by multi threads but it seems it uses thread related data so it
>> > should be OK.
>>
>> No, because the Java Memory Model only guarantees safe publication of
>> a mutable field if the writer and reader synchronize on the same lock.
>> Or the field must be volatile. JMeter was originally written for Java
>> 1.4 (or earlier); I think volatile did not offer the safe publication
>> guarantee then.
>>
>> It does look like the values field could now be made volatile, which
>> would mean the synch. was not needed to ensure safe pub.
>> However, it might still be needed for other fields or mutual exclusion
>> purposes.
>>
>> >
>> >
>> > --
>>
>
>
>
> --
>
> Regards
> Ubik Load Pack <http://ubikloadpack.com> Team
> Follow us on Twitter <http://twitter.com/ubikloadpack>
>
>
> Cordialement
> L'équipe Ubik Load Pack <http://ubikloadpack.com>
> Suivez-nous sur Twitter <http://twitter.com/ubikloadpack>

Mime
View raw message