|  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #51267 Performance of serialize() is poor compared to json_encode()
Submitted: 2010-03-11 01:30 UTC Modified: -
Avg. Score:4.3 ± 0.9
Reproduced:10 of 12 (83.3%)
Same Version:7 (70.0%)
Same OS:3 (30.0%)
From: jo at feuersee dot de Assigned:
Status: Open Package: Arrays related
PHP Version: 5.3.2 OS:
Private report: No CVE-ID: None
Have you experienced this issue?
Rate the importance of this bug to you:

 [2010-03-11 01:30 UTC] jo at feuersee dot de
The performance of serialize() decreases if the data is deeply nested, eg. consists of array inside an array.
Surprisingly, json_encode() is not affected by this issue, thus I'd say there should be some optimizations not used in serialize()

serialize() performs great on arrays structured (key => val), but fails ion structs like

    array(key => val)

Test script:
Benchmark json_encode() vs. serialize() on the following data:

$arr = array();
for($i = 0; $i < $num_size; $i++) {
	$arr[md5($i)] = array(
				0, 10, hash('sha256', rand(0, $num_size))

Expected result:
More or less the same same time comsumed.

Actual result:
json_encode() is >3 times faster than serialize().
This increases if the arrays nesting level increases.


Add a Patch

Pull Requests

Add a Pull Request

PHP Copyright © 2001-2020 The PHP Group
All rights reserved.
Last updated: Mon Oct 26 02:01:23 2020 UTC