<?php

$soap_message 
= new stdClass();
$soap_message->result = new stdClass();
$soap_message->result->cachingStrategy 'LOCATION_CACHE';
$soap_message->result->expirationTime 300000;
$soap_message->result->items = array();
$soap_message->result->items[0] = new stdClass();
$soap_message->result->items[0]->engineName 'LALA';
$soap_message->result->items[0]->url 'https://someurl.com';
$soap_message->result->items[1] = new stdClass();
$soap_message->result->items[1]->engineName 'LALA';
$soap_message->result->items[1]->url 'https://someurl.com';
$soap_message->result->items[2] = new stdClass();
$soap_message->result->items[2]->engineName 'LALA';
$soap_message->result->items[2]->url 'https://someurl.com';
$soap_message->result->items[3] = new stdClass();
$soap_message->result->items[3]->engineName 'LALA';
$soap_message->result->items[3]->url 'https://someurl.com';
$soap_message->result->items[4] = new stdClass();
$soap_message->result->items[4]->engineName 'LALA';
$soap_message->result->items[4]->url 'https://someurl.com';
$soap_message->result->items[5] = new stdClass();
$soap_message->result->items[5]->engineName 'LALA';
$soap_message->result->items[5]->url 'https://someurl.com';
$soap_message->result->items[6] = new stdClass();
$soap_message->result->items[6]->engineName 'LALA';
$soap_message->result->items[6]->url 'https://someurl.com';
$soap_message->result->items[7] = new stdClass();
$soap_message->result->items[7]->engineName 'LALA';
$soap_message->result->items[7]->url 'https://someurl.com';
$soap_message->result->items[8] = new stdClass();
$soap_message->result->items[8]->engineName 'LALA';
$soap_message->result->items[8]->url 'https://someurl.com';
$soap_message->result->items[9] = new stdClass();
$soap_message->result->items[9]->engineName 'LALA';
$soap_message->result->items[9]->url 'https://someurl.com';
$soap_message->result->items[10] = new stdClass();
$soap_message->result->items[10]->engineName 'LALA';
$soap_message->result->items[10]->url 'https://someurl.com';
$soap_message->result->items[11] = new stdClass();
$soap_message->result->items[11]->engineName 'LALA';
$soap_message->result->items[11]->url 'https://someurl.com';

$soap_message_array = (array)$soap_message;
$soap_message_array['result'] = (array)$soap_message_array['result'];
for (
$i=0$i 12; ++$i) {
  
$soap_message_array['result']['items'][$i] = (array)$soap_message_array['result']['items'][$i];
}

file_put_contents('tmp.cache'serialize($soap_message));
file_put_contents('tmp2.cache'serialize($soap_message_array));
file_put_contents('tmp3.cache'"<?php\nreturn ".var_export($soap_message_arraytrue).';');
file_put_contents('tmp4.cache'json_encode($soap_message));
file_put_contents('tmp5.cache'json_encode($soap_message_array));
apc_store('tmp.cache'serialize($soap_message));
apc_store('tmp2.cache'serialize($soap_message_array));
apc_store('tmp3.cache'$soap_message_array);

$reads 1000;

$time = array();
$time['start'] = microtime(true);

file_put_contents('tmp.cache'serialize($soap_message));
$time['write file with serialized objects'] = microtime(true);
for (
$i 0$i $reads; ++$i) {
  
$data unserialize(file_get_contents('tmp.cache'));
}
$time['read file with serialized objects'] = microtime(true);

file_put_contents('tmp2.cache'serialize($soap_message_array));
$time['write file with serialized arrays'] = microtime(true);
for (
$i 0$i $reads; ++$i) {
  
$data unserialize(file_get_contents('tmp2.cache'));
}
$time['read file with serialized arrays'] = microtime(true);

file_put_contents('tmp3.cache'"<?php\nreturn ".var_export($soap_message_arraytrue).';');
$time['write file with arrays via export'] = microtime(true);
for (
$i 0$i $reads; ++$i) {
  
$data = include 'tmp3.cache';
}
$time['read file with arrays via export'] = microtime(true);

file_put_contents('tmp4.cache'json_encode($soap_message));
$time['write file with jsoned objects'] = microtime(true);
for (
$i 0$i $reads; ++$i) {
  
$data json_decode(file_get_contents('tmp4.cache'));
}
$time['read file with jsoned objects'] = microtime(true);

file_put_contents('tmp.cache'json_encode($soap_message_array));
$time['write file with jsoned arrays'] = microtime(true);
for (
$i 0$i $reads; ++$i) {
  
$data json_decode(file_get_contents('tmp5.cache'));
}
$time['read file with jsoned arrays'] = microtime(true);

apc_store('tmp3.cache'$soap_message_array);
$time['write apc as is'] = microtime(true);
for (
$i 0$i $reads; ++$i) {
  
$data apc_fetch('tmp3.cache');
}
$time['read apc as is'] = microtime(true);

apc_store('tmp.cache'serialize($soap_message));
$time['write apc with serialized objects'] = microtime(true);
for (
$i 0$i $reads; ++$i) {
  
$data unserialize(apc_fetch('tmp.cache'));
}
$time['read apc with serialized objects'] = microtime(true);

apc_store('tmp2.cache'serialize($soap_message_array));
$time['write apc serialized with arrays'] = microtime(true);
for (
$i 0$i $reads; ++$i) {
  
$data unserialize(apc_fetch('tmp2.cache'));
}
$time['read apc with serialized arrays'] = microtime(true);

$last array_shift($time);
foreach (
$time as $key => $next) {
  
$diff = (int)(($next-$last)*100000000);
  
var_dump($diff.' - '.$key);
  
$last $next;
}