public function store(IStorage $storage) { if ($this->scalar === null) { return null; } return ['scalar' => Neon::encode($this->scalar)]; }
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); }