git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: pcre performance, was Re: git log filtering

From
Paolo Bonzini <paolo.bonzini@lu.unisi.ch>
Date
Mar 7, 2007, 18:03 UTC
Message-ID
<45EEFE74.1090309@lu.unisi.ch>
In-Reply-To
<Pine.LNX.4.63.0703071807250.22628@wbgn013.biozentrum.uni-wuerzburg.de>
> Result: external grep wins hands-down. GNU regex loses hands-down. pcre 
> seems to be better than glibc's regex engine, and gains ever so slightly 
> when using NO_MMAP.

Indeed GNU regex 0.12 loses, and that's why it was rewritten for (IIRC) glibc 2.3. Older glibc's use code derived from GNU regex 0.12; but the old GNU regex code is dead in general (maybe it survives in Emacs -- but I don't remember), and the glibc regex code can be used by external programs via gnulib.

glibc is slower than PCRE mostly because it is internationalized. So for example it supports things like stra[.ss.]e matching both strasse and straße in a German locale, or [[=a=]] matching aàáäâ and possibly more variations. In theory. In practice I couldn't make it work while writing this message...

External grep wins hands-down because it's a DFA engine. If the regex uses backreferences (or the above esoteric constructs), however, external grep will not be able to give a definite answer using the fast engine, and will fall back to glibc regex.

Paolo
Previous: Johannes SchindelinNext: Horst H. von Brand
Message 33 of 34 in “git log filtering”
  1. Don ZickusFeb 7, 2007
  2. Jakub NarebskiFeb 7, 2007
  3. Uwe Kleine-KönigFeb 7, 2007
  4. Johannes SchindelinFeb 7, 2007
  5. Linus TorvaldsFeb 7, 2007
  6. Johannes SchindelinFeb 7, 2007
  7. Linus TorvaldsFeb 7, 2007
  8. Fix "git log -z" behaviourLinus Torvalds, Feb 7, 2007
  9. Junio C HamanoFeb 7, 2007
  10. Don ZickusFeb 7, 2007
  11. Linus TorvaldsFeb 7, 2007
  12. Junio C HamanoFeb 8, 2007
  13. Junio C HamanoFeb 10, 2007
  14. Junio C HamanoFeb 10, 2007
  15. Linus TorvaldsFeb 10, 2007
  16. Don ZickusFeb 7, 2007
  17. Linus TorvaldsFeb 7, 2007
  18. Linus TorvaldsFeb 7, 2007
  19. Junio C HamanoFeb 7, 2007
  20. Linus TorvaldsFeb 7, 2007
  21. Jeff KingFeb 8, 2007
  22. Johannes SchindelinFeb 8, 2007
  23. Jeff KingFeb 8, 2007
  24. Johannes SchindelinFeb 9, 2007
  25. Shawn O. PearceFeb 9, 2007
  26. Johannes SchindelinFeb 9, 2007
  27. Sergey VlasovFeb 9, 2007
  28. Jeff KingFeb 9, 2007
  29. Johannes SchindelinFeb 9, 2007
  30. Jeff KingFeb 9, 2007
  31. Johannes SchindelinFeb 9, 2007
  32. pcre performance, was Re: git log filteringJohannes Schindelin, Mar 7, 2007
  33. Paolo BonziniMar 7, 2007
  34. Horst H. von BrandFeb 8, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.