Okay. I got I::C to work, and these are the results I get from running your (unmodified) benchmark here:
C:\test>792136.pl Benchmark: timing 1 iterations of list, ref... list: 0 wallclock secs ( 0.05 usr + 0.00 sys = 0.05 CPU) @ 21 +.28/s (n=1) (warning: too few iterations for a reliable count) ref: 0 wallclock secs ( 0.03 usr + 0.00 sys = 0.03 CPU) @ 32 +.26/s (n=1) (warning: too few iterations for a reliable count) 2000001000000 2000001000000 C:\test>792136.pl Benchmark: timing 1 iterations of list, ref... list: 0 wallclock secs ( 0.05 usr + 0.00 sys = 0.05 CPU) @ 21 +.28/s (n=1) (warning: too few iterations for a reliable count) ref: 0 wallclock secs ( 0.03 usr + 0.00 sys = 0.03 CPU) @ 31 +.25/s (n=1) (warning: too few iterations for a reliable count) 2000001000000 2000001000000 C:\test>792136.pl Benchmark: timing 1 iterations of list, ref... list: 0 wallclock secs ( 0.05 usr + 0.00 sys = 0.05 CPU) @ 21 +.28/s (n=1) (warning: too few iterations for a reliable count) ref: 0 wallclock secs ( 0.03 usr + 0.00 sys = 0.03 CPU) @ 31 +.25/s (n=1) (warning: too few iterations for a reliable count) 2000001000000 2000001000000
Which is consistant enough to confirm my intuition. I'm not sure why you are getting different results--but I urge you to look closely at them.
BTW: Can you tell me where PERL_BITFIELD16 is typedef'd on your setup, because it was entirely missing as far as I can see on mine. Once I added:
#define OPCODE U16 #ifdef PERL_MAD # define MADPROP_IN_BASEOP MADPROP* op_madprop; #else # define MADPROP_IN_BASEOP #endif typedef unsigned int PERL_BITFIELD16; /// <<< I added this! typedef PERL_BITFIELD16 Optype;
I::C started working again?
In reply to Re^5: profiling XS routines
by BrowserUk
in thread profiling XS routines
by jpl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |