Hi,

On Wed, Dec 10, 2014 at 6:43 AM, Remi Collet <r...@fedoraproject.org> wrote:
>
>
> The main issue is the "non-free" decoder.
>
>
Agreed.


> Of course perf can be considered as an issue (I think minor).
> jsonc have bad perf, but is free.
>
> If jsond have nearly same perf than old one, it's enough.


My initial benchmarks (for PHP5 jsond ext) actually shows better
performance for json instances containing strings. Pure int and floats are
more or less the same. But need more benchmarks to confirm that.


> > Just a quick update on jsond. The decoder is mostly done.
>
> So, please go on


I have ported a decoder to PHP 7. The code can be found on my github
php-src jsond branch ( for code changes see
https://github.com/bukka/php-src/compare/jsond ). It's just a replaced
decoder. The encoder is the same though. All tests are passing for me... I
haven't done any perf tests as yet. There is a big room for improvements
but it's a good start IMHO.

I'll have more time during Christmas so I would like to improve the code
and do some benchmarks. Think we could have RFC around New Year...


>
> > I have been recently working on optimization for the encoder. I
> > already have over 30% speed improvement in encoding for string
> > based arrays/objects like $_SERVER. It's generally much faster now
> > but there is still a big room for other impromevents. I also
> > experiment with a new buffer (replacement for smart_str in json
> > encoder). It needs lots of optimization but it already gives better
> > numbers for some cases. However it also gives worse numbers for
> > some other cases like processing small integers so I need to play
> > with it a bit more. As I said before I need a better set of
> > benchmarks to be sure that it works fine for a big number of json
> > instances.
>
> Current encoder is not an issue.
> Perf. can be manage later.
>
> And I don't think we should use another string management for json
> encoder, so if improvment is possible, should go in smart_str.
>
>
Yeah I won't go there (replacing smart_str). It's still experimental and it
would delay the whole thing quite a lot. I'll rather add just few proven
improvements that are already done in jsond and that are not breaking ABI.

Cheers

Jakub

Reply via email to