Skip to content

Commit

Permalink
scope - ScpTreeStore documentation update
Browse files Browse the repository at this point in the history
  • Loading branch information
zhekov committed Jun 10, 2014
1 parent 0e28ce5 commit 8f98d4f
Show file tree
Hide file tree
Showing 3 changed files with 33 additions and 11 deletions.
20 changes: 19 additions & 1 deletion scope/src/store/ChangeLog
@@ -1,3 +1,19 @@
2014-03-29 Dimitar Zhekov <dimitar.zhekov@gmail.com>

* scptreestore.html:
Clarification about Glade support.
* scptreestore.html, wscript:
Increased version to 0.86.1.
* wscript:
Added ChangeLog to the distribution package.


2014-02-18 Dimitar Zhekov <dimitar.zhekov@gmail.com>

* scptreestore.c:
Avoid warning when sorting an empty branch.


2013-09-29 Dimitar Zhekov <dimitar.zhekov@gmail.com>

* scptreestore.c, scptreestore.h, scptreestore.html:
Expand All @@ -6,7 +22,7 @@
Added command line arguments.
Different default # of searches for >= 1000 elements.
Level 2: is #define, speed test fix.
* scptreestore.html:
* scptreestore.html, wscript:
Increased version to 0.86.


Expand All @@ -16,6 +32,7 @@
Added scp_tree_store_register_dynamic().
* scptreestore.html, fullspeed.html:
Moved the full speed test results to a separate file.
* scptreestore.html, wscript:
Increased version to 0.85.
* speed.c:
Replaced // with /* */ for glib/gtk+ compliance.
Expand All @@ -29,6 +46,7 @@
Added scp_tree_store_traverse().
* scptreestore.html:
Documentation and speed test results for scp_tree_store_traverse().
* scptreestore.html, wscript
Increased version to 0.84.
* speed.c:
Added speed test for scp_tree_store_traverse().
3 changes: 2 additions & 1 deletion scope/src/store/fullspeed.html
Expand Up @@ -171,7 +171,7 @@ <h3>Full speed test</h3>
<tr><td>sublevel 1 set </td><td>10000</td><td>1.159 </td><td>0.110</td><td></td></tr>
<tr><td>sublevel 1 remove </td><td>10000</td><td>0.971 </td><td>0.120</td><td></td></tr>
<tr><td>sublevel 1 insert with values </td><td>10000</td><td>1.039 </td><td>0.140</td><td></td></tr>
<tr><td>both levels model foreach </td><td>10000</td><td>n/a </td><td>3.218</td><td>2510</td></tr>
<tr><td>both levels model foreach </td><td>10000</td><td>16.602</td><td>3.218</td><td>2510</td></tr>
<tr><td>both levels store traverse </td><td>10000</td><td>n/a </td><td>2.224</td><td>2510</td></tr>
<tr><td>both levels quick sort double </td><td>10000</td><td>0.218 </td><td>0.046</td><td></td></tr>
<tr><td>both levels quick sort string </td><td>10000</td><td>1.383 </td><td>1.083</td><td></td></tr>
Expand Down Expand Up @@ -272,6 +272,7 @@ <h3>Full speed test</h3>
<li>top-level only quick sort is always 2x faster</li>
<li>all defensive checks are enabled</li>
<li>all string tests are with utf8 collation</li>
<li>GtkTreeStore is converted to model with (GtkTreeModel *), not GTK_TREE_MODEL()</li>
<li>GtkListStore speed is practically identical to GtkTreeStore.</li>
</ul>

Expand Down
21 changes: 12 additions & 9 deletions scope/src/store/scptreestore.html
Expand Up @@ -454,10 +454,10 @@ <h3>top-level &quot;rows-reordered&quot;</h3>
<h3><a name="speed">Speed</a></h3>

<p>An unsorted ScpTreeStore is faster than GtkTreeStore, but the difference is not big (20%
on average, depending on the operation and number of elements), and not significant (&lt; 0.5+
seconds) for stores with less than 10000 elements. Normally, inserting into and removing from
a list is faster than using an array, but all store operations must emit a signal, containing
the row path (numeric index), which negates this advantage.</p>
on average, depending on the operation and number of elements), and not significant for stores
with less than 10000 elements (except foreach or lots of searches). Normally, inserting into
and removing from a list is faster than using an array, but all store operations must emit a
signal, containing the row path (element indexes), which negates this advantage.</p>

<p>The sorted gtk+ stores are slow, since they are based on lists, and sorting by a string
with utf-8 collation makes them even slower.</p>
Expand Down Expand Up @@ -496,15 +496,18 @@ <h3><a name="speed">Speed</a></h3>

</table>

<p>The full speed test is <a href="fullspeed.html">here</a>. In general, a sorted ScpTreeStore
can be used as a normal data structure, which is not the case with GtkTree/ListStore.</p>
<p>The full speed test is <a href="fullspeed.html">here</a>. In general, a large sorted
ScpTreeStore can be used as a normal data structure, unlike a GtkTree/ListStore. And, since
ScpTreeStore is not part of gtk+, you can easily recompile it with -DG_DISABLE_CHECKS, but
don't expect any significant difference.</p>

<hr>

<h3><a name="bugs">Bugs</a></h3>

<p>Incomplete Glade support. You can include ScpTreeStore-s in .glade files with a text
editor, but editing such files with Glade will discard the stores.</p>
<p>Incomplete Glade support. ScpTreeStore-s can be included in .glade files with a text
editor, but saving such files with Glade will discard the stores. I don't plan to fix this.
</p>

<p>The linguistically correct string comparision is not well tested.</p>

Expand All @@ -520,7 +523,7 @@ <h3><a name="copyright">Copyright</a></h3>
<p>ScpTreeStore was written for the Scope plugin of Geany light IDE, which relies heavily on
stores.</p>

<p><b>ScpTreeStore 0.85, Copyright (C) 2013 Dimitar Toshkov Zhekov</b></p>
<p><b>ScpTreeStore 0.86.1, Copyright (C) 2014 Dimitar Toshkov Zhekov</b></p>

<p>ScpTreeStore is distributed under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License, or (at your option) any
Expand Down

0 comments on commit 8f98d4f

Please sign in to comment.