Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- set_time_limit(0);
- echo "<pre>";
- $file = "log.txt";
- // Pure array no copy
- function m1($file) {
- $fp = fopen($file, "r");
- $size = filesize($file);
- $list = array();
- $n = 0;
- while ( true ) {
- fseek($fp, mt_rand(0, $size));
- fgets($fp);
- $pos = ftell($fp);
- isset($list[$pos]) or $list[$pos] = trim(fgets($fp)) and $n ++;
- if ($n >= 100)
- break;
- }
- return $list;
- }
- // Array clean copy
- function m2($file) {
- $lines = file($file);
- shuffle($lines);
- $list = array_slice($lines, 0, 100);
- return $list;
- }
- $result = array('m1' => 0,'m2' => 0);
- for($i = 0; $i < 1; ++ $i) {
- foreach ( array_keys($result) as $key ) {
- $alpha = microtime(true);
- $key($file);
- $result[$key] += microtime(true) - $alpha;
- }
- }
- echo '<pre>';
- echo "Single Run\n";
- print_r($result);
- echo '</pre>';
- $result = array('m1' => 0,'m2' => 0);
- for($i = 0; $i < 2; ++ $i) {
- foreach ( array_keys($result) as $key ) {
- $alpha = microtime(true);
- $key($file);
- $result[$key] += microtime(true) - $alpha;
- }
- }
- echo '<pre>';
- echo "Dual Run\n";
- print_r($result);
- echo '</pre>';
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement