ini_set('error_reporting', E_ALL | E_STRICT); ini_set('display_errors', 1); assert_options(ASSERT_ACTIVE, 1); require dirname(dirname(__DIR__)) . '/dist/libserverbench.phar'; use ServerBench\App\Client\Client as ClientApp; use ServerBench\App\Client\Multier; function mt() { return gettimeofday(true) * 1000; } define('NUM_OF_CLIENTS', 200); define('NUM_OF_PACKAGES', 10000); $clients = []; for ($i = 0; $i < NUM_OF_CLIENTS; ++$i) { $client = new ClientApp(); $client->setSndHwm(1000000); $client->setRcvHwm(1000000); $client->connect('tcp://127.0.0.1:12345', new ServerBench\Codec\Json(), true); $client->setRecvTimeout(200); $client->setSendTimeout(200); $clients[] = $client; } $msg = <<<M 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890
} if (!isset($arguments['concurrent']) && !isset($arguments['connect']) && !isset($arguments['time'])) { die("usage: benchmark.php -c {num of clients} -C {address} -T {timed testing}"); } define('NUM_OF_CLIENTS', $arguments->get('concurrent')); define('CONNECT', $arguments->get('connect')); define('TIME_TO_TESTING', $arguments->get('time') * 1000); define('LENGTH', $arguments->get('length', 100)); printf("clients %d, connect %s, time to testing %f sec, length %d\n", NUM_OF_CLIENTS, CONNECT, TIME_TO_TESTING / 1000, LENGTH); // ready $recv = []; $clients = []; $poller = new Poller(); $msg = str_repeat('-', LENGTH); for ($i = 0; $i < NUM_OF_CLIENTS; ++$i) { $client = new ClientApp(); $client->setSndHwm(1000000); $client->setRcvHwm(1000000); $client->connect(CONNECT, null, true); $client->setRecvTimeout(200); $client->setSendTimeout(200); $id = $poller->registerReadable($client); $clients[$id] = $client; $recv[$id] = 0; } $sending = 0; $recving = 0; $start = mt(); foreach ($clients as $id => $client) { $client->send($msg); }
<?php ini_set('error_reporting', E_ALL | E_STRICT); ini_set('display_errors', 1); assert_options(ASSERT_ACTIVE, 1); require dirname(dirname(__DIR__)) . '/dist/libserverbench.phar'; use ServerBench\App\Client\Client as ClientApp; function mt() { return gettimeofday(true) * 1000; } $app = new ClientApp(); $app->connect('tcp://127.0.0.1:12345', new ServerBench\Codec\Json(), false); $start = mt(); $msg = <<<M 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 1234567890 M; for ($i = 0; $i < 1000; ++$i) { $rc = $app->send(['data' => $msg, 'seq' => $i]); if (false === $rc) { echo 'failed to send msg. ', $app->errno(), "\n"; die;