Thank you for your advice.
In my application, i am not concered with real time constraints in programs.
I only want to predict the time needed for execution (in a real VM) by
observing JPF.
Of course I could count the instructions, but as you said the
instructions might also differ in their complexity (and need more or
less time).
So, if I understand you right, I can assume that the time needed for
execution with JPF has a (linear) relation to the time needed by a
classic interpreter VM.
It would be ok for me to predict the time needed by a very simple VM, as
opposed to the time needed by an optimized VM (GC, JIT, ...).
-- Alex
On 05/07/2013 09:15 AM, Peter Mehlitz wrote:
> you have to model time, real time bears little resemblance to a production VM due to JIT and async GC, i.e. JPF is not only slower because of the state management overhead but also shows the more linear behavior of a classic interpreter without generational garbage collection.
>
> It sounds as if you want execution bounds, and just counting the number of executed instructions along paths might already be a useful approximation. JPF already does instruction counting (ThreadInfo.getExecutedInstructions()), which is also the basis for simple TimeModels such as ConstInsnPathTime. If you want to be more sophisticated, you can use a instructionExecuted listener that differentiates between instructions.
>
> -- Peter
>
> On May 5, 2013, at 11:02 PM, Alexander von Rhein <
rh...@fim.uni-passau.de> wrote:
>
>> Hi,
>>
>> I would like to use JPF to measure execution times of a program (on all execution paths).
>> I know that you should not use model checkers for this task, because they do much more work than a normal VM.
>> However I think that most of this additional work is state storing/loading/matching, right?
>> So if I measure only the time spent in transitions it should be more or less accurate.
>> Do you think this could work?
>> Is there any other time-intensive JPF-specific part that I can exclude from the timing?
>>
>> -- Alexander
>>
>> --
>>
>> --- You received this message because you are subscribed to the Google Groups "Java� Pathfinder" group.