Advertisement
Guest User

Untitled

a guest
Nov 16th, 2012
159
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.13 KB | None | 0 0
  1. <?php
  2.  
  3. set_time_limit(0);
  4. echo "<pre>";
  5. $file = "log.txt";
  6. // Pure array no copy
  7.     function m1($file) {
  8.         $fp = fopen($file, "r");
  9.         $size = filesize($file);
  10.        
  11.         $list = array();
  12.         $n = 0;
  13.         while ( true ) {
  14.             fseek($fp, mt_rand(0, $size));
  15.             fgets($fp);
  16.             $pos = ftell($fp);
  17.             isset($list[$pos]) or $list[$pos] = trim(fgets($fp)) and $n ++;
  18.             if ($n >= 100)
  19.                 break;
  20.         }
  21.         return $list;
  22.     }
  23.  
  24. // Array clean copy
  25.     function m2($file) {
  26.         $lines = file($file);
  27.         shuffle($lines);
  28.         $list = array_slice($lines, 0, 100);
  29.         return $list;
  30.     }
  31.  
  32. $result = array('m1' => 0,'m2' => 0);
  33.  
  34. for($i = 0; $i < 1; ++ $i) {
  35.     foreach ( array_keys($result) as $key ) {
  36.         $alpha = microtime(true);
  37.         $key($file);
  38.         $result[$key] += microtime(true) - $alpha;
  39.     }
  40. }
  41.  
  42. echo '<pre>';
  43. echo "Single Run\n";
  44. print_r($result);
  45. echo '</pre>';
  46.  
  47. $result = array('m1' => 0,'m2' => 0);
  48.  
  49. for($i = 0; $i < 2; ++ $i) {
  50.     foreach ( array_keys($result) as $key ) {
  51.         $alpha = microtime(true);
  52.         $key($file);
  53.         $result[$key] += microtime(true) - $alpha;
  54.     }
  55. }
  56.  
  57. echo '<pre>';
  58. echo "Dual Run\n";
  59. print_r($result);
  60. echo '</pre>';
  61.  
  62. ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement