On Mon, 08 Jun 2015 10:41:59 +0000 Kadir Erdem Demir via Digitalmars-d-learn <digitalmars-d-learn@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