U40: 1xOpteron 254, 2813 MHz, SunOS 5.11 snv_b107 =============================================================== -DPLAIN -UUSE_DTRACE -DUSE_DTRACE -g 2244221 3670650 3500376 -g -xO2 177895 177949 978435 -xO2 118626 118702 933907 -xO3 0 0 933984 933907-118702=815205 µs overhead for 1.000.000.000 loops -> ~ 0.8 ns per check and incl -> or ~1.225.000.000 checks to get an overhead of 1s when not traced -> or ~ 2.3 CPU cycles overhead per check and incl v240: 2xUltraSPARC-IIIi, 1503 MHz, SunOS 5.10 Generic_138888-03 =============================================================== -g 12997804 14663710 18976658 -g -xO2 2666218 2666216 3332684 -xO2 2665979 2666364 3332799 -xO3 0 0 3332667 3332799-2665979=666820 µs overhead for 1.000.000.000 loops -> ~ 0.7 ns per check and incl -> or ~ 1.500.000.000 checks to get an overhead of 1s when not traced -> or ~ 1 CPU cycles overhead per check and incl Assuming, speed improves linear wrt. CPU cycles/s v240 adjusted to U40: 1780731-1424651=356080 µs overhead for 1.000.000.000 loops -> ~ 0.4 ns per check and incl -> ~ 2.810.000.000 checks to get an overhead of 1s when not traced -xO2 -DUSE_DTRACE (x86) main+0x1c: e8 97 fa ff ff call -0x569 main+0x21: 83 c4 10 addl $0x10,%esp main+0x24: bb 00 ca 9a 3b movl $0x3b9aca00,%ebx main+0x29: 33 f6 xorl %esi,%esi main+0x2b: ! 33 c0 xorl %eax,%eax main+0x2d: ! 90 nop main+0x2e: ! 90 nop main+0x2f: ! 90 nop main+0x30: ! 85 c0 testl %eax,%eax main+0x32: ! 75 01 jne +0x1 main+0x34: ! 46 incl %esi main+0x35: ! 33 c0 xorl %eax,%eax main+0x37: ! 90 nop main+0x38: ! 90 nop main+0x39: ! 90 nop main+0x3a: ! 85 c0 testl %eax,%eax main+0x3c: ! 75 01 jne +0x1 main+0x3e: ! 46 incl %esi main+0x3f: ! 33 c0 xorl %eax,%eax main+0x41: ! 90 nop main+0x42: ! 90 nop main+0x43: ! 90 nop main+0x44: ! 85 c0 testl %eax,%eax main+0x46: ! 75 01 jne +0x1 main+0x48: ! 46 incl %esi main+0x49: ! 33 c0 xorl %eax,%eax main+0x4b: ! 90 nop main+0x4c: ! 90 nop main+0x4d: ! 90 nop main+0x4e: ! 85 c0 testl %eax,%eax main+0x50: ! 75 01 jne +0x1 main+0x52: ! 46 incl %esi main+0x53: ! 83 c3 fc addl $-0x4,%ebx <0xfffffffc> main+0x56: 85 db testl %ebx,%ebx main+0x58: 7f d1 jg -0x2f main+0x5a: 83 ec 08 subl $0x8,%esp main+0x5d: 6a 00 pushl $0x0 main+0x5f: 8d 45 e0 leal -0x20(%ebp),%eax main+0x62: 50 pushl %eax main+0x63: e8 50 fa ff ff call -0x5b0 -xO2 -UUSE_DTRACE (x86) main+0x19: e8 9a fa ff ff call -0x566 main+0x1e: 83 c4 10 addl $0x10,%esp main+0x21: b8 00 ca 9a 3b movl $0x3b9aca00,%eax main+0x26: 33 ff xorl %edi,%edi main+0x28: 83 c7 06 addl $0x6,%edi main+0x2b: 83 c0 fa addl $-0x6,%eax <0xfffffffa> main+0x2e: 83 f8 06 cmpl $0x6,%eax main+0x31: 7d f5 jge -0xb main+0x33: 47 incl %edi main+0x34: 48 decl %eax main+0x35: 85 c0 testl %eax,%eax main+0x37: 7f fa jg -0x6 main+0x39: 83 ec 08 subl $0x8,%esp main+0x3c: 6a 00 pushl $0x0 main+0x3e: 8d 45 e0 leal -0x20(%ebp),%eax main+0x41: 50 pushl %eax main+0x42: e8 71 fa ff ff call -0x58f -xO2 -DUSE_DTRACE (sparcv9) main+0x30: 40 00 42 e4 call +0x10b90 main+0x34: 92 10 20 00 clr %o1 main+0x38: ! 90 10 20 00 clr %o0 main+0x3c: ! b0 06 3f ff add %i0, -0x1, %i0 main+0x40: ! 80 a2 20 00 cmp %o0, 0x0 main+0x44: ! 8a 04 a0 01 add %l2, 0x1, %g5 main+0x48: ! a5 64 40 05 move %icc, %g5, %l2 main+0x4c: ! 80 a6 20 01 cmp %i0, 0x1 main+0x50: ! 16 4f ff fa bge,pt %icc, -0x18 main+0x54: ! 01 00 00 00 nop main+0x58: 90 10 00 1b mov %i3, %o0 main+0x5c: a2 04 7f ff add %l1, -0x1, %l1 main+0x60: 40 00 42 d8 call +0x10b60 -xO2 -UUSE_DTRACE (sparcv9) main+0x30: 40 00 42 c2 call +0x10b08 main+0x34: 92 10 20 00 clr %o1 main+0x38: 90 10 00 1d mov %i5, %o0 main+0x3c: 90 02 3f ff add %o0, -0x1, %o0 main+0x40: 80 a2 20 01 cmp %o0, 0x1 main+0x44: 36 4f ff fe bge,a,pt %icc, -0x8 main+0x48: a4 04 a0 01 add %l2, 0x1, %l2 main+0x4c: 90 10 00 1b mov %i3, %o0 main+0x50: a2 04 7f ff add %l1, -0x1, %l1 main+0x54: 40 00 42 b9 call +0x10ae4