-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 Mark,
On 6/3/17 4:25 PM, Mark Thomas wrote: > All, > > I wanted to provide a little more context to the SMAP changes I > have started working on. > > The primary driver for all of this is this bug: > https://bz.apache.org/bugzilla/show_bug.cgi?id=49176 > > Particularly comment #4. > > Currently, the SMAP implementation is more generic than it needs to > be for Jasper. I am currently working on removing those elements > Jasper will never need. > > The SMAP is produced in String format as required for insertion > into a .class file. My expectation is that the API will need > modification to expose the SMAP in object form (details TBD). The > SMAP will then be retained for each class and used in preference to > the page nodes for constructing error pages. > > The final solution is far from fixed. I need to do some > performance testing with the current page nodes solution so I can > compare the SMAP approach. There are various design decisions still > to be made: - cache SMAP vs read it from the .class file as > required - cache all, some (LRU), none - cache SMAP with the > compiler (like page nodes) or some new web application wide cache? > - no access to page nodes means we'd also need to parse the source > JSP/tag to display the source extract > > I hope this provides some useful context to my current commits. > > Thoughts / comments / suggestions welcome. Would an object-based SMAP description be any more memory-efficient than one that has been "serialized" to String? If there is a lot of re-use of information (e.g. class names, method names, etc.) then I can see a big benefit to retaining an object structure instead of a String; the String can be complied-into the .class file and then discarded for runtime. What kinds of runtime failures require SMAP-like information to be available? If using an LRU-type cache, it should be tunable. That way, it can be given a large amount of memory for high-performance error-handling or small for sites that don't want to waste memory. Is there utility in supporting a setting for "discard SMAP data after successful JSP compile" where *no* SMAP-like information would be used? That is more than just setting LRU_size = 0 because an runtime error would generate a "normal" stack trace instead of an "enriched" one . - -chris -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBCAAGBQJZNcOJAAoJEBzwKT+lPKRYK4IP/1Xbt2v4xX7aHEoWgYtt7vYW vwWhB91gJirrmWJNun0phzS+LF2Z57y4a+qxQuEbQU3rCIDQvCgOAKn/X9rsOEgQ UezVAtWZxuppSzMO1sQWaWWS+rpY/3oNptFMNMhDaWXll6AdugOzUjW5oGPDK0k1 jwvtfWrca6Tn+WlLoxb39UpHOugFLHvcnly3VSg9UQNWIsRHT0ESLMwfRnWyUN3o 47CUxQQQ1TWAGX2ny0TwcpP4cU4/qex126mc2RTHGHEkPBcFVzxsjnkgok2fDFld OA7whxtwnuIWwUzgvrWvmHSNiyb7Vxpzfk/DVMhSF7hClqtkxLSAwn2SL4bypNJ2 CzSGUrzY68U1gGl6imy9YYKd3WQy3wgpODouAp7y3Ewr9lEYGI4om0Sql1SPyQLE nD9idNQQX3o95ff+gIAujmghWtyoaT8DG+TJ9tT5ukdLsIA41uAtgJkk20bVi3Ek MLRJFgA4YXNSM0PTGqrW1R5s7W9kNw5RKtPJ6w6Cwu/U2Ct7G4zc/bGk7+3mQUCj yLuzvyTwLnYHkP+tTW16H4IUgHwt/h+k1ek+JrVfn1kF4UtJMKUiB+C4bGPFc2Iw dUw426qC1jibLSZJDu0s104ZnArBF2+CtBxVy8PAjbjI0qIFnhA8vyFsjlnyJqb5 WGqwgVhEGjYlTLwStCzi =IAgq -----END PGP SIGNATURE----- --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org