Date: Mon, 16 Aug 2010 21:18:38 +0200 From: Gabor Kovesdan <gabor@FreeBSD.org> To: Dimitry Andric <dimitry@andric.com> Cc: Doug Barton <dougb@FreeBSD.org>, Justin Hibbits <chmeeedalf@gmail.com>, core@freebsd.org, delphij@freebsd.org, Steve Kargl <sgk@troutmask.apl.washington.edu>, =?UTF-8?B?RGFnLUVybGluZyBTbcO4cmdyYXY=?= <des@des.no>, current@freebsd.org Subject: Re: Official request: Please make GNU grep the default Message-ID: <4C698F0E.5080408@FreeBSD.org> In-Reply-To: <4C6844D8.5070602@andric.com> References: <4C6505A4.9060203@FreeBSD.org> <20100813085235.GA16268@freebsd.org> <4C66C010.3040308@FreeBSD.org> <4C673F02.8000805@FreeBSD.org> <20100815013438.GA8958@troutmask.apl.washington.edu> <4C67492C.5020206@FreeBSD.org> <B7A05068-9578-4341-851B-86BD9BC7A2DA@gmail.com> <8639ufd78w.fsf@ds4.des.no> <4C6844D8.5070602@andric.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Em 2010.08.15. 21:49, Dimitry Andric escreveu: > GNU grep > Elapsed time: 57 seconds > > BSD grep (original) > Elapsed time: 820 seconds (~14.4x slower than GNU grep) > > BSD grep (quickfixed) > Elapsed time: 115 seconds (~2.0x slower than GNU grep) > > It proves that getting rid of the fgetc's is certainly worthwhile, and I > have attached a more complete patch that: > > - Replaces the horrendously inefficient grep_fgetln() with mostly the > same implementation as the libc fgetln() function. > - Uses plain file descriptors instead of struct FILE, since the > buffering is done manually anyway, and it makes it easier to support > gzip and bzip2. > - Let the bzip2 reader just read the file as plain data, when the > initial magic number doesn't match, mimicking the behaviour of GNU > grep. > > There is probably more room for optimization, but let's see if this > survives a bunch of tests first. :) > Thanks Dmitry, I've also started to work on a similar solution but you were extremely fast. :) I'm checking your patch just now and will tell my experiences if I see any regression. Gabor
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4C698F0E.5080408>