RESOLVED INVALID 16324
match() spends 15% of self time on switch(), over 0.5% of total time!
https://bugs.webkit.org/show_bug.cgi?id=16324
Summary match() spends 15% of self time on switch(), over 0.5% of total time!
Eric Seidel (no email)
Reported 2007-12-06 02:11:03 PST
match() spends 15% of self time on switch(), over 0.5% of total time! Maybe someone who has a better command of x86 assembler can help understand what's going on here: 1.0% 0x244f64 movzxl (%esi), %ecx pcre_exec.cpp:460 0.5% 0x244f67 movzxl %cl, %eax pcre_exec.cpp:460 1.4% 0x244f6a cmpl $66, %eax pcre_exec.cpp:460 2.4% 0x244f6d ja 0x002450fa pcre_exec.cpp:460 2.4% 0x244f73 movl +117(%ebx, %eax, 4), %eax pcre_exec.cpp:460 1.4% 0x244f7a addl %ebx, %eax pcre_exec.cpp:460 1.4% 0x244f7c jmp %eax pcre_exec.cpp:460 0x244f7e nop pcre_exec.cpp:460 0x244f80 sbbb %al, (%ebx) pcre_exec.cpp:460 0x244f82 addb %al, (%eax) pcre_exec.cpp:460 0x244f84 retf pcre_exec.cpp:460 0x244f85 sbbb (%eax), %al pcre_exec.cpp:460 0x244f87 addb %cl, %bl pcre_exec.cpp:460 0x244f89 sbbb (%eax), %al pcre_exec.cpp:460 0x244f8b addb %ah, +1962934298(%eax) pcre_exec.cpp:460 0x244f91 sbbb (%eax), %al pcre_exec.cpp:460 0x244f93 addb %dh, (0x1e00001a) pcre_exec.cpp:460 0x244f99 sbbb $0, %al pcre_exec.cpp:460 0x244f9b addb %ah, -503316453(%edx) pcre_exec.cpp:460 0x244fa1 sbbl (%eax), %eax pcre_exec.cpp:460 0x244fa3 addb %al, +17(%esi) pcre_exec.cpp:460 0x244fa6 addb %al, (%eax) pcre_exec.cpp:460 0x244fa8 cmpl (%ecx), %ebx pcre_exec.cpp:460 0x244faa addb %al, (%eax) pcre_exec.cpp:460 0x244fac in al, dx pcre_exec.cpp:460 0x244fad sbbb %al, (%eax) pcre_exec.cpp:460 0x244faf addb %bh, +24(%ecx) pcre_exec.cpp:460 0x244fb2 addb %al, (%eax) pcre_exec.cpp:460 0x244fb4 hlt pcre_exec.cpp:460 0x244fb5 pop ss pcre_exec.cpp:460 0x244fb6 addb %al, (%eax) pcre_exec.cpp:460 0x244fb8 cmpsb pcre_exec.cpp:460 0x244fb9 sbbl %eax, (%eax) pcre_exec.cpp:460 0x244fbb addb %bh, +0(%ecx, %ebx) pcre_exec.cpp:460 0x244fbf addb %cl, %dl pcre_exec.cpp:460 0x244fc1 sbbl %eax, (%eax) pcre_exec.cpp:460 0x244fc3 addb %al, (0x500000f) pcre_exec.cpp:460 0x244fc9 sldt (%eax) pcre_exec.cpp:460 0x244fcc addl $83886095, %eax pcre_exec.cpp:460 0x244fd1 sldt (%eax) pcre_exec.cpp:460 0x244fd4 addl $83886095, %eax pcre_exec.cpp:460 0x244fd9 sldt (%eax) pcre_exec.cpp:460 0x244fdc push es pcre_exec.cpp:460 0x244fdd sbbl $486932480, %eax pcre_exec.cpp:460 0x244fe2 addb %al, (%eax) pcre_exec.cpp:460 0x244fe4 fcomp (%eax, %eax) pcre_exec.cpp:460 0x244fe7 addb %al, %ch pcre_exec.cpp:460 0x244fe9 pop ss pcre_exec.cpp:460 0x244fea addb %al, (%eax) pcre_exec.cpp:460 0x244fec ldsl (%edi), %edx pcre_exec.cpp:460 0x244fee addb %al, (%eax) pcre_exec.cpp:460 0x244ff0 ldsl (%edi), %edx pcre_exec.cpp:460 0x244ff2 addb %al, (%eax) pcre_exec.cpp:460 0x244ff4 ldsl (%edi), %edx pcre_exec.cpp:460 0x244ff6 addb %al, (%eax) pcre_exec.cpp:460 0x244ff8 ldsl (%edi), %edx pcre_exec.cpp:460 0x244ffa addb %al, (%eax) pcre_exec.cpp:460 0x244ffc ldsl (%edi), %edx pcre_exec.cpp:460 0x244ffe addb %al, (%eax) pcre_exec.cpp:460 0x245000 insw pcre_exec.cpp:460 0x245001 push ss pcre_exec.cpp:460 0x245002 addb %al, (%eax) pcre_exec.cpp:460 0x245004 insw pcre_exec.cpp:460 0x245005 push ss pcre_exec.cpp:460 0x245006 addb %al, (%eax) pcre_exec.cpp:460 0x245008 movw %ds, (%eax, %eax) pcre_exec.cpp:460 0x24500b addb %bl, +28(%edx) pcre_exec.cpp:460 0x24500e addb %al, (%eax) pcre_exec.cpp:460 0x245010 popl %edx pcre_exec.cpp:460 0x245011 sbbb $0, %al pcre_exec.cpp:460 0x245013 addb %bl, +28(%edx) pcre_exec.cpp:460 0x245016 addb %al, (%eax) pcre_exec.cpp:460 0x245018 popl %edx pcre_exec.cpp:460 0x245019 sbbb $0, %al pcre_exec.cpp:460 0x24501b addb %bl, +28(%edx) pcre_exec.cpp:460 0x24501e addb %al, (%eax) pcre_exec.cpp:460 0x245020 popl %edx pcre_exec.cpp:460 0x245021 sbbb $0, %al pcre_exec.cpp:460 0x245023 addb %ch, -1358954468(%edi) pcre_exec.cpp:460 0x245029 sbbb $0, %al pcre_exec.cpp:460 0x24502b addb %dh, -1795162096(%ebp) pcre_exec.cpp:460 0x245031 adcl $362086400, %eax pcre_exec.cpp:460 0x245036 addb %al, (%eax) pcre_exec.cpp:460 0x245038 xchgl %eax, %ebp pcre_exec.cpp:460 0x245039 adcl $362086400, %eax pcre_exec.cpp:460 0x24503e addb %al, (%eax) pcre_exec.cpp:460 0x245040 xchgl %eax, %ebp pcre_exec.cpp:460 0x245041 adcl $362086400, %eax pcre_exec.cpp:460 0x245046 addb %al, (%eax) pcre_exec.cpp:460 0x245048 xchgl %eax, %ebp pcre_exec.cpp:460 0x245049 adcl $362086400, %eax pcre_exec.cpp:460 0x24504e addb %al, (%eax) pcre_exec.cpp:460 0x245050 adcb $0, %al pcre_exec.cpp:460 0x245053 addb %ah, +20(%ebp) pcre_exec.cpp:460 0x245056 addb %al, (%eax) pcre_exec.cpp:460 0x245058 andl $2566914067, %eax pcre_exec.cpp:460 0x24505d adcl %eax, (%eax) pcre_exec.cpp:460 0x24505f addb %al, +22(%ebp) pcre_exec.cpp:460 0x245062 addb %al, (%eax) pcre_exec.cpp:460 0x245064 aaa pcre_exec.cpp:460 0x245065 addl (%eax), %eax pcre_exec.cpp:460 0x245067 addb %dh, (%edi) pcre_exec.cpp:460 0x245069 addl (%eax), %eax pcre_exec.cpp:460 0x24506b addb %dh, (%edi) pcre_exec.cpp:460 0x24506d addl (%eax), %eax pcre_exec.cpp:460 0x24506f addb %dh, +1962934293(%edx) pcre_exec.cpp:460 0x245075 push cs pcre_exec.cpp:460 0x245076 addb %al, (%eax) pcre_exec.cpp:460 0x245078 aadl $13 pcre_exec.cpp:460 0x24507a addb %al, (%eax) pcre_exec.cpp:460 0x24507c incl %ebp pcre_exec.cpp:460 0x24507d orl $210370560, %eax pcre_exec.cpp:460 0x245082 addb %al, (%eax) pcre_exec.cpp:460 0x245084 jge 0x00245092 pcre_exec.cpp:460 0x245086 addb %al, (%eax) pcre_exec.cpp:460 0x245088 addl $2005598208, (%ecx) pcre_exec.cpp:460 0x24508e orb $139, %al pcre_exec.cpp:460
Attachments
Gavin Barraclough
Comment 1 2011-09-06 22:33:41 PDT
This is a proposed optimization for PCRE; we no longer use PCRE.
Note You need to log in before you can comment on or make changes to this bug.