[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Soot 1.2.2 Performance Issues



On Wed, 3 Jul 2002, Nathan Gulley wrote:

> We are trying to use the Soot 1.2.2 API to load and instrument classes on
> the fly. However,  I have been constrained from using it in a practical
> context by a Soot API performance bottleneck. Running on a 750 Mhz CPU with
> 400 MB RAM, it takes over 5 seconds to "create and set the scene":

The fundamental problem is that there are no small Java programs.  Soot
needs to know type signatures for all classes which are referred to by
your class, so it needs to do a lot of IO and a lot of instantiation,
because there are a lot of type signatures it needs in order to deal with
java.lang.Object methods.

> I would like to know if anyone else has encountered this performance
> bottleneck or performance bottlenecks in other uses. Also, any advice on
> how to overcome it is welcome.

Some people have looked at this problem and not been able to come up with
a solution.  Maybe there is a solution which we haven't thought of yet.
But we don't know any way of getting all this information into Soot
quickly, and we can't think of any way of omitting some of this
information.

Wild speculation: Perhaps nonblocking IO or multithreading the resolving
process might alleviate the problem somewhat, so that the JVM can read
from disk and instantiate classes at the same time.

Wild speculation 2: An obvious hack would be some sort of lazy resolution.
I don't think anyone's put any thought into that.

pat