protected function benchmark() { $source = [Random::generate(6) => Random::generate(512), Random::generate(6) => Random::generate(512), Random::generate(6) => [Random::generate(6) => Random::generate(512), Random::generate(6) => [Random::generate(6) => Random::generate(512), Random::generate(6) => Random::generate(512), Random::generate(6) => Random::generate(512), Random::generate(6) => [Random::generate(6) => Random::generate(512), Random::generate(6) => [Random::generate(6) => Random::generate(512), Random::generate(6) => [Random::generate(6) => Random::generate(512), Random::generate(6) => Random::generate(512), Random::generate(6) => Random::generate(512), Random::generate(6) => [Random::generate(6) => Random::generate(512)]]]], Random::generate(6) => [Random::generate(6) => Random::generate(512), Random::generate(6) => [Random::generate(6) => Random::generate(512), Random::generate(6) => Random::generate(512), Random::generate(6) => Random::generate(512), Random::generate(6) => [Random::generate(6) => Random::generate(512)]]]], Random::generate(6) => [Random::generate(6) => Random::generate(512), Random::generate(6) => [Random::generate(6) => Random::generate(512), Random::generate(6) => Random::generate(512), Random::generate(6) => Random::generate(512), Random::generate(6) => [Random::generate(6) => Random::generate(512)]]]]]; $count = 1000; $encode = Neon::encode($source); $time = microtime(true); for ($i = 0; $i < $count; $i++) { Neon::encode($source); } $this->result('neon-encode', microtime(true) - $time); $time = microtime(true); for ($i = 0; $i < $count; $i++) { Neon::decode($encode); } $this->result('neon-decode', microtime(true) - $time); $encode = json_encode($source); $time = microtime(true); for ($i = 0; $i < $count; $i++) { json_encode($source); } $this->result('json-encode', microtime(true) - $time); $time = microtime(true); for ($i = 0; $i < $count; $i++) { json_decode($encode); } $this->result('json-decode', microtime(true) - $time); $encode = serialize($source); $time = microtime(true); for ($i = 0; $i < $count; $i++) { serialize($source); } $this->result('serialize-encode', microtime(true) - $time); $time = microtime(true); for ($i = 0; $i < $count; $i++) { unserialize($encode); } $this->result('serialize-decode', microtime(true) - $time); }
/** * previously stored value will be sent here * * @param array $restore */ public function restore($restore) { $this->scalar = Neon::decode($restore['scalar']); }