[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Changes to grep/manual/html_node/Performance.html,v
From: |
Jim Meyering |
Subject: |
Changes to grep/manual/html_node/Performance.html,v |
Date: |
Sat, 14 Aug 2021 16:46:44 -0400 (EDT) |
CVSROOT: /webcvs/grep
Module name: grep
Changes by: Jim Meyering <meyering> 21/08/14 16:46:41
Index: html_node/Performance.html
===================================================================
RCS file: /webcvs/grep/grep/manual/html_node/Performance.html,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -b -r1.3 -r1.4
--- html_node/Performance.html 28 Sep 2020 03:36:49 -0000 1.3
+++ html_node/Performance.html 14 Aug 2021 20:46:41 -0000 1.4
@@ -1,8 +1,11 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
+<!-- Created by GNU Texinfo 6.8, https://www.gnu.org/software/texinfo/ -->
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<!-- This manual is for grep, a pattern matching engine.
-Copyright (C) 1999-2002, 2005, 2008-2020 Free Software Foundation,
+Copyright (C) 1999-2002, 2005, 2008-2021 Free Software Foundation,
Inc.
Permission is granted to copy, distribute and/or modify this document
@@ -11,65 +14,55 @@
Invariant Sections, with no Front-Cover Texts, and with no Back-Cover
Texts. A copy of the license is included in the section entitled
"GNU Free Documentation License". -->
-<!-- Created by GNU Texinfo 6.5, http://www.gnu.org/software/texinfo/ -->
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
-<title>Performance (GNU Grep 3.5)</title>
+<title>Performance (GNU Grep 3.7)</title>
-<meta name="description" content="Performance (GNU Grep 3.5)">
-<meta name="keywords" content="Performance (GNU Grep 3.5)">
+<meta name="description" content="Performance (GNU Grep 3.7)">
+<meta name="keywords" content="Performance (GNU Grep 3.7)">
<meta name="resource-type" content="document">
<meta name="distribution" content="global">
<meta name="Generator" content="makeinfo">
-<link href="index.html#Top" rel="start" title="Top">
-<link href="Index.html#Index" rel="index" title="Index">
+<meta name="viewport" content="width=device-width,initial-scale=1">
+
+<link href="index.html" rel="start" title="Top">
+<link href="Index.html" rel="index" title="Index">
<link href="index.html#SEC_Contents" rel="contents" title="Table of Contents">
-<link href="index.html#Top" rel="up" title="Top">
-<link href="Reporting-Bugs.html#Reporting-Bugs" rel="next" title="Reporting
Bugs">
-<link href="Usage.html#Usage" rel="prev" title="Usage">
+<link href="index.html" rel="up" title="Top">
+<link href="Reporting-Bugs.html" rel="next" title="Reporting Bugs">
+<link href="Usage.html" rel="prev" title="Usage">
<style type="text/css">
<!--
+a.copiable-anchor {visibility: hidden; text-decoration: none; line-height: 0em}
a.summary-letter {text-decoration: none}
blockquote.indentedblock {margin-right: 0em}
-blockquote.smallindentedblock {margin-right: 0em; font-size: smaller}
-blockquote.smallquotation {font-size: smaller}
div.display {margin-left: 3.2em}
div.example {margin-left: 3.2em}
-div.lisp {margin-left: 3.2em}
-div.smalldisplay {margin-left: 3.2em}
-div.smallexample {margin-left: 3.2em}
-div.smalllisp {margin-left: 3.2em}
kbd {font-style: oblique}
pre.display {font-family: inherit}
pre.format {font-family: inherit}
pre.menu-comment {font-family: serif}
pre.menu-preformatted {font-family: serif}
-pre.smalldisplay {font-family: inherit; font-size: smaller}
-pre.smallexample {font-size: smaller}
-pre.smallformat {font-family: inherit; font-size: smaller}
-pre.smalllisp {font-size: smaller}
span.nolinebreak {white-space: nowrap}
span.roman {font-family: initial; font-weight: normal}
span.sansserif {font-family: sans-serif; font-weight: normal}
+span:hover a.copiable-anchor {visibility: visible}
ul.no-bullet {list-style: none}
-->
</style>
-<link rel="stylesheet" type="text/css" href="/software/gnulib/manual.css">
+<link rel="stylesheet" type="text/css"
href="https://www.gnu.org/software/gnulib/manual.css">
</head>
<body lang="en">
-<a name="Performance"></a>
+<div class="chapter" id="Performance">
<div class="header">
<p>
-Next: <a href="Reporting-Bugs.html#Reporting-Bugs" accesskey="n"
rel="next">Reporting Bugs</a>, Previous: <a href="Usage.html#Usage"
accesskey="p" rel="prev">Usage</a>, Up: <a href="index.html#Top" accesskey="u"
rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index"
rel="index">Index</a>]</p>
+Next: <a href="Reporting-Bugs.html" accesskey="n" rel="next">Reporting
bugs</a>, Previous: <a href="Usage.html" accesskey="p" rel="prev">Usage</a>,
Up: <a href="index.html" accesskey="u" rel="up">grep</a> [<a
href="index.html#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="Index.html" title="Index"
rel="index">Index</a>]</p>
</div>
<hr>
-<a name="Performance-1"></a>
-<h2 class="chapter">5 Performance</h2>
+<span id="Performance-1"></span><h2 class="chapter">5 Performance</h2>
-<a name="index-performance"></a>
+<span id="index-performance"></span>
<p>Typically <code>grep</code> is an efficient way to search text. However,
it can be quite slow in some cases, and it can search large files
where even minor performance tweaking can help significantly.
@@ -84,7 +77,7 @@
searching algorithm is used to match a single fixed pattern, and the
Aho–Corasick algorithm is used to match multiple fixed patterns.
</p>
-<a name="index-locales"></a>
+<span id="index-locales"></span>
<p>Generally speaking <code>grep</code> operates more efficiently in
single-byte locales, since it can avoid the special processing needed
for multi-byte characters. If your patterns will work just as well
@@ -92,31 +85,31 @@
performance considerably. Setting ‘<samp>LC_ALL='C'</samp>’ can be
particularly efficient, as <code>grep</code> is tuned for that locale.
</p>
-<a name="index-case-insensitive-search-1"></a>
+<span id="index-case-insensitive-search-1"></span>
<p>Outside the ‘<samp>C</samp>’ locale, case-insensitive search,
and search for
bracket expressions like ‘<samp>[a-z]</samp>’ and
‘<samp>[[=a=]b]</samp>’, can be
surprisingly inefficient due to difficulties in fast portable access to
concepts like multi-character collating elements.
</p>
-<a name="index-back_002dreferences"></a>
+<span id="index-back_002dreferences"></span>
<p>A back-reference such as ‘<samp>\1</samp>’ can hurt performance
significantly
in some cases, since back-references cannot in general be implemented
via a finite state automaton, and instead trigger a backtracking
algorithm that can be quite inefficient. For example, although the
pattern ‘<samp>^(.*)\1{14}(.*)\2{13}$</samp>’ matches only lines
whose
-lengths can be written as a sum <em>15x + 14y</em> for nonnegative
-integers <em>x</em> and <em>y</em>, the pattern matcher does not perform
+lengths can be written as a sum <em class='math'>15x + 14y</em> for nonnegative
+integers <em class='math'>x</em> and <em class='math'>y</em>, the pattern
matcher does not perform
linear Diophantine analysis and instead backtracks through all
possible matching strings, using an algorithm that is exponential in
the worst case.
</p>
-<a name="index-holes-in-files"></a>
+<span id="index-holes-in-files"></span>
<p>On some operating systems that support files with holes—large
regions of zeros that are not physically present on secondary
storage—<code>grep</code> can skip over the holes efficiently without
needing to read the zeros. This optimization is not available if the
-<samp>-a</samp> (<samp>--binary-files=text</samp>) option is used (see <a
href="File-and-Directory-Selection.html#File-and-Directory-Selection">File and
Directory Selection</a>), unless the <samp>-z</samp> (<samp>--null-data</samp>)
-option is also used (see <a href="Other-Options.html#Other-Options">Other
Options</a>).
+<samp>-a</samp> (<samp>--binary-files=text</samp>) option is used (see <a
href="File-and-Directory-Selection.html">File and Directory Selection</a>),
unless the <samp>-z</samp> (<samp>--null-data</samp>)
+option is also used (see <a href="Other-Options.html">Other Options</a>).
</p>
<p>For more about the algorithms used by <code>grep</code> and about
related string matching algorithms, see:
@@ -146,10 +139,11 @@
performance of <code>grep</code> in the future.
</li></ul>
+</div>
<hr>
<div class="header">
<p>
-Next: <a href="Reporting-Bugs.html#Reporting-Bugs" accesskey="n"
rel="next">Reporting Bugs</a>, Previous: <a href="Usage.html#Usage"
accesskey="p" rel="prev">Usage</a>, Up: <a href="index.html#Top" accesskey="u"
rel="up">Top</a> [<a href="index.html#SEC_Contents" title="Table of
contents" rel="contents">Contents</a>][<a href="Index.html#Index" title="Index"
rel="index">Index</a>]</p>
+Next: <a href="Reporting-Bugs.html">Reporting bugs</a>, Previous: <a
href="Usage.html">Usage</a>, Up: <a href="index.html">grep</a> [<a
href="index.html#SEC_Contents" title="Table of contents"
rel="contents">Contents</a>][<a href="Index.html" title="Index"
rel="index">Index</a>]</p>
</div>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Changes to grep/manual/html_node/Performance.html,v,
Jim Meyering <=