Releases: Genivia/ugrep
ugrep v3.12.5
New --iglob
and --glob-ignore-case
options, as requested by ugrep users.
ugrep v3.12.4
Even faster search for common search patterns, such as sets of words, using additional SIMD AVX and neon/AArch64 intrinsics.
Benchmarking on a MacBook M1 Pro 16GB LPDDR5
Searching for sets of words in an 100MB benchmark file. Elapsed time is the average of 100 searches with random word sets of increasing size per data point in the log-log graph (i.e. each point in the graph is the average of 100 trials). Ugrep easily beats ripgrep and GNU grep up to 256 words searched. For larger sets of words, ugrep and ripgrep are more close, with a slight advantage for ripgrep. Ripgrep uses letter frequency search heuristics, which work very well to search English text corpora, such as this large benchmark file (but otherwise may perform not as efficient):
All benchmark scripts are available upon request.
Benchmarking on a MacBook Pro 2.9 GHz Intel Core i7 16 GB 2133 MHz LPDDR3
Searching for sets of words in an 100MB benchmark file. Elapsed time is the average of 100 searches with random word sets of increasing size per data point in the log-log graph (i.e. each point in the graph is the average of 100 trials). Ugrep and ripgrep performance is similar. Ripgrep has a bug when searching 32 words and produces the wrong results which we discovered weeks ago due to ripgrep's use of letter frequency search heuristics, which work very well for English corpora, such as this large benchmark file, but can be buggy. These buggy data points were removed from this graph to be fair:
All benchmark scripts are available upon request.
What's next?
Stay tuned for more additions (and even faster searching) coming soon!
ugrep v3.12.3
Speed improvements to further speed up common search patterns. Improved man page. The ug and ug+ commands now enable --pretty
by default (that is, if a .ugrep configuration file does not override it with no-pretty
). Fixed a potential pattern match issue in the new v3.12.2 optimizations. Working on additional SIMD optimizations with SSE/AVX and neon/AArch64 to make ugrep even faster. Correctness is most important, so optimizations are incrementally released and extensively tested.
ugrep v3.12.2
Speed improvements to further speed up common search patterns. Improved man page. The ug and ug+ commands now enable --pretty
by default (that is, if a .ugrep configuration file does not override it with no-pretty
).
ugrep v3.12.1
New ug+ and ugrep+ commands to search pdfs, documents and image metadata when the corresponding tools are installed, includes a runtime check for tool availability; improved --filter
option; speed improvements.
Ugrep runs faster than grep and ripgrep on Apple Silicon M1 and x64 machines for most common searches, such as searching for a few words to tens and hundreds of words in large files. It depends on the available hardware and the complexity of the search patterns.
Experiments on a MacBook PRO M1. The average elapsed time of 100 test runs of ugrep, ripgrep and GNU grep with increasing number of randomly picked words from the enwik8 100MB benchmark file:
Results are for ugrep -on -f words enwik8
to search with line numbers and option -o
to reduce output overhead. The performance of ugrep is better than ripgrep and better than GNU grep for smaller sets of strings to search. However, ugrep and ripgrep are more or less comparable when searching more strings and when searching more complex regex patterns. It depends.
ugrep v3.12.0
New ug+ and ugrep+ commands to search pdfs, documents and image metadata when the corresponding tools are installed; improved --filter
option; speed improvements.
Ugrep runs faster than grep and ripgrep on Apple Silicon M1 and x64 machines for most common searches, such as searching for a few words to tens and hundreds of words in large files. It depends on the available hardware and the complexity of the search patterns.
ugrep v3.11.2
This update includes usability improvements. We improved option --hyperlink
to optionally take parameters PREFIX
and +
. The PREFIX
parameter replaces file://
in the link with a custom PREFIX://
. The +
included the line number in the link, and when ugrep option -k
is used, also includes the column number in the link.
ugrep v3.11.1
Smarter interactive navigation in the TUI when option --tree
is used with option -l
or -c
, enabling the navigation keys CTRL-S (jump forward), CTRL-W jump backward), TAB (chdir into directory and save query state), SHIFT-TAB (chdir .. and restore query state), CTRL-Y (view file).
ugrep v3.11.0
Updated --format
output when used with option -o
by also enabling option -u
to show all matches automatically; improved --json
, --xml
, --csv
output when used with option -o
; updated option -o
output with headings (when applicable) for every match like GNU grep; updated options --format
and --replace
field %m
to output the number of matches sequentially; new --format
and --replace
field %M
outputs number of matching lines.
ugrep v3.10.1
Fixed a performance issue with specific regex patterns when used with case-insensitive pattern matching.