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
