Thanks. That's good to know. I'll give linux a try. I fear, though, that it's not going to work completely. StackTracer::Trace gets the JS SP for the thread identified by Top::GetCurrentThread. As far as I can tell GetCurrentThread actually returns the main thread. (It returns Top::thread_local_, which has a comment saying "The context that initiated this JS execution" and does not seem to be adjusted when switching threads.) I'll look into passing a thread to StackTracer::Trace.
On Wed, Sep 22, 2010 at 10:20, Mikhail Naganov <[email protected]>wrote: > Hi Malcolm, > > Yes, no one wanted to profile multiple VM threads yet. > > On Linux, profiling multiple threads may even work already -- try it. > There is a function 'IsVmThread' in platform-linux.cc which checks, > whether the thread that a signal handler has been called upon is a VM > thread or not. > > On Mac & Windows, things are more complicated, because we use a > dedicated profiling thread that periodically stops and samples the VM > thread. So to make this work for multiple threads case, one will need > to track a list of VM threads in the sampler. > > On Wed, Sep 22, 2010 at 20:53, malcolm handley > <[email protected]> wrote: > > I have multiple threads using v8 (correctly guarded by v8::Locker as far > as > > I can tell) and I'm interested in using v8's profiler. The comment above > the > > Profiler class in log.cc states that "The Profiler samples pc and sp > values > > for the main thread.". Is there a technical reason for that or is it just > > that no one has wanted to profile other threads yet? It seems to me that > > profiling whichever thread holds the global lock could be productive but > I'd > > love any feedback about fruitful ways to proceed (or reasons not to). > > > > -- > > v8-users mailing list > > [email protected] > > http://groups.google.com/group/v8-users > > -- > v8-users mailing list > [email protected] > http://groups.google.com/group/v8-users > -- v8-users mailing list [email protected] http://groups.google.com/group/v8-users
