1 research outputs found
Faster Variational Execution with Transparent Bytecode Transformation
Variational execution is a novel dynamic analysis technique for exploring
highly configurable systems and accurately tracking information flow. It is
able to efficiently analyze many configurations by aggressively sharing
redundancies of program executions. The idea of variational execution has been
demonstrated to be effective in exploring variations in the program, especially
when the configuration space grows out of control. Existing implementations of
variational execution often require heavy lifting of the runtime interpreter,
which is painstaking and error-prone. Furthermore, the performance of this
approach is suboptimal. For example, the state-of-the-art variational execution
interpreter for Java, VarexJ, slows down executions by 100 to 800 times over a
single execution for small to medium size Java programs. Instead of modifying
existing JVMs, we propose to transform existing bytecode to make it
variational, so it can be executed on an unmodified commodity JVM. Our
evaluation shows a dramatic improvement on performance over the
state-of-the-art, with a speedup of 2 to 46 times, and high efficiency in
sharing computations