From 49521f87851089bdb4097b715d09a8bd348aa60a Mon Sep 17 00:00:00 2001 From: Julian Andres Klode Date: Wed, 28 Sep 2016 00:49:45 +0200 Subject: Do not use MD5SumValue for Description_md5() Our profile says we spend about 5% of the time transforming the hex digits into the binary format used by HashsumValue, all for comparing them against the other strings. That makes no sense at all. According to callgrind, this reduces the overall instruction count from 5,3 billion to 5 billion in my example, which roughly matches the 5%. --- apt-pkg/edsp/edsplistparser.cc | 5 +++-- apt-pkg/edsp/edsplistparser.h | 5 ++++- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'apt-pkg/edsp') diff --git a/apt-pkg/edsp/edsplistparser.cc b/apt-pkg/edsp/edsplistparser.cc index c6fd528da..4119639a6 100644 --- a/apt-pkg/edsp/edsplistparser.cc +++ b/apt-pkg/edsp/edsplistparser.cc @@ -20,6 +20,7 @@ #include #include #include +#include #include @@ -53,9 +54,9 @@ std::vector edspLikeListParser::AvailableDescriptionLanguages() { return {}; } -MD5SumValue edspLikeListParser::Description_md5() +APT::StringView edspLikeListParser::Description_md5() { - return MD5SumValue(""); + return APT::StringView(); } /*}}}*/ // ListParser::VersionHash - Compute a unique hash for this version /*{{{*/ diff --git a/apt-pkg/edsp/edsplistparser.h b/apt-pkg/edsp/edsplistparser.h index 84138d6a8..4904b6567 100644 --- a/apt-pkg/edsp/edsplistparser.h +++ b/apt-pkg/edsp/edsplistparser.h @@ -24,12 +24,15 @@ #include #endif +namespace APT { + class StringView; +} class APT_HIDDEN edspLikeListParser : public debListParser { public: virtual bool NewVersion(pkgCache::VerIterator &Ver) APT_OVERRIDE; virtual std::vector AvailableDescriptionLanguages() APT_OVERRIDE; - virtual MD5SumValue Description_md5() APT_OVERRIDE; + virtual APT::StringView Description_md5() APT_OVERRIDE; virtual unsigned short VersionHash() APT_OVERRIDE; bool LoadReleaseInfo(pkgCache::RlsFileIterator &FileI,FileFd &File, -- cgit v1.2.3