[Soot-list] Optimizing Soot class loading

Eric Bodden eric.bodden at uni-paderborn.de
Fri Jan 4 06:58:42 EST 2019


Hi Yifei.

My apologies for the late response. This is a _really_ long loading time - quite unusual. I believe that Andreas (in CC) is currently working on an optimized version of the class loading. I wonder if he has any comments on what you are seeing.

libzip.so is external code, which has nothing to do with Soot, though. To me this seems to suggest that the bottleneck may be in your operating system code, or in the way Soot / the Java runtime uses it.

Cheers
Eric

> On 17. Dec 2018, at 13:33, Yifei Zhang <yifei.zhang1992 at outlook.com> wrote:
> 
> Dear all,
>  
> I am using Soot to analyze a Java program with lots of dependencies (thousands of jar files). The application code is in one jar file, and it is specified by the -process-dir option. Other dependencies are specified by the -soot-classpathoption.
>  
> I found that the class loading is quite slow. It takes about 70 minutes running in a high-performance machine. The time is obtained by measuring the invocation ofScene.v().loadNecessaryClasses() inside the Main.run() method. 
>  
> I looked into the code for class loading of Soot and I guess one possible reason is the worklist algorithm for class loading (in the soot/SootResolver.java) is not optimized. Moreover, after profiling the Soot execution with the perf tool I found that the hot method during class loading is inside the libzip.so. I was wondering if anyone has any idea for optimizing this process. Or could anyone give me some advice or share some experience for optimizing the class loading of Soot?
>  
> Thanks a lot.
>  
> Cheers,
> Yifei
> _______________________________________________
> Soot-list mailing list
> Soot-list at CS.McGill.CA
> https://mailman.CS.McGill.CA/mailman/listinfo/soot-list



More information about the Soot-list mailing list