On Windows, is there any chance that one could set up a separate thread for 
profiling and use busy-wait to do the timing? (I don't even know whether one 
thread can snoop on the execution state of another thread.)

--Tim

On Tuesday, December 02, 2014 06:22:39 PM Jameson Nash wrote:
> Although, over thanksgiving, I pushed a number of fixes which should
> improve the quality of backtraces on win32 (and make sys.dll usable there)
> 
> On Tue, Dec 2, 2014 at 1:20 PM Jameson Nash <[email protected]> wrote:
> > Correct. Windows imposes a much higher overhead on just about every aspect
> > of doing profiling. Unfortunately, there isn't much we can do about this,
> > other then to complain to Microsoft. (It doesn't have signals, so we must
> > emulate them with a separate thread. The accuracy of windows timers is
> > somewhat questionable. And the stack walk library (for recording the
> > backtrace) is apparently just badly written and therefore insanely slow
> > and
> > memory hungry.)
> > 
> > On Tue, Dec 2, 2014 at 12:59 PM Tim Holy <[email protected]> wrote:
> >> I think it's just that Windows is bad at scheduling tasks with
> >> short-latency,
> >> high-precision timing, but I am not the right person to answer such
> >> questions.
> >> 
> >> --Tim
> >> 
> >> On Tuesday, December 02, 2014 09:57:28 AM Peter Simon wrote:
> >> > I have also experienced the inaccurate profile timings on Windows.  Is
> >> 
> >> the
> >> 
> >> > reason for the bad profiler performance on Windows understood?  Are
> >> 
> >> there
> >> 
> >> > plans for improvement?
> >> > 
> >> > Thanks,
> >> > --Peter
> >> > 
> >> > On Tuesday, December 2, 2014 3:57:16 AM UTC-8, Tim Holy wrote:
> >> > > By default, the profiler takes one sample per millisecond. In
> >> 
> >> practice,
> >> 
> >> > > the
> >> > > timing is quite precise on Linux, seemingly within a factor of twoish
> >> 
> >> on
> >> 
> >> > > OSX,
> >> > > and nowhere close on Windows. So at least on Linux you can simply
> >> > > read
> >> > > samples
> >> > > as milliseconds.
> >> > > 
> >> > > If you want to visualize the relative contributions of each
> >> 
> >> statement, I
> >> 
> >> > > highly recommend ProfileView. If you use LightTable, it's already
> >> 
> >> built-in
> >> 
> >> > > via
> >> > > the profile() command. The combination of ProfileView and @profile
> >> 
> >> is, in
> >> 
> >> > > my
> >> > > (extremely biased) opinion, quite powerful compared to tools I used
> >> > > previously
> >> > > in other programming environments.
> >> > > 
> >> > > Finally, there's IProfile.jl, which works via a completely different
> >> > > mechanism
> >> > > but does report raw timings (with some pretty big caveats).
> >> > > 
> >> > > Best,
> >> > > --Tim
> >> > > 
> >> > > On Monday, December 01, 2014 10:13:16 PM Christoph Ortner wrote:
> >> > > > How do you get timings from the Julia profiler, or even better,
> >> 
> >> %-es? I
> >> 
> >> > > > guess one can convert from the numbers one gets, but it is a bit
> >> > > 
> >> > > painful?
> >> > > 
> >> > > > Christoph

Reply via email to