[resend, fixing attachment]

Ok.  Attached is a preliminary DEBUG vs. non-DEBUG comparison; I
eliminated the one test which was very obviously misfiring.  It could be
that there are others which are also misbehaving.

For those not acquainted with what I'm measuring: there are two ways to
build the Solaris kernel: DEBUG (i.e. with various debugging checks
enabled, ASSERTs, etc), or non-DEBUG (i.e. go fast).

We're often asked "What is the overhead of running DEBUG?" to which the
answer is always "it depends on the workload"... and it does.  But I
thought it would be neat to get some measurement of how and why running
DEBUG might impact performance.

As a reminder: we consider benchmarking applications or perf. fixes
on DEBUG bits to be invalid in general.

If people care, I could post this comparo to the website as well.

        -dp

-- 
Daniel Price - Solaris Kernel Engineering - [EMAIL PROTECTED] - blogs.sun.com/dp
Title: multiview comparison
Preliminary DEBUG vs. non-DEBUG comparison; I eliminated the one test which was very obviously misfiring. It could be that there are others which are also misbehaving.

For those not acquainted with what I'm measuring: there are two ways to build the Solaris kernel: DEBUG (i.e. with various debugging checks enabled, ASSERTs, etc), or non-DEBUG (i.e. go fast).

We're often asked "What is the overhead of running DEBUG?" to which the answer is always "it depends on the workload"... and it does. But I thought it would be neat to get some measurement of how and why running DEBUG might impact performance.

As a reminder: we consider benchmarking applications or perf. fixes on DEBUG bits to be invalid in general.

Libmicro_# 0.3.0 0.3.0
Options -E -C 200 -L -S -W -E -C 200 -L -S -W
Machine_name xanadu xanadu
OS_name SunOS SunOS
OS_release 5.11 5.11
OS_build snv_20 non-DEBUG snv_20 DEBUG
Processor i86pc i86pc
#CPUs 1 1
CPU_MHz 2100MHz 2100MHz
CPU_NAME AMD Athlon(tm) 64 Processor 3200+ AMD Athlon(tm) 64 Processor 3200+
IP_address 129.146.228.194 129.146.228.194
Run_by dp dp
Date 08/17/05 18:15 08/16/05 15:01
Compiler cc cc
Compiler Ver. cc: Sun C 5.7 Patch 117837-04 cc: Sun C 5.7 Patch 117837-04
sizeof(long) 4 4
extra_CFLAGS [none] [none]
TimerRes 1 nsecs 1 nsecs
BENCHMARK
USECS
USECS [percentage]
bind 20.16695
 55.81066[ -176.7%]
c_cond_1 0.65550
0.63050[ +4.0%]
c_cond_10 62.07450
 73.30700[-18.1%]
c_cond_200 1767.30100
 2045.68850[-15.8%]
c_fcntl_1 3.81400
6.78900[-78.0%]
c_fcntl_10 106.74500
173.69900[-62.7%]
c_fcntl_200 7593.39300
 9657.01350[-27.2%]
c_lockf_1 3.89900
7.00300[-79.6%]
c_lockf_10 100.43050
168.17950[-67.5%]
c_lockf_200 4064.15050
 6652.02350[-63.7%]
c_mutex_1 0.22150
0.22550[ -1.8%]
c_mutex_10 53.29750
 64.13500[-20.3%]
c_mutex_200 1541.22700
 2072.50250[-34.5%]
cachetocache 0.02736
0.02938[ -7.4%]
chdir_tmp 3.57600
5.56700[-55.7%]
chdir_usr 2.37700
2.63800[-11.0%]
chgetwd_tmp 7.64600
 15.49000[ -102.6%]
chgetwd_usr 6.11300
 11.45300[-87.4%]
close_bad 0.51119
0.61156[-19.6%]
close_tcp 6.67647
 79.15516[-1085.6%]
close_tmp 0.47597
0.94172[-97.9%]
close_usr 0.48394
0.93425[-93.1%]
close_zero 0.51847
1.00087[-93.0%]
conn_accept 8.46902
 22.47740[ -165.4%]
conn_connect 11.92687
117.23388[ -882.9%]
connection 38.55261
238.23842[ -518.0%]
dup 0.45695
0.52914[-15.8%]
exec 650.43560
 1032.13220[-58.7%]
exit_10 383.60020
733.53940[-91.2%]
exit_100 335.71996
628.70487[-87.3%]
exit_1000 345.39208
734.19470[ -112.6%]
exit_10_nolibc 287.80270
611.84270[ -112.6%]
exp 0.08250
0.08170[ +1.0%]
fcntl_ndelay 0.31975
0.40650[-27.1%]
fcntl_tmp 0.28700
0.40000[-39.4%]
fcntl_usr 0.29100
0.40000[-37.5%]
file_lock 1.40100
2.40200[-71.4%]
fork_10 450.53780
859.84380[-90.8%]
fork_100 287.50531
676.83980[ -135.4%]
fork_1000 509.43544
900.29370[-76.7%]
getcontext 0.64940
0.80910[-24.6%]
getenv 0.33510
0.33500[ +0.0%]
getenvT2 0.97410
1.02350[ -5.1%]
getpeername 0.41600
0.53100[-27.6%]
getpid 0.15250
0.23470[-53.9%]
getrusage 0.47810
0.49130[ -2.8%]
getsockname 0.41400
0.53500[-29.2%]
gettimeofday 0.17965
0.18250[ -1.6%]
isatty_no 0.59825
0.74175[-24.0%]
isatty_yes 2.06715
7.10120[ -243.5%]
listen 2.13295
 31.49399[-1376.5%]
localtime_r 0.73380
0.74610[ -1.7%]
log 0.07550
0.07550[ +0.0%]
longjmp 0.00810
0.00810[ +0.0%]
lrand48 0.09930
0.10150[ -2.2%]
lseek_t8k 0.33800
0.38200[-13.0%]
lseek_u8k 0.33950
0.38050[-12.1%]
mallocT2_10 0.91340
1.03120[-12.9%]
mallocT2_100 1.02690
1.12800[ -9.8%]
mallocT2_100k 1.03870
1.14460[-10.2%]
mallocT2_10k 1.03300
1.14170[-10.5%]
mallocT2_1k 1.02630
1.12790[ -9.9%]
malloc_10 0.22690
0.26130[-15.2%]
malloc_100 0.28015
0.30830[-10.0%]
malloc_100k 0.28160
0.30960[ -9.9%]
malloc_10k 0.27995
0.30810[-10.1%]
malloc_1k 0.27995
0.30805[-10.0%]
memcpy_10 0.02220
0.02220[ +0.0%]
memcpy_10k 0.95400
0.95800[ -0.4%]
memcpy_10m 7056.49600
 7179.93900[ -1.7%]
memcpy_1k 0.12200
0.12150[ +0.4%]
memcpy_1m 436.53000
505.48100[-15.8%]
memrand 0.05172
0.05172[ +0.0%]
memsetP2_10m 6621.03570
 6624.18080[ -0.0%]
memset_10 0.01670
0.01670[ +0.0%]
memset_10k 0.63960
0.63960[ +0.0%]
memset_10m 3309.49180
 3311.13350[ -0.0%]
memset_1k 0.09100
0.09100[ +0.0%]
memset_1m 330.12870
328.92380[ +0.4%]
memset_256 0.03620
0.03620[ +0.0%]
memset_256_u 0.05150
0.05150[ +0.0%]
memset_4k 0.27390
0.27390[ +0.0%]
memset_4k_uc 0.28500
0.28500[ +0.0%]
mktime 8.58100
8.72300[ -1.7%]
mktimeT2 20.96100
 21.44300[ -2.3%]
mmap_a128k 1.04500
1.91500[-83.3%]
mmap_a8k 1.03600
1.90000[-83.4%]
mmap_ra128k 129.36400
181.28600[-40.1%]
mmap_ra8k 10.27000
 16.26200[-58.3%]
mmap_rt128k 63.56100
 81.48400[-28.2%]
mmap_rt8k 5.45600
9.23600[-69.3%]
mmap_ru128k 22.36000
 32.15800[-43.8%]
mmap_ru8k 4.79400
7.73500[-61.3%]
mmap_rz128k 129.52900
182.17300[-40.6%]
mmap_rz8k 10.71400
 16.86600[-57.4%]
mmap_t128k 1.19300
2.15000[-80.2%]
mmap_t8k 1.16700
2.09300[-79.3%]
mmap_u128k 1.31800
2.34300[-77.8%]
mmap_u8k 1.30200
2.34900[-80.4%]
mmap_wa128k 128.32800
182.58300[-42.3%]
mmap_wa8k 10.07700
 16.30300[-61.8%]
mmap_wt128k 207.47200
275.78300[-32.9%]
mmap_wt8k 13.36200
 20.22700[-51.4%]
mmap_wu128k 216.51800
294.44500[-36.0%]
mmap_wu8k 14.18200
 21.88400[-54.3%]
mmap_wz128k 127.71000
181.15700[-41.9%]
mmap_wz8k 10.68300
 16.77100[-57.0%]
mmap_z128k 1.21800
2.07600[-70.4%]
mmap_z8k 1.24000
2.06100[-66.2%]
mprot_tw4m 2937.54500
 3560.22100[-21.2%]
mprot_twz8k 5.98900
7.67200[-28.1%]
mprot_wz128k 0.66000
0.72000[ -9.1%]
mprot_wz8k 0.62900
0.64400[ -2.4%]
mprot_z128k 0.69100
0.72100[ -4.3%]
mprot_z8k 0.59500
0.63700[ -7.1%]
mutex_T2 3.25900
3.79300[-16.4%]
mutex_mt 0.07610
0.06800[+11.9%]
mutex_st 0.05800
0.06080[ -4.8%]
open_tmp 2.05963
5.21819[ -153.4%]
open_usr 1.68584
2.64721[-57.0%]
open_zero 3.92667
 11.46377[ -191.9%]
pipe_pmp1 461.82400
749.70400[-62.3%]
pipe_pmp4k 477.60200
841.24800[-76.1%]
pipe_pmt1 15.29400
 23.18700[-51.6%]
pipe_pmt4k 16.86500
 72.27000[ -328.5%]
pipe_pst1 1.19200
3.22100[ -170.2%]
pipe_pst4k 1.67200
 26.40100[-1479.0%]
pipe_smp1 470.33900
836.85800[-77.9%]
pipe_smp4k 485.98800
923.89100[-90.1%]
pipe_smt1 20.93200
 32.35000[-54.5%]
pipe_smt4k 23.04200
 79.64500[ -245.7%]
pipe_sst1 3.80300
7.99000[ -110.1%]
pipe_sst4k 4.75100
 30.43800[ -540.7%]
pipe_tmp1 467.29700
882.01000[-88.7%]
pipe_tmp4k 484.31200
971.47400[ -100.6%]
pipe_tmt1 21.24300
 34.79800[-63.8%]
pipe_tmt4k 23.54400
 84.16300[ -257.5%]
pipe_tst1 3.97000
7.76900[-95.7%]
pipe_tst4k 4.88000
 31.21700[ -539.7%]
poll_10 0.55800
6.36600[-1040.9%]
poll_100 1.03000
 28.80800[-2696.9%]
poll_1000 6.22600
325.22300[-5123.6%]
poll_w10 0.87400
6.92600[ -692.4%]
poll_w100 3.58700
 31.90000[ -789.3%]
poll_w1000 37.75000
370.52700[ -881.5%]
pread_t100k 27.91500
 30.96100[-10.9%]
pread_t10k 1.80200
2.12800[-18.1%]
pread_t1k 0.80400
1.06700[-32.7%]
pread_u100k 26.29800
 29.48900[-12.1%]
pread_u10k 2.02000
2.29900[-13.8%]
pread_u1k 1.00900
1.28900[-27.8%]
pread_z100k 13.23900
 13.44900[ -1.6%]
pread_z10k 0.80300
1.04900[-30.6%]
pread_z1k 0.52900
0.74800[-41.4%]
pread_zw100k 13.53100
 13.78800[ -1.9%]
pthread_128 20.96154
 48.92859[ -133.4%]
pthread_32 11.50369
 28.69069[ -149.4%]
pthread_512 25.46025
 56.06099[ -120.2%]
pthread_8 6.17237
 11.88600[-92.6%]
pwrite_n100k 0.51900
0.62300[-20.0%]
pwrite_n10k 0.53500
0.62300[-16.4%]
pwrite_n1k 0.51900
0.62300[-20.0%]
pwrite_t100k 37.43300
 44.08900[-17.8%]
pwrite_t10k 2.57200
3.57200[-38.9%]
pwrite_t1k 0.83900
1.15800[-38.0%]
pwrite_u100k 37.78100
 43.70900[-15.7%]
pwrite_u10k 3.37300
4.64700[-37.8%]
pwrite_u1k 1.37100
1.87500[-36.8%]
read_t100k 29.03200
 29.73700[ -2.4%]
read_t10k 1.83400
2.25300[-22.8%]
read_t1k 0.81100
1.01700[-25.4%]
read_u100k 26.00300
 29.30500[-12.7%]
read_u10k 1.82100
2.34100[-28.6%]
read_u1k 1.01300
1.23600[-22.0%]
read_z100k 13.18600
 13.34200[ -1.2%]
read_z10k 0.90200
1.02200[-13.3%]
read_z1k 0.61500
0.72600[-18.0%]
read_zw100k 13.46900
 13.60800[ -1.0%]
realpath_tmp 4.21100
9.24900[ -119.6%]
realpath_usr 3.13000
6.40200[ -104.5%]
recurse 0.90529
0.90529[ +0.0%]
scasecmp_10 0.40550
0.40800[ -0.6%]
scasecmp_1k 49.69800
 49.66400[ +0.1%]
select_10 0.68300
6.67200[ -876.9%]
select_100 2.05500
 30.47700[-1383.1%]
select_1000 15.85100
335.99800[-2019.7%]
select_w10 1.13000
6.86400[ -507.4%]
select_w100 5.75300
 32.41300[ -463.4%]
select_w1000 57.31000
391.89000[ -583.8%]
semop 0.77700
1.31800[-69.6%]
setcontext 2.21300
2.57000[-16.1%]
setsockopt 2.27200
6.72400[ -196.0%]
sigaction 0.46100
0.67200[-45.8%]
siglongjmp 1.01320
1.13920[-12.4%]
signal 39.96100
 60.09700[-50.4%]
sigprocmask 6.27200
7.09100[-13.1%]
socket_i 4.72220
 28.97201[ -513.5%]
socket_u 4.30675
 29.40109[ -582.7%]
socketpair 34.40102
203.11159[ -490.4%]
stat_tmp 1.91500
3.93600[ -105.5%]
stat_usr 1.45000
1.85000[-27.6%]
strchr_10 0.01775
0.01560[+13.8%]
strchr_1k 6.28700
6.26300[ +0.4%]
strcmp_10 0.02570
0.02520[ +2.0%]
strcmp_1k 5.17300
5.16700[ +0.1%]
strcpy_10 0.01360
0.01270[ +7.1%]
strcpy_1k 3.84400
3.82700[ +0.4%]
strftime 19.25500
 19.24800[ +0.0%]
strlen_10 0.01610
0.01415[+13.8%]
strlen_1k 3.84900
3.82600[ +0.6%]
strtol 0.08910
0.08900[ +0.1%]
system 848.61500
 1591.25600[-87.5%]
time 0.99200
1.54000[-55.2%]
times 4.06600
4.67200[-14.9%]
unmap_a128k 0.79800
1.85600[ -132.6%]
unmap_a8k 0.72400
1.75500[ -142.4%]
unmap_ra128k 50.53300
 78.48800[-55.3%]
unmap_ra8k 5.94500
 10.13400[-70.5%]
unmap_rt128k 31.69100
 36.38000[-14.8%]
unmap_rt8k 3.79300
6.05900[-59.7%]
unmap_ru128k 31.83900
 36.19300[-13.7%]
unmap_ru8k 4.00500
5.87800[-46.8%]
unmap_rz128k 49.08000
 79.10200[-61.2%]
unmap_rz8k 5.90200
 10.04400[-70.2%]
unmap_t128k 0.84000
2.00600[ -138.8%]
unmap_t8k 0.76000
1.88100[ -147.5%]
unmap_u128k 0.98700
1.97600[ -100.2%]
unmap_u8k 0.89800
1.88700[ -110.1%]
unmap_wa128k 51.08700
 78.86400[-54.4%]
unmap_wa8k 5.86700
 10.27300[-75.1%]
unmap_wt128k 52.18600
 79.49200[-52.3%]
unmap_wt8k 6.24900
 10.41000[-66.6%]
unmap_wu128k 52.38300
 80.02800[-52.8%]
unmap_wu8k 6.35400
 10.68200[-68.1%]
unmap_wz128k 50.70200
 78.20700[-54.2%]
unmap_wz8k 5.92800
 10.16500[-71.5%]
unmap_z128k 0.81300
1.86400[ -129.3%]
unmap_z8k 0.72700
1.77600[ -144.3%]
write_n100k 0.49500
0.64700[-30.7%]
write_n10k 0.49500
0.66500[-34.3%]
write_n1k 0.49500
0.65600[-32.5%]
write_t100k 81.66700
 80.81800[ +1.1%]
write_t10k 5.00600
5.72100[-14.3%]
write_t1k 1.11900
1.39700[-24.8%]
write_u100k 88.18300
 89.21100[ -1.2%]
write_u10k 5.79800
6.79100[-17.1%]
write_u1k 1.56400
2.03400[-30.1%]
writev_n100k 0.68500
0.83200[-21.5%]
writev_n10k 0.68400
0.83200[-21.6%]
writev_n1k 0.69200
0.82800[-19.7%]
writev_t100k 847.38100
829.68500[ +2.1%]
writev_t10k 83.12800
 81.40200[ +2.1%]
writev_t1k 5.85400
5.98000[ -2.2%]
writev_u100k 926.77600
928.70000[ -0.2%]
writev_u10k 88.42300
 87.24100[ +1.4%]
writev_u1k 6.54000
7.12700[ -9.0%]

_______________________________________________
perf-discuss mailing list
[email protected]

Reply via email to