Android exception in dalvikvm
When I launch my application on my phone, I get a lot of the following error from the log :
E/dalvikvm( 2052): No free temp registers
E/dalvikvm( 2052): Jit: aborting trace compilation, reverting to interpreter
E/dalvikvm( 2052): No fr开发者_高级运维ee temp registers
E/dalvikvm( 2052): Jit: aborting trace compilation, reverting to interpreter
what's happened ?
The Dalvik JIT uses a simple & fast register allocator, and generally doesn't know how to spill. In this case, the JIT must have run out of free registers while compiling a trace and rather than attempt to spill, it abandoned the trace (in some cases, it will split the trace in two smaller chunks and retry).
This situation is more likely to occur on an Armv5te system because the JIT uses 16-bit Thumb instructions (which limit the set of useful registers). However, it is not expected to be a common problem (and it should only result is reduced performance - it shouldn't be a correctness issue). If you see this happening frequently, please file a bug report.
Thanks,
...Bill Buzbee
Looks like nothing to worry about. From the android issue tracker: http://code.google.com/p/android/issues/detail?id=18647
"This situation should never occur on an actual device > armv5te, and in any event represents a missed performance opportunity rather than a correctness problem. I'll change the LOGE's to LOGD's."
"The purpose of the message was to help the JIT developers determine whether a particular code pattern occurred frequently enough to justify extra optimization effort."
"If it happens occasionally on an older device (or the emulator) then it's safe to ignore. However, if you're seeing it constantly that suggests a problem - likely a misconfigured Dalvik VM build or perhaps new code has been added to the system that makes what was once an uncommon situation common."
精彩评论