Pastebin launched a little side project called VERYVIRAL.com, check it out ;-) Want more features on Pastebin? Sign Up, it's FREE!
Guest

Untitled

By: a guest on Apr 5th, 2012  |  syntax: D  |  size: 2.08 KB  |  views: 106  |  expires: Never
download  |  raw  |  embed  |  report abuse  |  print
Text below is selected. Please press Ctrl+C to copy to your clipboard. (⌘+C on Mac)
  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. }
clone this paste RAW Paste Data