Le dim. 24 avr. 2022 à 22:30, David Blevins <david.blev...@gmail.com> a
écrit :

> All,
>
> I added more tests and found that most the optimizations were not
> happening due to buffering.
>
> Essentially there are two buffers between Snippet.Buffer and
> Snippet.SnippetOutputStream.  The SnippetOutputStream had the
> responsibility to tell the code up the stack when we've reached the max
> snippet length.  Since all the bytes were buffered, it would see nothing
> until the very end and we'd end up serializing the full json text anyway.
>
> One is the 64k buffer in JsonGeneratorImpl and the other is an 8k buffer
> in the JVM implementation code of OutputStreamWriter.  Since the
> OutputStreamWriter buffer is hardcoded, we can't solve this by adjusting
> buffer sizes and have no choice but to aggressively call flush() to ensure
> SnippetOutputStream has the bytes and can do its job.
>
> I've reworked the code and greatly expanded the tests so we're not just
> asserting the resulting text but the details in how we get there.
>
> We could potentially have Snippet override the buffer setting of
> JsonGeneratorFactoryImpl so the buffer is of snippetMaxLength.  I'm curious
> as to what others think.  On one hand, we could fit 1310 snippet buffers of
> 50 bytes into the size of just one 64k default buffer.  On the other hand,
> we're coping config maps and essentially building a new factory to get
> there.  I'm not sure if I like that idea.
>
>
> > On Apr 21, 2022, at 10:39 PM, Romain Manni-Bucau <rmannibu...@gmail.com>
> wrote:
> >
> > Le ven. 22 avr. 2022 à 01:00, David Blevins <david.blev...@gmail.com> a
> > écrit :
> >> Where do we document these kinds of parameters?  If you have any
> pointers
> >> I'll try to work that into the next PR along with using this in a few
> more
> >> places.
> >>
> >
> > We use maven site. so
> > https://github.com/apache/johnzon/blob/master/src/site/markdown/index.md
> > It is not great in terms of browsing but the place we have as of today.
> > Feel free to break it in several places if you think it is better.
>
> Great, thanks.  Looks like we haven't yet started documenting the config
> properties that can be passed into JsonbConfig.
>

Well we did at
https://github.com/apache/johnzon/blob/master/src/site/markdown/index.md#json-b-json-b-10-compliant
but this one is not key i guess


> I'll probably defer that then and move on to updating all the error
> messages in a second PR.  Getting proper documentation for our JsonbConfig
> properties is likely to involve a larger effort to compile a list of all
> the properties and their defaults.  That will definitely be work unto
> itself.


>
> -David
>
>

Reply via email to