On 10070 day of my life Edi Weitz wrote:
I see something strange: no difference for unibyte windows-1251, but improvement for utf-8.
Hmm, should've been the other way around. Specifically, I would expect improvements for ASCII and LATIN-1 which is what counts for Chunga's internals.
utf-8 output is larger, so difference is more visible, perhaps :)
OK, this is a timing results of simple static benchmark (outputting static Cyrillic string):
| 0.13.1 | 0.14.1 | 0.14.1+ib UTF-8 (13553b) | 43.93 | 45.48 | 56.22 KOI8-R (10725b) | 39.52 | 43.48 | 50.89
Result is number of pages per second, 13553b is size of output in bytes. UTF-8 is faster because conversion function is faster. Number of pages is quite low because my computer is quite old :)
0.14.1+ib is a flexi-stream version with my "patch" (not ready for publication). Actually this patch is loadable file that redefines some classes, methods and functions in flexi-streams and hunchentoot. BTW, it addresses vseguip's WRITE-HEADER-LINE differently, on flexi-streams level.
Currently slowest function on this benchmark is FLEXI-STREAMS::CHAR-TO-OCTETS (mostly because it is called so many times; but there is a room for improvement). On my application slowest function is MAKE-FLEXI-STREAM, because it calls some Hunchentoot's functions that use it. It can be improved too, but, I'm afraid, only with flexi-streams' rewriting.