-
Bug
-
Resolution: Fixed
-
P5
-
9, 10
-
b31
While investigating performance anomalies I noticed some odd looking profiles. For instance
12 invokevirtual 22 <java/lang/Integer.intValue()I>
112 bci: 12 VirtualCallData count(3397) nonprofiled_count(0) entries(1)
'java/lang/Integer'(80597 0.96)
35 invokevirtual 31 <java/lang/String.startsWith(Ljava/lang/String;)Z>
152 bci: 35 VirtualCallData count(449) nonprofiled_count(0) entries(1)
'java/lang/String'(15482 0.97)
These are all call sites where the resolved method for the invoke can_be_statically_bound. In the interpreter this uses profile_final_call which always just updates the counter and doesn't bother to update the profile. C1 still uses the normal type profile logic for these sites which leads to the funny looking profiles. C1 profiled code would probably execute a bit faster if it handled call sites like the interpreter and the profiles would be consistent. Presumably no one really cares about the profiles of call sites which are statically bindable but it's somewhat surprising that they look different than regular calls.
12 invokevirtual 22 <java/lang/Integer.intValue()I>
112 bci: 12 VirtualCallData count(3397) nonprofiled_count(0) entries(1)
'java/lang/Integer'(80597 0.96)
35 invokevirtual 31 <java/lang/String.startsWith(Ljava/lang/String;)Z>
152 bci: 35 VirtualCallData count(449) nonprofiled_count(0) entries(1)
'java/lang/String'(15482 0.97)
These are all call sites where the resolved method for the invoke can_be_statically_bound. In the interpreter this uses profile_final_call which always just updates the counter and doesn't bother to update the profile. C1 still uses the normal type profile logic for these sites which leads to the funny looking profiles. C1 profiled code would probably execute a bit faster if it handled call sites like the interpreter and the profiles would be consistent. Presumably no one really cares about the profiles of call sites which are statically bindable but it's somewhat surprising that they look different than regular calls.
- relates to
-
JDK-8190232 Monomorphic call profiles need proper fixup
-
- Open
-