/** * Бенчмарк для проверки корректной работы и скорости кеша * @param bool $cache * */ static function miniBenchmark($cache = true) { $t = []; $mark = function ($marker) use(&$t) { $t[$marker] = microtime(1); return $t[$marker]; }; $bulkObj = new BulkLib(); $bulkObj->setCacheOn(); if ($cache == false) { $cacheFlag = "<span style='color:red'>Кэш выключен</span>"; $bulkObj->setCacheOff(); } else { $cacheFlag = "<span style='color:#000'>Кэш включен</span>"; } echo '</br><strong>[ Benchmark started: ' . $cacheFlag . ']</strong></br>'; echo '</br><strong>Start:</strong>'; echo $mark('one'); echo ':#####################</br>'; for ($i = 1; $i <= 15; $i++) { $bulkObj->prepareUserData(array(isset($_GET['user1']) ? (int) $_GET['user1'] : 1, isset($_GET['user2']) ? (int) $_GET['user2'] : 2, isset($_GET['user3']) ? (int) $_GET['user3'] : 12)); echo $bulkObj->outUserData() . '-</br>'; } echo '</br><strong>End:</strong>'; echo $mark('two'); echo '#####################</br>'; echo "<b>Время работы скрипта, сек:</b>" . sprintf("%01.5f", $t['two'] - $t['one']); echo '</br></br><strong>[ Benchmark finished: ]</strong></br>'; }
* CREATE TABLE IF NOT EXISTS `users` ( `user` int(11) NOT NULL AUTO_INCREMENT, `name` char(52) NOT NULL, PRIMARY KEY (`user`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=13 ; INSERT INTO `users` (`user`, `name`) VALUES (1, 'Остап Бендер'), (2, 'John Smith'), (3, 'China'), (4, 'Germany'), (5, 'France'), (6, 'United Kingdom'), (7, 'India'), (8, 'Russia'), (9, 'Armenia'), (10, 'United States'), (11, 'Ukraine'), (12, 'Jorik'); **/ require __DIR__ . '/BulkLib.php'; $bulkObj = new BulkLib(); $bulkObj->prepareUserData(array(isset($_GET['user1']) ? (int) $_GET['user1'] : 1, isset($_GET['user2']) ? (int) $_GET['user2'] : 2, isset($_GET['user3']) ? (int) $_GET['user3'] : 12)); echo $bulkObj->outUserData(); // 15 итераций аналогичных с кэшем BulkLib::miniBenchmark(); // 15 итераций без кэша BulkLib::miniBenchmark(false);