[Soot-list] Optimizing Soot class loading

Yifei Zhang yifei.zhang1992 at outlook.com
Mon Dec 17 07:33:19 EST 2018


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-classpath option.

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 of Scene.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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.CS.McGill.CA/pipermail/soot-list/attachments/20181217/6f7bbd88/attachment.html>


More information about the Soot-list mailing list