https://redmine.named-data.net/https://redmine.named-data.net/favicon.ico?14759811232016-10-11T12:41:10ZNDN project issue tracking systemNFD - Task #3807: Content store profilinghttps://redmine.named-data.net/issues/3807?journal_id=172322016-10-11T12:41:10ZChengyu Fan
<ul><li><strong>File</strong> <a href="/attachments/672">callgrind_nfd_0.5.0_cs_benchmark_FindMissInsert.out</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/672/callgrind_nfd_0.5.0_cs_benchmark_FindMissInsert.out">callgrind_nfd_0.5.0_cs_benchmark_FindMissInsert.out</a> added</li><li><strong>File</strong> <a href="/attachments/673">callgrind_nfd_0.5.0_cs_benchmark_InsertFindHit.out</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/673/callgrind_nfd_0.5.0_cs_benchmark_InsertFindHit.out">callgrind_nfd_0.5.0_cs_benchmark_InsertFindHit.out</a> added</li><li><strong>File</strong> <a href="/attachments/674">callgrind_nfd_0.5.0_cs_benchmark_Leftmost.out</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/674/callgrind_nfd_0.5.0_cs_benchmark_Leftmost.out">callgrind_nfd_0.5.0_cs_benchmark_Leftmost.out</a> added</li><li><strong>File</strong> <a href="/attachments/675">callgrind_nfd_0.5.0_cs_benchmark_Rightmost.out</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/675/callgrind_nfd_0.5.0_cs_benchmark_Rightmost.out">callgrind_nfd_0.5.0_cs_benchmark_Rightmost.out</a> added</li></ul><p>Uploaded the callgrind output files for cs-benchmark. Each test case has its own callgrind file.</p>
<p>According to the output file:</p>
<ol>
<li><p>For test cases "insertFindHit" and "findMissInsert", the major contributor are</p>
<p>nfd::cs::EntryImpl::operator<(nfd::cs::EntryImpl const&) const 91%<br>
ndn::Name::compare(unsigned long, unsigned long, ndn::Name const& ...) 80%</p></li>
<li><p>nfd::cs::compareDataWithData() uses much more time than nfd::cs::compareQueryWithData(): 63% vs. 27%</p></li>
<li><p>ndn::name::Component::compare() uses half of the running time </p></li>
</ol>
NFD - Task #3807: Content store profilinghttps://redmine.named-data.net/issues/3807?journal_id=172342016-10-11T13:58:09ZDavide Pesavento
<ul><li><strong>Target version</strong> changed from <i>v0.5</i> to <i>v0.6</i></li></ul><p>v0.5 has already been released.</p>
NFD - Task #3807: Content store profilinghttps://redmine.named-data.net/issues/3807?journal_id=172352016-10-11T14:10:55ZJunxiao Shi
<ul></ul><blockquote>
<p><code>ndn::name::Component::compare()</code> uses half of the running time</p>
</blockquote>
<p><a href="https://gerrit.named-data.net/3262">https://gerrit.named-data.net/3262</a> is an attempt to optimize <code>name::Component::compare</code>. Can <a class="user active user-mention" href="https://redmine.named-data.net/users/50">@Chengyu Fan</a> run profiling again with this patch?</p>
NFD - Task #3807: Content store profilinghttps://redmine.named-data.net/issues/3807?journal_id=172362016-10-11T16:12:13ZChengyu Fan
<ul></ul><p>Junxiao Shi wrote:</p>
<blockquote>
<blockquote>
<p><code>ndn::name::Component::compare()</code> uses half of the running time</p>
</blockquote>
<p><a href="https://gerrit.named-data.net/3262">https://gerrit.named-data.net/3262</a> is an attempt to optimize <code>name::Component::compare</code>. Can <a class="user active user-mention" href="https://redmine.named-data.net/users/50">@Chengyu Fan</a> run profiling again with this patch?</p>
</blockquote>
<p>Will do</p>
NFD - Task #3807: Content store profilinghttps://redmine.named-data.net/issues/3807?journal_id=173302016-10-19T12:33:36ZChengyu Fanchengyu@cs.colostate.edu
<ul><li><strong>File</strong> <a href="/attachments/679">callgrind_nfd_0.5.0_cs_benchmark_FindMissInsert_with_gerrit_name-component-3262.out</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/679/callgrind_nfd_0.5.0_cs_benchmark_FindMissInsert_with_gerrit_name-component-3262.out">callgrind_nfd_0.5.0_cs_benchmark_FindMissInsert_with_gerrit_name-component-3262.out</a> added</li><li><strong>File</strong> <a href="/attachments/678">callgrind_nfd_0.5.0_cs_benchmark_InsertFindHit_with_gerrit_name-component-3262.out</a> <a class="icon-only icon-download" title="Download" href="/attachments/download/678/callgrind_nfd_0.5.0_cs_benchmark_InsertFindHit_with_gerrit_name-component-3262.out">callgrind_nfd_0.5.0_cs_benchmark_InsertFindHit_with_gerrit_name-component-3262.out</a> added</li><li><strong>% Done</strong> changed from <i>0</i> to <i>100</i></li></ul><p>Junxiao Shi wrote:</p>
<blockquote>
<blockquote>
<p><code>ndn::name::Component::compare()</code> uses half of the running time</p>
</blockquote>
<p><a href="https://gerrit.named-data.net/3262">https://gerrit.named-data.net/3262</a> is an attempt to optimize <code>name::Component::compare</code>. Can <a class="user active user-mention" href="https://redmine.named-data.net/users/50">@Chengyu Fan</a> run profiling again with this patch?</p>
</blockquote>
<p>I have run the profiling again with gerrit patch 3262 (<a href="https://gerrit.named-data.net/3262">https://gerrit.named-data.net/3262</a>)</p>
<p>However, there is no distinct difference for the <code>name::Component::compare()</code> time percentage with 3262 and without 3262.<br>
I have also put the results in <a href="https://www.dropbox.com/sh/ars2l07kd93q1g1/AADuE9eTc3Ss7qFeDF14KiJXa/nfd-profiling/3807-cs-benchmark-profiling?dl=0">https://www.dropbox.com/sh/ars2l07kd93q1g1/AADuE9eTc3Ss7qFeDF14KiJXa/nfd-profiling/3807-cs-benchmark-profiling?dl=0</a></p>
NFD - Task #3807: Content store profilinghttps://redmine.named-data.net/issues/3807?journal_id=174082016-10-27T22:28:25ZJunxiao Shi
<ul></ul><p>I compared <code>callgrind_nfd_0.5.0_cs_benchmark_FindMissInsert.out</code> with <code>callgrind_nfd_0.5.0_cs_benchmark_FindMissInsert_with_gerrit_name-component-3262.out</code>.<br>
After ndn-cxx:commit:010f0868cd204f75f661acc4320803d783786213, <code>name::Component::compare</code> indeed takes the expected "fast path", but it's overall overhead is almost the same.</p>
<p>In the old "slow path", each <code>name::Component::compare</code> invokes <code>Block::value</code> twice and <code>Block::value_size</code> four times (both indirectly calling <code>Block::hasValue</code>).<br>
In the new "fast path", each <code>name::Component::compare</code> invokes <code>Block::wire</code> twice and <code>Block::size</code> twice (both indirectly calling <code>Block::hasWire</code>) and <code>Block::hasWire</code> twice.<br>
Although <code>Block::size</code> is cheaper than <code>Block::value_size</code>, <code>Block::hasWire</code> is more expensive than <code>Block::hasValue</code>, so that the overhead of both code paths break even.</p>
NFD - Task #3807: Content store profilinghttps://redmine.named-data.net/issues/3807?journal_id=174262016-10-30T10:25:09ZChengyu Fanchengyu@cs.colostate.edu
<ul></ul><p>Junxiao Shi wrote:</p>
<blockquote>
<p>I compared <code>callgrind_nfd_0.5.0_cs_benchmark_FindMissInsert.out</code> with <code>callgrind_nfd_0.5.0_cs_benchmark_FindMissInsert_with_gerrit_name-component-3262.out</code>.<br>
After ndn-cxx:commit:010f0868cd204f75f661acc4320803d783786213, <code>name::Component::compare</code> indeed takes the expected "fast path", but it's overall overhead is almost the same.</p>
<p>In the old "slow path", each <code>name::Component::compare</code> invokes <code>Block::value</code> twice and <code>Block::value_size</code> four times (both indirectly calling <code>Block::hasValue</code>).<br>
In the new "fast path", each <code>name::Component::compare</code> invokes <code>Block::wire</code> twice and <code>Block::size</code> twice (both indirectly calling <code>Block::hasWire</code>) and <code>Block::hasWire</code> twice.<br>
Although <code>Block::size</code> is cheaper than <code>Block::value_size</code>, <code>Block::hasWire</code> is more expensive than <code>Block::hasValue</code>, so that the overhead of both code paths break even.</p>
</blockquote>
<p>I should make this clearer. The patch did change the CS behavior, but the overhead is the same. "fast path" is not fast. </p>
NFD - Task #3807: Content store profilinghttps://redmine.named-data.net/issues/3807?journal_id=220292018-01-25T14:08:31ZDavide Pesavento
<ul><li><strong>Category</strong> deleted (<del><i>Integration Tests</i></del>)</li><li><strong>Target version</strong> deleted (<del><i>v0.6</i></del>)</li><li><strong>% Done</strong> changed from <i>100</i> to <i>50</i></li></ul> NFD - Task #3807: Content store profilinghttps://redmine.named-data.net/issues/3807?journal_id=280882023-10-07T21:51:36ZDavide Pesavento
<ul><li><strong>Category</strong> set to <i>Tables</i></li><li><strong>Assignee</strong> deleted (<del><i>Chengyu Fan</i></del>)</li><li><strong>Start date</strong> deleted (<del><i>10/11/2016</i></del>)</li></ul>