[phobos] Is it possible to get Function Time in ticks like profiler give, but at runtime?
Jonathan M Davis
jmdavisProg at gmx.com
Sat Aug 20 16:58:26 PDT 2011
On Saturday, August 20, 2011 14:10:44 unDEFER wrote:
> Hello, again!
> I want one very strange feature. I even don't know if it is really
> possible with C for any OS.
> But I sure that in D it must be not more complicate to get this
> So I want to get how much ticks of CPU was wasted on some function
> (including all calls) in real time.
> Seems profiler give this information but only when the program was end.
> Is it possible to get the same at runtime?
> Also is it possible to get profiler info from other process before end of
> I know with core.time or std.c.time I can measure real time of function
> execution, but it will too much different depend on system loading.
> But I want to get approximately the same numbers at the same point of
> Thank you in advance!
> Sorry if I send this question to not right mail list.
If you're looking to time how long a function takes to call, then use
std.datetime.benchmark. If you're looking to determine how much your specific
program calls a particular function and how much time it spends in that
function, then compile with -profile, run the program, and then look at the
files that it generates. If you want to do the equivalent of -profile at
runtime, I don't think that that's really possible, and I'm not quite sure why
you'd want to. But even if you could, it would affect the performance of the
program and probably skew the results anyway. It would certainly slow down the
program a lot. I suppose that you could write a wrapper function for your
specific function, time the exact time that it takes on each call with
std.datetime.StopWatch, and then send that information to another process via
std.socket if you really want something like that. But that sort of thing
sounds rather complicated to me, and I have no idea what good the information
would do you at runtime anyway. Usually, the reason that people want to profile
code is to determine what code they need to optimize make the program faster,
and -profile is plenty for that.
- Jonathan M Davis
More information about the phobos