This is a diff against the othersrc/usr.bin/grep code at 20031108 at 2150 UTC. It is a first stab at bringing in the "faster" code from OpenBSD. 20031108a is with the fast algorithm. The tests were done on my system after a reboot. The machine is running NetBSD 1.6Y/i386. It has an AMDK6-2 500MHz CPU with 384MB RAM. 1. grep halibut /usr/share/dict/words >/dev/null Othersrc grep version 20031108 real 0.65 user 0.19 sys 0.02 0 maximum resident set size 0 average shared memory size 0 average unshared data size 0 average unshared stack size 208 page reclaims 123 page faults 0 swaps 3 block input operations 0 block output operations 0 messages sent 0 messages received 0 signals received 126 voluntary context switches 11 involuntary context switches GNU grep 2.5.1 real 0.48 user 0.00 sys 0.05 0 maximum resident set size 0 average shared memory size 0 average unshared data size 0 average unshared stack size 68 page reclaims 6 page faults 0 swaps 3 block input operations 1 block output operations 0 messages sent 0 messages received 0 signals received 53 voluntary context switches 2 involuntary context switches 2. grep -r 386 /usr/src/sys/arch >/dev/null Othersrc grep 20031108 real 150.14 user 5.97 sys 6.89 0 maximum resident set size 0 average shared memory size 0 average unshared data size 0 average unshared stack size 14520 page reclaims 24978 page faults 0 swaps 2474 block input operations 408 block output operations 0 messages sent 0 messages received 0 signals received 27447 voluntary context switches 217 involuntary context switches GNU grep 2.5.1 real 145.78 user 1.65 sys 8.24 0 maximum resident set size 0 average shared memory size 0 average unshared data size 0 average unshared stack size 1673 page reclaims 6 page faults 0 swaps 2474 block input operations 985 block output operations 0 messages sent 0 messages received 0 signals received 25773 voluntary context switches 104 involuntary context switches With OpenBSD fast algorithm: 1. grep halibut /usr/share/dict/words grep version 20031108a /usr/bin/time -lp /usr/local/bin/grep halibut /usr/share/dict/words real 0.62 user 0.15 sys 0.01 0 maximum resident set size 0 average shared memory size 0 average unshared data size 0 average unshared stack size 206 page reclaims 127 page faults 0 swaps 3 block input operations 0 block output operations 0 messages sent 0 messages received 0 signals received 130 voluntary context switches 3 involuntary context switches # 2. grep -r 386 /usr/src/sys/arch grep version 20031108a real 150.65 user 6.73 sys 7.17 0 maximum resident set size 0 average shared memory size 0 average unshared data size 0 average unshared stack size 14519 page reclaims 24919 page faults 0 swaps 2474 block input operations 416 block output operations 0 messages sent 0 messages received 0 signals received 27388 voluntary context switches 285 involuntary context switches