openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kevin Sutter" <>
Subject SERP vs ASM vs ...
Date Tue, 11 Jul 2006 13:17:30 GMT
>From experimenting with Kodo and now building the code within OpenJPA, I
know that we have a dependency on the SERP open-source project.  I also see
where Abe seems to the main contact for support, so maybe we have an "in"
with the support person.  :-)

My previous experiences with byte code weaving and generation have shown
that ASM is a very nice, compact package for this type of processing.  And,
some of the wording on the SERP website have me a little concerned:

 Serp is not ideally suited to all applications. Here are a few
disadvantages of serp:

   - *Speed.* Serp is not built for speed. Though there are plans for
   performing incremental parsing, serp currently fully parses class files when
   a class is loaded, which is a slow process. Also, serp's insistence on
   full-time consistency between the low and high-level class structures slows
   down both access and mutator methods. These factors are less of a concern,
   though, when creating new classes at runtime (rather than modifying existing
   code), or when using serp as part of the compilation process. Serp excels in
   both of these scenarios.
   - *Memory.* Serp's high-level structures for representing class
   bytecode are very memory-hungry.
   - *Multi-threaded modifications.* The serp toolkit is not threadsafe.
   Multiple threads cannot safely make modifications to the same classes the
   same time.
   - *Project-level modifications.* Changes made in one class in a serp
   project are not yet automatically propogated to other classes. However,
   there are plans to implement this, as well as plans to allow operations to
   modify bytecode based on specified patterns, similar to aspect-oriented

These type of warnings make me a little nervous about the robustness and
production-readiness of SERP.  Am I reading too much into this web page?
Or, should we be looking into "upgrading" OpenJPA to use ASM sometime in the
future?  I've experimented with SERP and the programming model seems to be a
slightly higher level which makes it easier to interact with.  But, are we
paying a price for this ease-of-use?  Just looking for some background
information on why SERP instead of ASM.


  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message