101 #ifndef PRODUCT |
101 #ifndef PRODUCT |
102 // statistics |
102 // statistics |
103 int Runtime1::_generic_arraycopy_cnt = 0; |
103 int Runtime1::_generic_arraycopy_cnt = 0; |
104 int Runtime1::_primitive_arraycopy_cnt = 0; |
104 int Runtime1::_primitive_arraycopy_cnt = 0; |
105 int Runtime1::_oop_arraycopy_cnt = 0; |
105 int Runtime1::_oop_arraycopy_cnt = 0; |
|
106 int Runtime1::_generic_arraycopystub_cnt = 0; |
106 int Runtime1::_arraycopy_slowcase_cnt = 0; |
107 int Runtime1::_arraycopy_slowcase_cnt = 0; |
|
108 int Runtime1::_arraycopy_checkcast_cnt = 0; |
|
109 int Runtime1::_arraycopy_checkcast_attempt_cnt = 0; |
107 int Runtime1::_new_type_array_slowcase_cnt = 0; |
110 int Runtime1::_new_type_array_slowcase_cnt = 0; |
108 int Runtime1::_new_object_array_slowcase_cnt = 0; |
111 int Runtime1::_new_object_array_slowcase_cnt = 0; |
109 int Runtime1::_new_instance_slowcase_cnt = 0; |
112 int Runtime1::_new_instance_slowcase_cnt = 0; |
110 int Runtime1::_new_multi_array_slowcase_cnt = 0; |
113 int Runtime1::_new_multi_array_slowcase_cnt = 0; |
111 int Runtime1::_monitorenter_slowcase_cnt = 0; |
114 int Runtime1::_monitorenter_slowcase_cnt = 0; |
117 int Runtime1::_throw_null_pointer_exception_count = 0; |
120 int Runtime1::_throw_null_pointer_exception_count = 0; |
118 int Runtime1::_throw_class_cast_exception_count = 0; |
121 int Runtime1::_throw_class_cast_exception_count = 0; |
119 int Runtime1::_throw_incompatible_class_change_error_count = 0; |
122 int Runtime1::_throw_incompatible_class_change_error_count = 0; |
120 int Runtime1::_throw_array_store_exception_count = 0; |
123 int Runtime1::_throw_array_store_exception_count = 0; |
121 int Runtime1::_throw_count = 0; |
124 int Runtime1::_throw_count = 0; |
|
125 |
|
126 static int _byte_arraycopy_cnt = 0; |
|
127 static int _short_arraycopy_cnt = 0; |
|
128 static int _int_arraycopy_cnt = 0; |
|
129 static int _long_arraycopy_cnt = 0; |
|
130 static int _oop_arraycopy_cnt = 0; |
|
131 |
|
132 address Runtime1::arraycopy_count_address(BasicType type) { |
|
133 switch (type) { |
|
134 case T_BOOLEAN: |
|
135 case T_BYTE: return (address)&_byte_arraycopy_cnt; |
|
136 case T_CHAR: |
|
137 case T_SHORT: return (address)&_short_arraycopy_cnt; |
|
138 case T_FLOAT: |
|
139 case T_INT: return (address)&_int_arraycopy_cnt; |
|
140 case T_DOUBLE: |
|
141 case T_LONG: return (address)&_long_arraycopy_cnt; |
|
142 case T_ARRAY: |
|
143 case T_OBJECT: return (address)&_oop_arraycopy_cnt; |
|
144 default: |
|
145 ShouldNotReachHere(); |
|
146 return NULL; |
|
147 } |
|
148 } |
|
149 |
|
150 |
122 #endif |
151 #endif |
123 |
152 |
124 // Simple helper to see if the caller of a runtime stub which |
153 // Simple helper to see if the caller of a runtime stub which |
125 // entered the VM has been deoptimized |
154 // entered the VM has been deoptimized |
126 |
155 |
1227 tty->print_cr(" _resolve_invoke_opt_virtual_cnt: %d", SharedRuntime::_resolve_opt_virtual_ctr); |
1256 tty->print_cr(" _resolve_invoke_opt_virtual_cnt: %d", SharedRuntime::_resolve_opt_virtual_ctr); |
1228 tty->print_cr(" _resolve_invoke_static_cnt: %d", SharedRuntime::_resolve_static_ctr); |
1257 tty->print_cr(" _resolve_invoke_static_cnt: %d", SharedRuntime::_resolve_static_ctr); |
1229 tty->print_cr(" _handle_wrong_method_cnt: %d", SharedRuntime::_wrong_method_ctr); |
1258 tty->print_cr(" _handle_wrong_method_cnt: %d", SharedRuntime::_wrong_method_ctr); |
1230 tty->print_cr(" _ic_miss_cnt: %d", SharedRuntime::_ic_miss_ctr); |
1259 tty->print_cr(" _ic_miss_cnt: %d", SharedRuntime::_ic_miss_ctr); |
1231 tty->print_cr(" _generic_arraycopy_cnt: %d", _generic_arraycopy_cnt); |
1260 tty->print_cr(" _generic_arraycopy_cnt: %d", _generic_arraycopy_cnt); |
|
1261 tty->print_cr(" _generic_arraycopystub_cnt: %d", _generic_arraycopystub_cnt); |
|
1262 tty->print_cr(" _byte_arraycopy_cnt: %d", _byte_arraycopy_cnt); |
|
1263 tty->print_cr(" _short_arraycopy_cnt: %d", _short_arraycopy_cnt); |
|
1264 tty->print_cr(" _int_arraycopy_cnt: %d", _int_arraycopy_cnt); |
|
1265 tty->print_cr(" _long_arraycopy_cnt: %d", _long_arraycopy_cnt); |
1232 tty->print_cr(" _primitive_arraycopy_cnt: %d", _primitive_arraycopy_cnt); |
1266 tty->print_cr(" _primitive_arraycopy_cnt: %d", _primitive_arraycopy_cnt); |
1233 tty->print_cr(" _oop_arraycopy_cnt: %d", _oop_arraycopy_cnt); |
1267 tty->print_cr(" _oop_arraycopy_cnt (C): %d", Runtime1::_oop_arraycopy_cnt); |
|
1268 tty->print_cr(" _oop_arraycopy_cnt (stub): %d", _oop_arraycopy_cnt); |
1234 tty->print_cr(" _arraycopy_slowcase_cnt: %d", _arraycopy_slowcase_cnt); |
1269 tty->print_cr(" _arraycopy_slowcase_cnt: %d", _arraycopy_slowcase_cnt); |
|
1270 tty->print_cr(" _arraycopy_checkcast_cnt: %d", _arraycopy_checkcast_cnt); |
|
1271 tty->print_cr(" _arraycopy_checkcast_attempt_cnt:%d", _arraycopy_checkcast_attempt_cnt); |
1235 |
1272 |
1236 tty->print_cr(" _new_type_array_slowcase_cnt: %d", _new_type_array_slowcase_cnt); |
1273 tty->print_cr(" _new_type_array_slowcase_cnt: %d", _new_type_array_slowcase_cnt); |
1237 tty->print_cr(" _new_object_array_slowcase_cnt: %d", _new_object_array_slowcase_cnt); |
1274 tty->print_cr(" _new_object_array_slowcase_cnt: %d", _new_object_array_slowcase_cnt); |
1238 tty->print_cr(" _new_instance_slowcase_cnt: %d", _new_instance_slowcase_cnt); |
1275 tty->print_cr(" _new_instance_slowcase_cnt: %d", _new_instance_slowcase_cnt); |
1239 tty->print_cr(" _new_multi_array_slowcase_cnt: %d", _new_multi_array_slowcase_cnt); |
1276 tty->print_cr(" _new_multi_array_slowcase_cnt: %d", _new_multi_array_slowcase_cnt); |