-- Konr Ness <[email protected]> wrote
(on Tuesday, 21 December 2010, 11:33 PM -0600):
> Another thing Zend_Json does that json_encode() does not is supporting
> iterable objects. I use this frequently for JSON encoding objects that do
> not have public properties.
> 
> p.s. I think that Zend_Json should actually check for the objects
> implementing Traversable (http://us.php.net/manual/en/class.traversable.php),
> not Iterator (http://us.php.net/manual/en/class.iterator.php), since all the
> encoder is doing is foreach'ing over the object, but that's for another bug
> report.

Please report it. :)

(In ZF2 code, I'm typically checking for Traversable -- even when
expecting Zend\Config objects -- as the point is really the key/value
pairs during iteration.)


> On Fri, Dec 10, 2010 at 11:38 AM, Matthew Weier O'Phinney
> <[email protected]>wrote:
> 
> > Yes, Zend_Json is slower than ext/json, even when it proxies directly to
> > ext/json. That said, there are a number of situations where you might
> > wish to use Zend_Json over ext/json:
> >
> >  * If you have to encode JS lambdas as JSON
> >  * If you want support for additional charset encodings
> >
> > Finally, for most datasets developers will utilize, the amount of time
> > spent in de/serialization is negligible -- if you're working on datasets
> > of 100k+ items, you're likely doing something wrong anyways.
> >
> > -- whisher <[email protected]> wrote
> > (on Friday, 10 December 2010, 08:44 AM -0800):
> > >
> > > $memoryNativeStart = memory_get_peak_usage (true);
> > >
> > > $start = microtime( true );
> > >
> > > $native = json_decode(json_encode( $data ));
> > >
> > > $memoryNative = memory_get_peak_usage (true) - $memoryNativeStart;
> > >
> > > $jsonNativeTime = microtime( true ) - $start;
> > >
> > > $msgNative = 'Native php
> > > ';
> > >
> > > $msgNative .= 'time '.$jsonNativeTime.' memory '.$memoryNative.'
> > > ';
> > >
> > > echo $msgNative;
> > >
> > > sleep(3);
> > >
> > > $memoryZendStart = memory_get_peak_usage (true);
> > >
> > > $start = microtime( true );
> > >
> > > $zend = Zend_Json::decode(Zend_Json::encode( $data ));
> > >
> > > $memoryZend = memory_get_peak_usage (true) - $memoryZendStart;
> > >
> > > $jsonZendTime = microtime( true ) - $start;
> > >
> > > $msgZend = 'Zend
> > > ';
> > >
> > > $msgZend .= 'time '.$jsonZendTime.' memory '.$memoryZend;
> > >
> > > echo $msgZend;
> > >
> > > inside data there is about 130,000 records (with a result set)
> > >
> > > I get
> > >
> > > Native php
> > >
> > > time 2.24236011505 memory 158072832
> > >
> > > Zend
> > >
> > > time 3.50552582741 memory 109051904
> > > --
> > > View this message in context:
> > http://zend-framework-community.634137.n4.nabble.com/json-encode-json-decode-vs-Zend-Json-encode-Zend-Json-decode-tp3080647p3082295.html
> > > Sent from the Zend Framework mailing list archive at Nabble.com.
> > >
> >
> > --
> > Matthew Weier O'Phinney
> > Project Lead            | [email protected]
> > Zend Framework          | http://framework.zend.com/
> > PGP key: http://framework.zend.com/zf-matthew-pgp-key.asc
> >

-- 
Matthew Weier O'Phinney
Project Lead            | [email protected]
Zend Framework          | http://framework.zend.com/
PGP key: http://framework.zend.com/zf-matthew-pgp-key.asc

Reply via email to