[M3commit] CVS Update: cm3
Rodney M. Bates
rodney at elego.de
Sun May 19 23:44:34 CEST 2013
CVSROOT: /usr/cvs
Changes by: rodney at birch. 13/05/19 23:44:34
Modified files:
cm3/m3-libs/m3core/src/text/: Text.i3 Text.m3 Text16.i3
Text16.m3 Text16Short.i3
Text16Short.m3 Text8.i3 Text8.m3
Text8CString.m3 Text8Short.i3
Text8Short.m3 TextCat.m3
TextClass.i3 TextClass.m3
TextSub.m3 UnsafeHash.m3
m3makefile
Added files:
cm3/m3-libs/m3core/src/text/: README TextStats.i3 TextStats.m3
Log message:
New algorithms for TEXT operations.
There is no change in data structure or its invariants, only new
algorithms that produce different representations for the same text
operations. In many cases, there are significant time and space
performance increases, expecially when texts are built by
left-to-right or right-to-left linear concatenation. Some usage
patterns suffer moderately.
If you think it's buggy or don't like the performance changes, you can
disable it at runtime by setting TextClass.Old:=TRUE. This will use
all the old cm3 text algorigthms, identical except for small
constant-time slowdowns due to testing this boolean and gathering raw
statistics. There are some tuning parameters in there that you can
play with too.
You can switch dynamically between old and new alogrithms at any time
no thread is inside. You can use the results of either interchangeably.
You can use the test program both to check correctness (by running the
old and new algorithms side-by-side) and to get lots of performance
statistics. Give it "-h" command-line option for info on its options.
More information about the M3commit
mailing list