FYI we already set the current VM state in CallApiFunctionAndReturn guarded
by FLAG_log_timer_events. This is so that the timeline plot accounts for
the compiled callbacks.

Cheers,

Yang


On Thu, Jun 6, 2013 at 4:44 PM, <[email protected]> wrote:

> On Thu, Jun 6, 2013 at 6:16 PM, Sven Panne <[email protected]> wrote:
>
>> I don't have a good solution, but always paying a penalty for a very, very
>> rare case (profiler is on) seems to be the wrong approach. We desperately
>> try to make transitioning between JS and C as cheap as possible, so
>> several
>> writes plus an additional frame/jump/return per transition is heading into
>> the wrong direction... :-/ It would be totally OK if this was only the
>> case
>> if the profiler is on, though.
>>
>
> On 2013/06/06 14:35:59, danno wrote:
>
>> I agree with Sven here. We've been working very hard at making the JS/C++
>> transitions really fast, I think setting the VM state in these cases is
>> not a
>> good idea.
>>
>
>  It was exactly due to performance concerns that we don't set VM state when
>> CallApiFunctionAndReturn is used elsewhere. Adding this overhead for all
>>
> native
>
>> getters and setters just to support the very rare case when the sampling
>> profiler is active is the wrong tradeoff.
>>
>
> I understand that 3% is too much for such a rare case. Let me see what it
> would
> cost to
> 1) Check if profiler is active in the generated code and do either direct
> call
> or call into the runtime thunks based on that.
> 2) Always update VM state from the generated code my gut feeling is that it
> could also be quite cheap enough or do you think based on your experience
> that
> this second option would be too expensive?
>
> https://codereview.chromium.**org/16286016/<https://codereview.chromium.org/16286016/>
>

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to