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 > >