A little over ten years ago, I moaned about the fact that VM under
XEmacs 21.4 is uselessly slow when generating summaries for large mailboxes
(in the hundreds of megabytes region). Stephen said:
[Stephen:]
>possibility is that sometime around 21.5.26 Ben fixed the
position
>cache that is used to translate byte indicies to char indicies and
>vice versa. I don't know if the cache is present and/or working in
>21.4.
[me:]
There is a cache in 21.4, but it later changed a lot.
The VM summary catastrophic slowness is present in 21.5.18, but not in
21.5.21 (19 and 20 both crash, so I couldn't try them).
Looking at the code, the cache code was considerably re-written beween
those versions. So was a lot of other stuff!
Ben's new cache code would be a ****** to backport to 21.4, as he did
a huge amount of work, so I gave up.
However, today I discovered that I can trivially solve the problem,
simply by increasing the number of bufpos/bytind cache entries in the
21.4 code from 16 to 256. (Who, by the way, was responsible for
hard-wiring 16 and 15 in the code :-? )
Now VM can generate a summary of a 200MB mbox with a few tens of thousands
of messages in a few seconds (provided I increase the system stack
limit to allow garbage collection to work). Probably my performance
on smaller buffers is impaired, but who cares?
Steve, you might want to note for sxemacs.