Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement