Thursday, August 25, 2016

How to instrument Android Dalvik compiler?

Hello,

I need to instrument Android 4.3 Dalvik compiler for some purposes.
(http://ift.tt/2blUe5r)

What is the goal?
The goal is to calculate the elapsed execution time used by assignment statements in the Android Dalvik VM code.

What did I do so far?
I insert the following code between assignment statement(s) in the Android Dalvik VM source code:

Code:

Code:
start = get_time()
<assignment statements>
end = end_time()
elapsed_time = end-start

Why the above code does not work?
The above code does not work for the following reasons:
  1. The get_time() function, more specifically gettimeofday() or clock_gettime(), has higher resolution than the assignment statement and hence gives negative values.
  2. To solve the negative values above, I end up using a for-loop to loop 1 billion times for each code that has assignment statements. However, the Android code becomes extremely slow and does not work.

What do I need to do to solve the problem?
I need to instrument the Dalvik compiler to identify the assignment instructions and calculate/estimate their execution times at the compile-time (not at run-time).

Does anyone know how to do that?

Thank you!


from xda-developers http://ift.tt/2bTtAna
via IFTTT

No comments:

Post a Comment