Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- $time = microtime();
- $memory = memory_get_usage();
- for ($n = 0; $n<1000;++$n) {
- $file = '<!doctype html><!--paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --><!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"><![endif]--><!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"><![endif]--><!--[if IE 8]><html class="no-js lt-ie9" lang="en"><![endif]--><!--Consider adding a manifest.appcache: h5bp.com/d/Offline --><!--[if gt IE 8]><!--><html class="no-js" lang="en"><!--<![endif]--><head><meta charset="utf-8"><!--Use the .htaccess and remove these lines to avoid edge case issues. More info: h5bp.com/i/378 --><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><title></title><meta name="description" content=""><!--Mobile viewport optimized: h5bp.com/viewport --><meta name="viewport" content="width=device-width"><!--Place favicon.ico and apple-touch-icon.png in the root directory: mathiasbynens.be/notes/touch-icons --><link rel="stylesheet" href="css/style.css"><!--More ideas for your <head> here: h5bp.com/d/head-Tips --><!--All JavaScript at the bottom, except this Modernizr build. Modernizr enables HTML5 elements & feature detects for optimal performance. Create your own custom Modernizr build: www.modernizr.com/download/ --><script src="js/libs/modernizr-2.5.3.min.js"></script></head><body><!--Prompt IE 6 users to install Chrome Frame. Remove this if you support IE 6. chromium.org/developers/how-tos/chrome-frame-getting-started --><!--[if lt IE 7]><p class=chromeframe>Your browser is <em>ancient!</em><a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p><![endif]--><header></header><div role="main"></div><footer></footer><!--JavaScript at the bottom for fast page loading --><!--Grab Google CDN"s jQuery, with a protocol relative URL;fall back to local if offline --><script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><script>window.jQuery || document.write("<script src="js/libs/jquery-1.7.1.min.js"></script>")</script><!--scripts concatenated and minified via build script --><script src="js/plugins.js"></script><script src="js/script.js"></script><!--end scripts --><!--Asynchronous Google Analytics snippet. Change UA-XXXXX-X to be your site"s ID. mathiasbynens.be/notes/async-analytics-snippet --><script>var _gaq=[["_setAccount","UA-XXXXX-X"],["_trackPageview"]];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src=("https:"==location.protocol?"//ssl":"//www")+".google-analytics.com/ga.js";s.parentNode.insertBefore(g,s)}(document,"script"));</script></body></html>';
- $offset = 0;
- $result=array();
- do {
- $start = strpos($file,'<!--',$offset);
- $finish = strpos($file,'-->',$offset);
- if ($start && $finish) {
- $result[] = substr($file,$start+4,$finish-$start-4);
- $offset = $finish+3;
- }
- } while ($start && $finish);
- }
- echo ' v1=>substr';
- echo ' count:'.sizeof($result);
- echo ' n:1000';
- echo ' time:'.(microtime()-$time);
- echo ' memory:'.(memory_get_peak_usage()-$memory);
- echo "<br/>";
- unset($time);
- unset($memory);
- unset($file);
- $time = microtime();
- $memory = memory_get_usage();
- for ($n = 0; $n<1000;++$n) {
- $file = '<!doctype html><!--paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --><!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"><![endif]--><!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"><![endif]--><!--[if IE 8]><html class="no-js lt-ie9" lang="en"><![endif]--><!--Consider adding a manifest.appcache: h5bp.com/d/Offline --><!--[if gt IE 8]><!--><html class="no-js" lang="en"><!--<![endif]--><head><meta charset="utf-8"><!--Use the .htaccess and remove these lines to avoid edge case issues. More info: h5bp.com/i/378 --><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><title></title><meta name="description" content=""><!--Mobile viewport optimized: h5bp.com/viewport --><meta name="viewport" content="width=device-width"><!--Place favicon.ico and apple-touch-icon.png in the root directory: mathiasbynens.be/notes/touch-icons --><link rel="stylesheet" href="css/style.css"><!--More ideas for your <head> here: h5bp.com/d/head-Tips --><!--All JavaScript at the bottom, except this Modernizr build. Modernizr enables HTML5 elements & feature detects for optimal performance. Create your own custom Modernizr build: www.modernizr.com/download/ --><script src="js/libs/modernizr-2.5.3.min.js"></script></head><body><!--Prompt IE 6 users to install Chrome Frame. Remove this if you support IE 6. chromium.org/developers/how-tos/chrome-frame-getting-started --><!--[if lt IE 7]><p class=chromeframe>Your browser is <em>ancient!</em><a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p><![endif]--><header></header><div role="main"></div><footer></footer><!--JavaScript at the bottom for fast page loading --><!--Grab Google CDN"s jQuery, with a protocol relative URL;fall back to local if offline --><script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><script>window.jQuery || document.write("<script src="js/libs/jquery-1.7.1.min.js"></script>")</script><!--scripts concatenated and minified via build script --><script src="js/plugins.js"></script><script src="js/script.js"></script><!--end scripts --><!--Asynchronous Google Analytics snippet. Change UA-XXXXX-X to be your site"s ID. mathiasbynens.be/notes/async-analytics-snippet --><script>var _gaq=[["_setAccount","UA-XXXXX-X"],["_trackPageview"]];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src=("https:"==location.protocol?"//ssl":"//www")+".google-analytics.com/ga.js";s.parentNode.insertBefore(g,s)}(document,"script"));</script></body></html>';
- $file = str_replace(array('<!--','-->'),'<#>',$file);
- $file = explode('<#>',$file);
- $result=array();
- for ($i=1;$i<sizeof($file);$i+=2) {
- $result[] = $file[$i];
- }
- }
- echo ' v2=>explode';
- echo ' count:'.sizeof($result);
- echo ' n:1000';
- echo ' time:'.(microtime()-$time);
- echo ' memory:'.(memory_get_peak_usage()-$memory);
- echo "<br/>";
- unset($time);
- unset($memory);
- unset($file);
- $time = microtime();
- $memory = memory_get_usage();
- for ($n = 0; $n<1000;++$n) {
- $file = '<!doctype html><!--paulirish.com/2008/conditional-stylesheets-vs-css-hacks-answer-neither/ --><!--[if lt IE 7]><html class="no-js lt-ie9 lt-ie8 lt-ie7" lang="en"><![endif]--><!--[if IE 7]><html class="no-js lt-ie9 lt-ie8" lang="en"><![endif]--><!--[if IE 8]><html class="no-js lt-ie9" lang="en"><![endif]--><!--Consider adding a manifest.appcache: h5bp.com/d/Offline --><!--[if gt IE 8]><!--><html class="no-js" lang="en"><!--<![endif]--><head><meta charset="utf-8"><!--Use the .htaccess and remove these lines to avoid edge case issues. More info: h5bp.com/i/378 --><meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"><title></title><meta name="description" content=""><!--Mobile viewport optimized: h5bp.com/viewport --><meta name="viewport" content="width=device-width"><!--Place favicon.ico and apple-touch-icon.png in the root directory: mathiasbynens.be/notes/touch-icons --><link rel="stylesheet" href="css/style.css"><!--More ideas for your <head> here: h5bp.com/d/head-Tips --><!--All JavaScript at the bottom, except this Modernizr build. Modernizr enables HTML5 elements & feature detects for optimal performance. Create your own custom Modernizr build: www.modernizr.com/download/ --><script src="js/libs/modernizr-2.5.3.min.js"></script></head><body><!--Prompt IE 6 users to install Chrome Frame. Remove this if you support IE 6. chromium.org/developers/how-tos/chrome-frame-getting-started --><!--[if lt IE 7]><p class=chromeframe>Your browser is <em>ancient!</em><a href="http://browsehappy.com/">Upgrade to a different browser</a> or <a href="http://www.google.com/chromeframe/?redirect=true">install Google Chrome Frame</a> to experience this site.</p><![endif]--><header></header><div role="main"></div><footer></footer><!--JavaScript at the bottom for fast page loading --><!--Grab Google CDN"s jQuery, with a protocol relative URL;fall back to local if offline --><script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><script>window.jQuery || document.write("<script src="js/libs/jquery-1.7.1.min.js"></script>")</script><!--scripts concatenated and minified via build script --><script src="js/plugins.js"></script><script src="js/script.js"></script><!--end scripts --><!--Asynchronous Google Analytics snippet. Change UA-XXXXX-X to be your site"s ID. mathiasbynens.be/notes/async-analytics-snippet --><script>var _gaq=[["_setAccount","UA-XXXXX-X"],["_trackPageview"]];(function(d,t){var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src=("https:"==location.protocol?"//ssl":"//www")+".google-analytics.com/ga.js";s.parentNode.insertBefore(g,s)}(document,"script"));</script></body></html>';
- preg_match_all('/<!--(.+?)-->/',$file,$result);
- $result = $result[1];
- }
- echo ' v3=>regex';
- echo ' count:'.sizeof($result);
- echo ' n:1000';
- echo ' time:'.(microtime()-$time);
- echo ' memory:'.(memory_get_peak_usage()-$memory);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement