<HTML><BODY>Tested on Racket 6.0.1<br><br>----<br><p>(define str (string->bytes/locale "abcdefghабвгде"))<br>(time<br>   (for ([i 1000000])<br>      (bytes->string/locale str)))</p><p>(time<br>   (for ([i 1000000])<br>      (bytes->string/utf-8 str)))<br>----</p>Windows 7 x32:<br><p>> (enter! "test.rkt")<br>cpu time: 859 real time: 908 gc time: 78<br>cpu time: 641 real time: 667 gc time: 16</p>Seems OK<br>Linux<br><p>$ uname -a<br>Linux veles 3.14-1-686-pae #1 SMP Debian 3.14.12-1 (2014-07-11) i686 GNU/Linux</p><p>$ /usr/racket/bin/racket<br>Welcome to Racket v6.0.1.<br>> (enter! "test.rkt")<br>cpu time: 3072 real time: 3075 gc time: 52<br>cpu time: 552 real time: 551 gc time: 8</p>Locale in both cases utf-8, so bytes->string/utf-8 and bytes->string/locale returns the same, but bytes->string/locale in Linux 6 times slower.<br>Is it fixable?<br><br>-- <br>Roman Klochkov</BODY></HTML>