Advertisement
Guest User

Untitled

a guest
Apr 5th, 2012
168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
D 2.08 KB | None | 0 0
  1. import std.stdio;
  2. import std.datetime;
  3. import std.range;
  4. import std.conv;
  5. import std.string;
  6. //import std.regex;
  7. //import core.thread; //Thread.sleep(dur!("seconds")(1));
  8. const SEC_CONV = 0.0000001;
  9. const MAX_RANGE = 1000000;
  10.  
  11. long print_start(string s){
  12.     write(format(s, MAX_RANGE));
  13.     stdout.flush();
  14.     return Clock.currStdTime();
  15. }
  16.  
  17. void print_end(long start){
  18.     writef("%.3fs\n", (Clock.currStdTime()-start)*SEC_CONV);
  19. }
  20.  
  21. void test_dict(){
  22.     //[2012-04-05] set 2.251s get 1.957s clear 0.000s
  23.     long start;
  24.     string[string] d;
  25.     string s;
  26.     write("---- test_dict -----\n");
  27.    
  28.     start = print_start("test dict set (%d)...\t");
  29.     for (int i=0; i<MAX_RANGE; i++){
  30.         s = to!string(i);
  31.         d[s] = s;
  32.     }
  33.     print_end(start);
  34.    
  35.     start = print_start("test dict get (%d)...\t");
  36.     for (int i=0; i<MAX_RANGE; i++){
  37.         s = d[to!string(i)];
  38.     }
  39.     print_end(start);
  40.    
  41.     start = print_start("test dict clear (%d)...\t");
  42.     d.clear();
  43.     print_end(start);
  44. }
  45.  
  46. void test_list(){
  47.     //[2012-04-05] set 0.085s get 0.007s each 0.014s
  48.     long start;
  49.     long j;
  50.     long[] l;
  51.     write("---- test_list -----\n");
  52.    
  53.     start = print_start("test list set (%d)...\t");
  54.     for (int i=0; i<MAX_RANGE; i++){
  55.         l ~= i;
  56.     }
  57.     print_end(start);
  58.    
  59.     start = print_start("test list get (%d)...\t");
  60.     for (int i=0; i<MAX_RANGE; i++){
  61.         j = l[i];
  62.     }
  63.     print_end(start);
  64.    
  65.     start = print_start("test list each (%d)...\t");
  66.     for (int i=0; i<l.length; i++){
  67.         j = l[i];
  68.     }
  69.     print_end(start);
  70. }
  71.  
  72. void test_str(){
  73.     //[2012-04-05] find 1.254s replace 1.870s
  74.     long start;
  75.     long j;
  76.     const s = "1143534=69789+35435^(100&10+5)";
  77.     const rep_before = "35";
  78.     const rep_after = "3535";
  79.     string ss;
  80.     write("---- test_str -----\n");
  81.    
  82.     start = print_start("test str find (%d)...\t");
  83.     for (int i=0; i<MAX_RANGE; i++){
  84.         j = s.indexOf(to!string(i));
  85.     }
  86.     print_end(start);
  87.    
  88.     start = print_start("test str replace (%d)...\t");
  89.     for (int i=0; i<MAX_RANGE/2; i++){
  90.         ss = s.replace(rep_before, rep_after);
  91.         ss = ss.replace(rep_after, rep_before);
  92.     }
  93.     print_end(start);
  94. }
  95.  
  96. void main(){
  97.     test_dict();
  98.     test_list();
  99.     test_str();
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement