Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Aug 2010 10:41:35 -0500 (CDT)
From:      "Sean C. Farley" <scf@FreeBSD.org>
To:        Gabor Kovesdan <gabor@FreeBSD.org>
Cc:        current@FreeBSD.org
Subject:   Re: Official request: Please make GNU grep the default
Message-ID:  <alpine.BSF.2.00.1008131034440.35204@thor.farley.org>
In-Reply-To: <4C650B75.3020800@FreeBSD.org>
References:  <4C6505A4.9060203@FreeBSD.org> <4C650B75.3020800@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
  This message is in MIME format.  The first part should be readable text,
  while the remaining parts are likely unreadable without MIME-aware tools.

--56599777-398594934-1281714095=:35204
Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed

On Fri, 13 Aug 2010, Gabor Kovesdan wrote:

> Em 2010.08.13. 10:43, Doug Barton escreveu:
>> My reason is simple, performance. While doing some portmaster work 
>> recently I was regression testing some changes I made to the --index* 
>> options and noticed that things were dramatically slower than the 
>> last time I tested those features. Thinking that I had made a 
>> programming mistake I dug into my code, and while the regexps that I 
>> was using could be tuned for slightly better performance the problem 
>> was not in my code.  I then installed textproc/gnugrep to compare, 
>> and the differences were very dramatic using a highly pessimized test 
>> case (finding a match on the last line of INDEX). The script I used 
>> to test is at http://people.freebsd.org/~dougb/grep-time-trial.sh.txt 
>> and a typical result was:
>> 
>> GNU grep
>> Elapsed time: 2 seconds
>> 
>> BSD grep
>> Elapsed time: 47 seconds
>> 
> Ok, I'll take care of this soon, and make GNU grep default, again with 
> a knob to build BSD grep. I agree with you that we cannot allow such a 
> big performance drawback but I my measures only showed significant 
> differences for very big searches and I didn't imagine that it could 
> add up to such a big diference. I'm sorry for the bad decision I took 
> making it default.

This should trim some time off BSD grep.  It removes the lock/unlock for 
each fgetc() by locking/unlocking the file once.  stdio can be slow.

You probably want to replace flockfile() with ftrylockfile() if threads 
will be involved at some point (threading or making a libgrep that may 
be used in a threaded process).

Sean
-- 
scf@FreeBSD.org
--56599777-398594934-1281714095=:35204
Content-Type: TEXT/PLAIN; charset=US-ASCII; name=grep.patch
Content-Transfer-Encoding: BASE64
Content-ID: <alpine.BSF.2.00.1008131041350.35204@thor.farley.org>
Content-Description: 
Content-Disposition: attachment; filename=grep.patch

SW5kZXg6IGZpbGUuYw0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQ0KLS0tIGZp
bGUuYwkocmV2aXNpb24gMjEwODYyKQ0KKysrIGZpbGUuYwkod29ya2luZyBj
b3B5KQ0KQEAgLTc0LDcgKzc0LDcgQEANCiANCiAJc3dpdGNoIChmaWxlYmVo
YXZlKSB7DQogCWNhc2UgRklMRV9TVERJTzoNCi0JCXJldHVybiAoZmdldGMo
Zi0+ZikpOw0KKwkJcmV0dXJuIChnZXRjX3VubG9ja2VkKGYtPmYpKTsNCiAJ
Y2FzZSBGSUxFX0daSVA6DQogCQlyZXR1cm4gKGd6Z2V0YyhmLT5nemYpKTsN
CiAJY2FzZSBGSUxFX0JaSVA6DQpAQCAtMTg5LDYgKzE4OSw3IEBADQogCWYg
PSBncmVwX21hbGxvYyhzaXplb2YgKmYpOw0KIA0KIAlpZiAoKGYtPmYgPSBm
ZG9wZW4oU1RESU5fRklMRU5PLCAiciIpKSAhPSBOVUxMKSB7DQorCQlmbG9j
a2ZpbGUoZi0+Zik7DQogCQlmLT5zdGRpbiA9IHRydWU7DQogCQlyZXR1cm4g
KGYpOw0KIAl9DQpAQCAtMjM4LDYgKzIzOSw3IEBADQogDQogCXN3aXRjaCAo
ZmlsZWJlaGF2ZSkgew0KIAljYXNlIEZJTEVfU1RESU86DQorCQlmdW5sb2Nr
ZmlsZShmLT5mKTsNCiAJCWZjbG9zZShmLT5mKTsNCiAJCWJyZWFrOw0KIAlj
YXNlIEZJTEVfR1pJUDoNCg==

--56599777-398594934-1281714095=:35204--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?alpine.BSF.2.00.1008131034440.35204>