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

Re: Limiting whole-program analysis



Ondrej Lhotak wrote:

On Thu, Jun 03, 2004 at 12:46:22AM +0200, Helge Jensen wrote:


Helge Jensen wrote:



Helge Jensen wrote:



What should I do? where is it described what I should do to stop the transitive traversal? any hints appreciated.


I'm wondering about the performance of the Points-to analysis, do these timings (on a P4M-1700Mhz, 1G ram) seem reasonable to you?



Yes, these are consistent with what I'm seeing.


I tend to run Spark with the class library from the 1.3.1 JDK, which in
this case ends up running about 6 times faster. I'm not quite sure what
it is about the 1.4 class library that takes so long.

Profiling the code, I see that over half the time is being spent
resolving virtual method calls.

Ondrej



My understanding based on CC03 paper (on SPARK) is that SPARK is used to calculate Points-to information and construct a precise call graph, if configured. So, when the below numbers indicate SPARK takes 140+ seconds, I am wondering if it's just to calculate points-to information (as in variable X points to M, N, and O abstract allocation objects) or is something more being calculated? If it's just points-to information then is there way of viewing points-to information to compare it with information generated from other points-to analysis implementation? Also, is there a way to view call graph information for purpose of comparison?

waiting for reply,

Analyzing the program "A.java":

public class A { public static void main(String[] args) { } }

I get the outputs:

$ java -Xmx400m soot.Main -w -p cg safe-forname:false -p cg.spark on,field-based:true -app A -src-prec java
Soot started on Thu Jun 03 00:34:26 CEST 2004
[Call Graph] For information on where the call graph may be incomplete, use the verbose option to the cg phase.
[Spark] Pointer Assignment Graph in 6.8 seconds.
[Spark] Type masks in 0.8 seconds.
[Spark] Pointer Graph simplified in 0.0 seconds.
[Spark] Propagation in 146.1 seconds.
[Spark] Solution found in 146.1 seconds.
Transforming A...
Soot finished on Thu Jun 03 00:37:05 CEST 2004
Soot has run for 2 min. 39 sec.


$ java -Xmx400m soot.Main -w -p cg.spark on -app A -src-prec java
Soot started on Thu Jun 03 00:40:30 CEST 2004
[Call Graph] For information on where the call graph may be incomplete, use the verbose option to the cg phase.
[Spark] Pointer Assignment Graph in 10.3 seconds.
[Spark] Type masks in 1.3 seconds.
[Spark] Pointer Graph simplified in 0.0 seconds.
[Spark] Propagation in 151.6 seconds.
[Spark] Solution found in 151.6 seconds.
Transforming A...
Soot finished on Thu Jun 03 00:43:24 CEST 2004
Soot has run for 2 min. 54 sec.


--
Helge








--

Venkatesh Prasad Ranganath,
Dept. Computing and Information Science,
Kansas State University, US.
web: http://www.cis.ksu.edu/~rvprasad