public function rollBack() { $start = millitime(); $ret = parent::rollBack(); function_log('PDO->rollBack()', millitime() - $start); return $ret; }
function millitimeDiff($start, $now = NULL) { if (!$now) { $now = millitime(); } return $now - $start; }
public function execute(array $input_parameters = null) { $start = millitime(); $ret = parent::execute($input_parameters); function_log('PDOStatement->execute()', millitime() - $start); return $ret; }
<?php require dirname(__DIR__) . '/vendor/autoload.php'; use ServerBench\Core\Singleton; use ServerBench\Timer\Timer; $timer = new Timer(); function millitime() { return (int) (gettimeofday(true) * 1000); } $timer->runAfterMs(100, function () { echo "\nafter 100 ms\n"; }); $timer->runAtMs((int) millitime() + 200, function () { echo "\nat 200 ms\n"; }); $timer->runEveryMs(3000, function () { echo "\nevery 3000 ms\n"; }); while (!$timer->isEmpty()) { $timer->execute(); var_dump($timer->nearestTimeMs() - (int) (gettimeofday(true) * 1000)); usleep(100000); }
* Benchmarking against EventEmitter (original by Igor Wiedler) */ $loader = (require __DIR__ . '/../vendor/autoload.php'); require 'diff.php'; $start = millitime(); $emitter = new \Evenement\EventEmitter(); $counter = 1; $listeners = 100; $emitters = 10000; for ($i = 1; $i <= $listeners; $i++) { $emitter->on('listener_' . $i, function () use(&$counter) { $counter++; }); } for ($i = 1; $i <= $emitters; $i++) { $emitter->emit('listener_' . $i); } $time_EventEmitter = millitimeDiff($start); $start = millitime(); $emitter = new \Evenement\EventEmitterRegex(); $counter = 1; for ($i = 1; $i <= $listeners; $i++) { $emitter->on('listener_' . $i, function () use(&$counter) { $counter++; }); } for ($i = 1; $i <= $emitters; $i++) { $emitter->emit('listener_' . $i . '$'); } $time_EventEmitterRegex = millitimeDiff($start); printf("Time for {$listeners} listeners and {$emitters} emits\n" . "EventEmitter: \t\t\t %-5d ms\n" . "EventEmitterRegex:\t\t\t %-5d ms\n", $time_EventEmitter, $time_EventEmitterRegex);
public function generateAuthenticationToken($companyId, $userId, $privateKeyPath) { $tokenString = $companyId . ' ' . $userId . ' ' . millitime(); try { $tokenEncrypted = $this->_encryptToken($tokenString, $privateKeyPath); } catch (Exception $e) { throw $e; } $tokenEncoded = bin2hex($tokenEncrypted); return $tokenEncoded; }
/** * Extract custom data from the post request. Used in R5 and above * Array format: * { * "GraphName": { * "ColumnName": Value * }, * ... * } * @return array */ function extractCustomData() { global $config; $start = millitime(); // What custom data is separated by $separator = $config['graph']['separator']; // Array of data to return $data = array(); foreach ($_POST as $key => $value) { // verify we have a number as the key if (!is_numeric($value)) { continue; } // Find the first position of the separator $r_index = strrpos($key, $separator); // Did we not match one? if ($r_index === false) { continue; } // Extract the data :-) $graphName = str_replace('_', ' ', substr($key, 3, $r_index - 3)); $columnName = str_replace('_', ' ', substr($key, $r_index + 2)); // Set it :-) $data[$graphName][$columnName] = $value; } return $data; }