]> git.saurik.com Git - apt.git/commitdiff
Try avoiding loading long package description
authorAdrian Wielgosik <adrian.wielgosik@gmail.com>
Tue, 2 Feb 2016 17:55:48 +0000 (18:55 +0100)
committerAdrian Wielgosik <adrian.wielgosik@gmail.com>
Tue, 2 Feb 2016 19:51:15 +0000 (20:51 +0100)
It's a fairly expensive call and it's called on every package,
even though it's usually only used when we're interested in
a small number of packages.
Long description is currently only shown by this function
when using `apt search X --full`.

On my PC, this patch speeds up `apt list` by roughly 20%
and `apt list --installed` by 1-2%.

apt-private/private-output.cc

index b8e6dec029b30287b485497d5c1cf7b2c0a0ffe0..458d78dc4774f0cd00f6d49834fab3b63b2013ac 100644 (file)
@@ -290,7 +290,8 @@ void ListSingleVersion(pkgCacheFile &CacheFile, pkgRecords &records,        /*{{{*/
    output = SubstVar(output, "${color:highlight}", _config->Find("APT::Color::Highlight", ""));
    output = SubstVar(output, "${color:neutral}", _config->Find("APT::Color::Neutral", ""));
    output = SubstVar(output, "${Description}", GetShortDescription(CacheFile, records, P));
    output = SubstVar(output, "${color:highlight}", _config->Find("APT::Color::Highlight", ""));
    output = SubstVar(output, "${color:neutral}", _config->Find("APT::Color::Neutral", ""));
    output = SubstVar(output, "${Description}", GetShortDescription(CacheFile, records, P));
-   output = SubstVar(output, "${LongDescription}", GetLongDescription(CacheFile, records, P));
+   if (output.find("${LongDescription}") != string::npos)
+      output = SubstVar(output, "${LongDescription}", GetLongDescription(CacheFile, records, P));
    output = SubstVar(output, "${ }${ }", "${ }");
    output = SubstVar(output, "${ }\n", "\n");
    output = SubstVar(output, "${ }", " ");
    output = SubstVar(output, "${ }${ }", "${ }");
    output = SubstVar(output, "${ }\n", "\n");
    output = SubstVar(output, "${ }", " ");