Utf8 to Utf32 cast cost

Daniel Kozák via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Mon Jun 8 03:59:31 PDT 2015


On Mon, 08 Jun 2015 10:41:59 +0000
Kadir Erdem Demir via Digitalmars-d-learn
<digitalmars-d-learn at puremagic.com> wrote:

> I want to use my char array with awesome, cool std.algorithm 
> functions. Since many of this algorithms requires like slicing 
> etc.. I prefer to create my string with Utf32 chars. But by 
> default all strings literals are Utf8 for performance.
> 
> With my current knowledge I use to!dhar to convert Utf8[](or 
> char[]) to Utf32[](or dchar[])
> 
> dchar[] range = to!dchar("erdem".dup)
> 
> How costly is this?

import std.conv;
import std.utf;
import std.datetime;
import std.stdio;

void f0() {
    string somestr = "some not so long utf8 string forbenchmarking";
    dstring str = to!dstring(somestr);
}


void f1() {
    string somestr = "some not so long utf8 string forbenchmarking";
    dstring str = toUTF32(somestr);
}

void main() {
    auto r = benchmark!(f0,f1)(1_000_000);
    auto f0Result = to!Duration(r[0]);
    auto f1Result = to!Duration(r[1]);
    writeln("f0 time: ",f0Result);
    writeln("f1 time: ",f1Result);
}


/// output ///
f0 time: 2 secs, 281 ms, 933 μs, and 8 hnsecs
f1 time: 600 ms, 979 μs, and 8 hnsecs



More information about the Digitalmars-d-learn mailing list