Showing content from http://mail.python.org/pipermail/python-dev/attachments/20140604/e70449bc/attachment.html below:
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#330033">
<div class="moz-cite-prefix">On 6/4/2014 2:28 PM, Chris Angelico
wrote:<br>
</div>
<blockquote
cite="mid:CAPTjJmpJn0g+PijYZo72oL=LMxOu2E+XqN6upSsio5jcoFsHdw@mail.gmail.com"
type="cite">
<pre wrap="">On Thu, Jun 5, 2014 at 6:50 AM, Glenn Linderman <a class="moz-txt-link-rfc2396E" href="mailto:v+python@g.nevcal.com"><v+python@g.nevcal.com></a> wrote:
</pre>
<blockquote type="cite">
<pre wrap="">8) (Content specific variable size caches) Index each codepoint that is a
different byte size than the previous codepoint, allowing indexing to be
used in the intervals. Worst case size is like 2, best case size is a single
entry for the end, when all code points are represented by the same number
of bytes.
</pre>
</blockquote>
<pre wrap="">
Conceptually interesting, and I'd love to know how well that'd perform
in real-world usage.</pre>
</blockquote>
<br>
So would I :)<br>
<br>
<blockquote
cite="mid:CAPTjJmpJn0g+PijYZo72oL=LMxOu2E+XqN6upSsio5jcoFsHdw@mail.gmail.com"
type="cite">
<pre wrap="">Would do very nicely on blocks of text that are
all from the same range of codepoints, but if you intersperse high and
low codepoints it'll be like 2 but with significantly more complicated
lookups (imagine a "name=value\nname=value\n" stream where the names
and values are all in the same language - you'll have a lot of
transitions).
</pre>
</blockquote>
<br>
Lookup is binary search on code point index or a search for same in
some tree structure, I would think.<br>
<br>
"like 2 but ..." well, the data structure would be bigger than for
2, but your example shows 4-5 high codepoints per low codepoint (for
some languages).<br>
<br>
I did just think of another refinement to this technique (my list
was not intended to be all-inclusive... just a bunch of variations I
thought of then).<br>
<br>
10) (Content specific variable size caches) Like 8, but the last
character in a run is allowed (but not required) to be a different
number of bytes than prior characters, because the offset
calculation will still work for the first character of a different
size.<br>
<br>
So #10 would halve the size of your imagined stream that
intersperses one low-byte charater with each sequence of high-byte
characters.<br>
</body>
</html>
RetroSearch is an open source project built by @garambo
| Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4