import std.stdio; import std.datetime; import std.range; import std.conv; import std.string; //import std.regex; //import core.thread; //Thread.sleep(dur!("seconds")(1)); const SEC_CONV = 0.0000001; const MAX_RANGE = 1000000; __gshared string[int] table; shared static this() { foreach (i; 0 .. MAX_RANGE) table[i] = to!string(i); } long print_start(string s) { write(format(s, MAX_RANGE)); stdout.flush(); return Clock.currStdTime(); } void print_end(long start) { writef("%.3fs\n", (Clock.currStdTime() - start) * SEC_CONV); } void test_dict() { //[2012-04-05] set 2.251s get 1.957s clear 0.000s long start; string[string] d; string s; write("---- test_dict -----\n"); start = print_start("test dict set (%d)...\t"); for (int i = 0; i < MAX_RANGE; i++) { //~ s = to!string(i); s = hash[i];; d[s] = s; } print_end(start); start = print_start("test dict get (%d)...\t"); for (int i = 0; i < MAX_RANGE; i++) { s = d[hash[i]]; } print_end(start); start = print_start("test dict clear (%d)...\t"); d.clear(); print_end(start); } void test_list() { //[2012-04-05] set 0.085s get 0.007s each 0.014s long start; long j; long[] l; write("---- test_list -----\n"); start = print_start("test list set (%d)...\t"); for (int i = 0; i < MAX_RANGE; i++) { l ~= i; } print_end(start); start = print_start("test list get (%d)...\t"); for (int i = 0; i < MAX_RANGE; i++) { j = l[i]; } print_end(start); start = print_start("test list each (%d)...\t"); for (int i = 0; i < l.length; i++) { j = l[i]; } print_end(start); } void test_str() { //[2012-04-05] find 1.254s replace 1.870s long start; long j; const s = "1143534=69789+35435^(100&10+5)"; const rep_before = "35"; const rep_after = "3535"; string ss; write("---- test_str -----\n"); start = print_start("test str find (%d)...\t"); for (int i = 0; i < MAX_RANGE; i++) { j = s.indexOf(hash[i]); } print_end(start); start = print_start("test str replace (%d)...\t"); for (int i = 0; i < MAX_RANGE / 2; i++) { ss = s.replace(rep_before, rep_after); ss = ss.replace(rep_after, rep_before); } print_end(start); } void main() { test_dict(); test_list(); test_str(); }