2006/2/3, Jochen Wiedmann <[EMAIL PROTECTED]>: > Henri Gomez wrote: > > > Well I'm more usefull in IO area. Also I will be more than happy to see if > > we could 'arrange' the spec and avoid the use of byte[] in execute call > > returns since I'm using huge XML-RPC replies in my day jobs and it hurt > > badly the JVM. IO will be more interesting in such case > > Don't know, what exactly you are thinking of, but one of the primary > targets of the streaming branch was being able to get rid of byte[]. > > However, while we are talking about, there might be a different topic, > which came up just yesterday in a discussion here: > > We do have an application which deals with large strings and large > base64 streams (aka byte arrays). It is not desirable to put them into > memory. A nice extension (which I am going to realize at some point > anyways, if you won't do it) would be like the following: > > - Create configurable options maxByteArraySize and maxCharArraySize > with default values 0 and a configurable option tmpArrayDir with > default System.getProperty("java.io.tmpDir"). > - Change the readers for byte[] and String (ByteArrayParser and ... > heck, the latter one might be tricky, because String may sit directly > within the value tag, so it's the RecursiveTypeParserImpl itself) > as follows: If the created object is within the configured size, > then the byte array or String is returned, as usual. However, if > that is not the case, then a temporary file is created and a > reference to the file is returned. The reference should have > streaming accessors, of course.
Using filesystem as cache could be a good idea but it may introduce performance penalties. BTW, it could be proposed as extension to those who want minimal memory footprint. > - Create a utility class, that recursively scans an array, > collection, or map for such references and replaces them with > the byte arrays or strings. (Not all software locations are > prepared for such things.) bytes arrays or strings of Java Objects to be stored in the file cache ? And at a latter time transform them into XML stream ? Did the two passes won't introduce again some penalties ? > How about that? Other ideas quite welcome. This is just my proposal how > I'd try to attack the problem. Well the implementation must be seens to see how it works and if it didn't slow down to much the server.