<feed xmlns='http://www.w3.org/2005/Atom'>
<title>apt/apt-pkg/pkgcachegen.h, branch 1.4_rc2</title>
<subtitle>Debians commandline package manager</subtitle>
<id>https://git.kalnischkies.de/apt/atom?h=1.4_rc2</id>
<link rel='self' href='https://git.kalnischkies.de/apt/atom?h=1.4_rc2'/>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/'/>
<updated>2016-11-22T21:58:33Z</updated>
<entry>
<title>Do not use MD5SumValue for Description_md5()</title>
<updated>2016-11-22T21:58:33Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-09-27T22:49:45Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=49521f87851089bdb4097b715d09a8bd348aa60a'/>
<id>urn:sha1:49521f87851089bdb4097b715d09a8bd348aa60a</id>
<content type='text'>
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%.
</content>
</entry>
<entry>
<title>deal better with (very) small apt::cache-start values</title>
<updated>2016-01-26T23:15:12Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-01-26T23:15:12Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a133f79c8766aee5b7d7811285e60b3d311d8473'/>
<id>urn:sha1:a133f79c8766aee5b7d7811285e60b3d311d8473</id>
<content type='text'>
It is a bit academic to support values which aren't big enough to fit even
the hashtables without resizing, but cleaning up ensures that we do the
right thing (aka not segfaulting) even if something goes wrong in these
deep layers. You still can't have very very small values through…

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>convert Version() and Architecture() to APT::StringView</title>
<updated>2016-01-26T22:18:05Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-01-26T22:18:05Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=8efd5947bf7de0fc3db51b4871bcf3522018761d'/>
<id>urn:sha1:8efd5947bf7de0fc3db51b4871bcf3522018761d</id>
<content type='text'>
Part of hidden classes, so conversion is abi-free.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>remove unused Description methods in listparsers</title>
<updated>2016-01-26T20:58:57Z</updated>
<author>
<name>David Kalnischkies</name>
<email>david@kalnischkies.de</email>
</author>
<published>2016-01-26T20:58:57Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=02ceb810fe0de9b267a8b6a302505967afce6b5a'/>
<id>urn:sha1:02ceb810fe0de9b267a8b6a302505967afce6b5a</id>
<content type='text'>
These virtual methods are implemented in hidden classes, so we can drop
them without breaking the ABI.

Git-Dch: Ignore
</content>
</entry>
<entry>
<title>Delete copy constructor and operator= for Dynamic</title>
<updated>2016-01-26T11:45:32Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-01-26T11:42:39Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=96f66f82cfcd3f21f73542375f9c722ac907c076'/>
<id>urn:sha1:96f66f82cfcd3f21f73542375f9c722ac907c076</id>
<content type='text'>
This would mess up reference counting and should not be allowed
(it could be implemented correctly, but it would not be efficient
and we do not need it).

Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>Pass the old map size to ReMap()</title>
<updated>2016-01-23T14:13:04Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-01-23T14:02:48Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=19819ac58a420275e0ae9aa7e2a34c72cba8af5e'/>
<id>urn:sha1:19819ac58a420275e0ae9aa7e2a34c72cba8af5e</id>
<content type='text'>
This allows us to check if a value to be remapped was inside
the cache or not, which will become useful at a later point.

Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>pkgCacheGenerator::hash: Do not call tolower_ascii()</title>
<updated>2016-01-08T00:34:53Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-01-08T00:34:53Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=a0e3c0f55dc20b90f5f7d6d162135c9fef370686'/>
<id>urn:sha1:a0e3c0f55dc20b90f5f7d6d162135c9fef370686</id>
<content type='text'>
Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>pkgCacheGenerator::StoreString: Get rid of std::string</title>
<updated>2016-01-08T00:30:18Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-01-08T00:27:01Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=869700d839a1695fe00734592bd504d59386e4b9'/>
<id>urn:sha1:869700d839a1695fe00734592bd504d59386e4b9</id>
<content type='text'>
Instead of storing a string -&gt; map_stringitem_t mapping, create
our own data type that can point to either a normal string or
a string inside the cache.

This avoids the creation of any string and improves performance
slightly (about 4%).
</content>
</entry>
<entry>
<title>pkgCacheGenerator: Use StringView for toString</title>
<updated>2016-01-07T23:41:14Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-01-07T23:41:14Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=dd592790c8f1be4925f74266742c163516ab80c7'/>
<id>urn:sha1:dd592790c8f1be4925f74266742c163516ab80c7</id>
<content type='text'>
This removes some minor overhead.

Gbp-Dch: ignore
</content>
</entry>
<entry>
<title>Switch performance critical code to use APT::StringView</title>
<updated>2016-01-07T18:59:08Z</updated>
<author>
<name>Julian Andres Klode</name>
<email>jak@debian.org</email>
</author>
<published>2016-01-07T18:16:23Z</published>
<link rel='alternate' type='text/html' href='https://git.kalnischkies.de/apt/commit/?id=eff0c22e59e65b6b63e854ff41eb091278e05714'/>
<id>urn:sha1:eff0c22e59e65b6b63e854ff41eb091278e05714</id>
<content type='text'>
This improves performance of the cache generation on my
ARM platform (4x Cortex A15) by about 10% to 20% from
2.35-2.50 to 2.1 seconds.
</content>
</entry>
</feed>
