# JMH version: 1.37 # VM version: JDK 23-internal, OpenJDK 64-Bit Server VM, 23-internal-adhoc.shipilev.shipilev-jdk # VM invoker: /local/home/shipilev/shipilev-jdk/build/linux-aarch64-server-release/images/jdk/bin/java # VM options: -Xmx4g -Xms4g -XX:+AlwaysPreTouch -XX:LoopUnrollLimit=1 -XX:-UseCompressedOops # Blackhole mode: compiler (auto-detected, use -Djmh.blackhole.autoDetect=false to disable) # Warmup: 10 iterations, single-shot each # Measurement: 500 iterations, single-shot each # Timeout: 10 min per iteration # Threads: 1 thread # Benchmark mode: Single shot invocation time # Benchmark: org.renaissance.scala.stdlib.JmhScalaKmeans.run # Run progress: 0.00% complete, ETA 00:00:00 # Fork: 1 of 1 # Preparing profilers: LinuxPerfAsmProfiler # Profilers consume stdout and stderr from target VM, use -v EXTRA to copy to console # Warmup Iteration 1: 1373.212 ms/op # Warmup Iteration 2: 291.198 ms/op # Warmup Iteration 3: 398.900 ms/op # Warmup Iteration 4: 258.923 ms/op # Warmup Iteration 5: 244.002 ms/op # Warmup Iteration 6: 233.593 ms/op # Warmup Iteration 7: 230.547 ms/op # Warmup Iteration 8: 231.104 ms/op # Warmup Iteration 9: 305.820 ms/op # Warmup Iteration 10: 232.560 ms/op Iteration 1: 233.508 ms/op Iteration 2: 231.976 ms/op Iteration 3: 231.367 ms/op Iteration 4: 230.738 ms/op Iteration 5: 232.171 ms/op Iteration 6: 229.778 ms/op Iteration 7: 231.534 ms/op Iteration 8: 229.958 ms/op Iteration 9: 232.839 ms/op Iteration 10: 232.924 ms/op Iteration 11: 229.997 ms/op Iteration 12: 230.030 ms/op Iteration 13: 231.100 ms/op Iteration 14: 231.124 ms/op Iteration 15: 232.010 ms/op Iteration 16: 231.043 ms/op Iteration 17: 230.609 ms/op Iteration 18: 231.669 ms/op Iteration 19: 236.265 ms/op Iteration 20: 230.924 ms/op Iteration 21: 230.475 ms/op Iteration 22: 229.347 ms/op Iteration 23: 233.237 ms/op Iteration 24: 230.206 ms/op Iteration 25: 230.119 ms/op Iteration 26: 230.786 ms/op Iteration 27: 230.315 ms/op Iteration 28: 236.955 ms/op Iteration 29: 231.709 ms/op Iteration 30: 229.674 ms/op Iteration 31: 229.771 ms/op Iteration 32: 230.802 ms/op Iteration 33: 242.383 ms/op Iteration 34: 231.443 ms/op Iteration 35: 229.822 ms/op Iteration 36: 232.305 ms/op Iteration 37: 229.358 ms/op Iteration 38: 233.261 ms/op Iteration 39: 229.593 ms/op Iteration 40: 230.505 ms/op Iteration 41: 229.506 ms/op Iteration 42: 230.081 ms/op Iteration 43: 231.431 ms/op Iteration 44: 230.828 ms/op Iteration 45: 232.384 ms/op Iteration 46: 230.842 ms/op Iteration 47: 232.082 ms/op Iteration 48: 244.050 ms/op Iteration 49: 231.065 ms/op Iteration 50: 229.209 ms/op Iteration 51: 231.155 ms/op Iteration 52: 231.416 ms/op Iteration 53: 230.326 ms/op Iteration 54: 230.105 ms/op Iteration 55: 230.384 ms/op Iteration 56: 229.031 ms/op Iteration 57: 229.568 ms/op Iteration 58: 229.683 ms/op Iteration 59: 228.899 ms/op Iteration 60: 228.976 ms/op Iteration 61: 228.396 ms/op Iteration 62: 230.881 ms/op Iteration 63: 229.351 ms/op Iteration 64: 228.956 ms/op Iteration 65: 231.446 ms/op Iteration 66: 232.383 ms/op Iteration 67: 232.289 ms/op Iteration 68: 232.052 ms/op Iteration 69: 230.456 ms/op Iteration 70: 230.819 ms/op Iteration 71: 230.605 ms/op Iteration 72: 232.493 ms/op Iteration 73: 229.464 ms/op Iteration 74: 229.560 ms/op Iteration 75: 230.342 ms/op Iteration 76: 243.064 ms/op Iteration 77: 230.115 ms/op Iteration 78: 229.917 ms/op Iteration 79: 231.223 ms/op Iteration 80: 232.082 ms/op Iteration 81: 228.816 ms/op Iteration 82: 229.841 ms/op Iteration 83: 228.689 ms/op Iteration 84: 229.118 ms/op Iteration 85: 230.116 ms/op Iteration 86: 228.539 ms/op Iteration 87: 228.798 ms/op Iteration 88: 229.806 ms/op Iteration 89: 229.156 ms/op Iteration 90: 228.369 ms/op Iteration 91: 229.829 ms/op Iteration 92: 228.726 ms/op Iteration 93: 228.633 ms/op Iteration 94: 231.396 ms/op Iteration 95: 229.732 ms/op Iteration 96: 229.244 ms/op Iteration 97: 229.768 ms/op Iteration 98: 229.397 ms/op Iteration 99: 229.037 ms/op Iteration 100: 228.448 ms/op Iteration 101: 228.840 ms/op Iteration 102: 230.251 ms/op Iteration 103: 228.735 ms/op Iteration 104: 228.315 ms/op Iteration 105: 227.829 ms/op Iteration 106: 229.789 ms/op Iteration 107: 231.258 ms/op Iteration 108: 230.153 ms/op Iteration 109: 229.058 ms/op Iteration 110: 228.908 ms/op Iteration 111: 228.972 ms/op Iteration 112: 230.164 ms/op Iteration 113: 228.317 ms/op Iteration 114: 229.772 ms/op Iteration 115: 229.543 ms/op Iteration 116: 229.806 ms/op Iteration 117: 228.925 ms/op Iteration 118: 231.097 ms/op Iteration 119: 231.346 ms/op Iteration 120: 230.760 ms/op Iteration 121: 232.053 ms/op Iteration 122: 230.224 ms/op Iteration 123: 232.700 ms/op Iteration 124: 229.824 ms/op Iteration 125: 228.547 ms/op Iteration 126: 228.642 ms/op Iteration 127: 230.655 ms/op Iteration 128: 229.751 ms/op Iteration 129: 228.521 ms/op Iteration 130: 230.320 ms/op Iteration 131: 228.329 ms/op Iteration 132: 228.737 ms/op Iteration 133: 229.198 ms/op Iteration 134: 229.019 ms/op Iteration 135: 228.408 ms/op Iteration 136: 229.884 ms/op Iteration 137: 231.309 ms/op Iteration 138: 228.398 ms/op Iteration 139: 228.255 ms/op Iteration 140: 285.874 ms/op Iteration 141: 229.915 ms/op Iteration 142: 228.959 ms/op Iteration 143: 228.264 ms/op Iteration 144: 228.522 ms/op Iteration 145: 228.971 ms/op Iteration 146: 232.424 ms/op Iteration 147: 229.277 ms/op Iteration 148: 228.188 ms/op Iteration 149: 230.482 ms/op Iteration 150: 230.105 ms/op Iteration 151: 231.845 ms/op Iteration 152: 227.870 ms/op Iteration 153: 228.487 ms/op Iteration 154: 228.765 ms/op Iteration 155: 229.248 ms/op Iteration 156: 228.571 ms/op Iteration 157: 228.310 ms/op Iteration 158: 229.726 ms/op Iteration 159: 231.614 ms/op Iteration 160: 229.164 ms/op Iteration 161: 229.064 ms/op Iteration 162: 229.636 ms/op Iteration 163: 230.061 ms/op Iteration 164: 233.992 ms/op Iteration 165: 233.384 ms/op Iteration 166: 229.790 ms/op Iteration 167: 229.985 ms/op Iteration 168: 229.555 ms/op Iteration 169: 229.209 ms/op Iteration 170: 229.775 ms/op Iteration 171: 230.639 ms/op Iteration 172: 230.457 ms/op Iteration 173: 229.232 ms/op Iteration 174: 229.118 ms/op Iteration 175: 228.828 ms/op Iteration 176: 229.628 ms/op Iteration 177: 229.790 ms/op Iteration 178: 229.249 ms/op Iteration 179: 231.595 ms/op Iteration 180: 230.064 ms/op Iteration 181: 230.991 ms/op Iteration 182: 230.395 ms/op Iteration 183: 231.166 ms/op Iteration 184: 230.249 ms/op Iteration 185: 230.876 ms/op Iteration 186: 230.060 ms/op Iteration 187: 230.441 ms/op Iteration 188: 232.522 ms/op Iteration 189: 231.662 ms/op Iteration 190: 230.167 ms/op Iteration 191: 231.123 ms/op Iteration 192: 233.274 ms/op Iteration 193: 232.766 ms/op Iteration 194: 231.928 ms/op Iteration 195: 229.855 ms/op Iteration 196: 229.030 ms/op Iteration 197: 229.705 ms/op Iteration 198: 232.166 ms/op Iteration 199: 230.351 ms/op Iteration 200: 229.493 ms/op Iteration 201: 229.399 ms/op Iteration 202: 231.358 ms/op Iteration 203: 230.139 ms/op Iteration 204: 229.337 ms/op Iteration 205: 234.589 ms/op Iteration 206: 238.653 ms/op Iteration 207: 236.506 ms/op Iteration 208: 236.802 ms/op Iteration 209: 231.322 ms/op Iteration 210: 230.500 ms/op Iteration 211: 229.335 ms/op Iteration 212: 230.541 ms/op Iteration 213: 229.720 ms/op Iteration 214: 229.633 ms/op Iteration 215: 229.952 ms/op Iteration 216: 230.424 ms/op Iteration 217: 228.851 ms/op Iteration 218: 230.186 ms/op Iteration 219: 230.910 ms/op Iteration 220: 229.944 ms/op Iteration 221: 229.541 ms/op Iteration 222: 231.981 ms/op Iteration 223: 232.812 ms/op Iteration 224: 229.061 ms/op Iteration 225: 229.438 ms/op Iteration 226: 229.174 ms/op Iteration 227: 228.285 ms/op Iteration 228: 232.139 ms/op Iteration 229: 233.970 ms/op Iteration 230: 229.813 ms/op Iteration 231: 229.181 ms/op Iteration 232: 229.959 ms/op Iteration 233: 229.316 ms/op Iteration 234: 231.328 ms/op Iteration 235: 233.882 ms/op Iteration 236: 231.327 ms/op Iteration 237: 229.715 ms/op Iteration 238: 229.648 ms/op Iteration 239: 228.638 ms/op Iteration 240: 229.009 ms/op Iteration 241: 231.075 ms/op Iteration 242: 229.392 ms/op Iteration 243: 228.636 ms/op Iteration 244: 229.417 ms/op Iteration 245: 230.552 ms/op Iteration 246: 233.625 ms/op Iteration 247: 231.666 ms/op Iteration 248: 229.823 ms/op Iteration 249: 229.003 ms/op Iteration 250: 232.151 ms/op Iteration 251: 231.604 ms/op Iteration 252: 229.350 ms/op Iteration 253: 228.978 ms/op Iteration 254: 228.754 ms/op Iteration 255: 229.587 ms/op Iteration 256: 229.061 ms/op Iteration 257: 228.967 ms/op Iteration 258: 228.578 ms/op Iteration 259: 228.940 ms/op Iteration 260: 230.090 ms/op Iteration 261: 228.459 ms/op Iteration 262: 228.788 ms/op Iteration 263: 230.026 ms/op Iteration 264: 231.503 ms/op Iteration 265: 230.003 ms/op Iteration 266: 230.248 ms/op Iteration 267: 229.247 ms/op Iteration 268: 229.105 ms/op Iteration 269: 229.777 ms/op Iteration 270: 229.174 ms/op Iteration 271: 228.534 ms/op Iteration 272: 228.902 ms/op Iteration 273: 230.188 ms/op Iteration 274: 230.211 ms/op Iteration 275: 230.118 ms/op Iteration 276: 230.110 ms/op Iteration 277: 229.053 ms/op Iteration 278: 230.270 ms/op Iteration 279: 229.998 ms/op Iteration 280: 228.594 ms/op Iteration 281: 229.226 ms/op Iteration 282: 229.989 ms/op Iteration 283: 228.185 ms/op Iteration 284: 228.194 ms/op Iteration 285: 229.508 ms/op Iteration 286: 229.894 ms/op Iteration 287: 228.954 ms/op Iteration 288: 228.456 ms/op Iteration 289: 253.530 ms/op Iteration 290: 229.831 ms/op Iteration 291: 230.283 ms/op Iteration 292: 228.446 ms/op Iteration 293: 231.259 ms/op Iteration 294: 230.046 ms/op Iteration 295: 229.488 ms/op Iteration 296: 228.623 ms/op Iteration 297: 228.475 ms/op Iteration 298: 228.823 ms/op Iteration 299: 228.902 ms/op Iteration 300: 229.487 ms/op Iteration 301: 228.310 ms/op Iteration 302: 229.005 ms/op Iteration 303: 228.848 ms/op Iteration 304: 229.062 ms/op Iteration 305: 228.716 ms/op Iteration 306: 228.408 ms/op Iteration 307: 230.962 ms/op Iteration 308: 229.648 ms/op Iteration 309: 229.515 ms/op Iteration 310: 228.225 ms/op Iteration 311: 229.756 ms/op Iteration 312: 229.788 ms/op Iteration 313: 229.598 ms/op Iteration 314: 228.206 ms/op Iteration 315: 228.575 ms/op Iteration 316: 228.774 ms/op Iteration 317: 230.027 ms/op Iteration 318: 227.972 ms/op Iteration 319: 228.590 ms/op Iteration 320: 228.846 ms/op Iteration 321: 232.160 ms/op Iteration 322: 230.546 ms/op Iteration 323: 228.408 ms/op Iteration 324: 228.529 ms/op Iteration 325: 231.148 ms/op Iteration 326: 228.967 ms/op Iteration 327: 231.940 ms/op Iteration 328: 230.142 ms/op Iteration 329: 228.905 ms/op Iteration 330: 229.662 ms/op Iteration 331: 230.443 ms/op Iteration 332: 229.787 ms/op Iteration 333: 229.333 ms/op Iteration 334: 229.527 ms/op Iteration 335: 231.027 ms/op Iteration 336: 229.470 ms/op Iteration 337: 228.456 ms/op Iteration 338: 230.022 ms/op Iteration 339: 229.004 ms/op Iteration 340: 228.639 ms/op Iteration 341: 228.602 ms/op Iteration 342: 228.705 ms/op Iteration 343: 228.368 ms/op Iteration 344: 229.250 ms/op Iteration 345: 228.391 ms/op Iteration 346: 229.646 ms/op Iteration 347: 229.014 ms/op Iteration 348: 229.195 ms/op Iteration 349: 230.179 ms/op Iteration 350: 229.238 ms/op Iteration 351: 229.303 ms/op Iteration 352: 228.916 ms/op Iteration 353: 228.744 ms/op Iteration 354: 228.704 ms/op Iteration 355: 229.414 ms/op Iteration 356: 228.684 ms/op Iteration 357: 228.773 ms/op Iteration 358: 228.712 ms/op Iteration 359: 228.186 ms/op Iteration 360: 229.604 ms/op Iteration 361: 229.536 ms/op Iteration 362: 228.939 ms/op Iteration 363: 229.322 ms/op Iteration 364: 229.375 ms/op Iteration 365: 228.787 ms/op Iteration 366: 229.366 ms/op Iteration 367: 228.746 ms/op Iteration 368: 228.695 ms/op Iteration 369: 228.922 ms/op Iteration 370: 228.614 ms/op Iteration 371: 228.279 ms/op Iteration 372: 228.751 ms/op Iteration 373: 230.562 ms/op Iteration 374: 232.458 ms/op Iteration 375: 230.737 ms/op Iteration 376: 228.296 ms/op Iteration 377: 229.115 ms/op Iteration 378: 231.732 ms/op Iteration 379: 228.540 ms/op Iteration 380: 227.746 ms/op Iteration 381: 229.040 ms/op Iteration 382: 228.561 ms/op Iteration 383: 229.244 ms/op Iteration 384: 229.155 ms/op Iteration 385: 228.451 ms/op Iteration 386: 228.726 ms/op Iteration 387: 229.050 ms/op Iteration 388: 227.874 ms/op Iteration 389: 229.277 ms/op Iteration 390: 229.661 ms/op Iteration 391: 228.978 ms/op Iteration 392: 231.122 ms/op Iteration 393: 228.598 ms/op Iteration 394: 229.385 ms/op Iteration 395: 228.703 ms/op Iteration 396: 230.897 ms/op Iteration 397: 228.272 ms/op Iteration 398: 228.242 ms/op Iteration 399: 229.142 ms/op Iteration 400: 229.513 ms/op Iteration 401: 227.970 ms/op Iteration 402: 229.057 ms/op Iteration 403: 230.027 ms/op Iteration 404: 228.722 ms/op Iteration 405: 228.912 ms/op Iteration 406: 231.617 ms/op Iteration 407: 228.999 ms/op Iteration 408: 228.672 ms/op Iteration 409: 229.525 ms/op Iteration 410: 228.246 ms/op Iteration 411: 228.535 ms/op Iteration 412: 229.821 ms/op Iteration 413: 228.006 ms/op Iteration 414: 229.677 ms/op Iteration 415: 228.483 ms/op Iteration 416: 229.176 ms/op Iteration 417: 228.185 ms/op Iteration 418: 229.280 ms/op Iteration 419: 228.244 ms/op Iteration 420: 229.787 ms/op Iteration 421: 229.015 ms/op Iteration 422: 228.166 ms/op Iteration 423: 228.198 ms/op Iteration 424: 228.734 ms/op Iteration 425: 234.221 ms/op Iteration 426: 230.010 ms/op Iteration 427: 229.292 ms/op Iteration 428: 228.584 ms/op Iteration 429: 229.486 ms/op Iteration 430: 229.644 ms/op Iteration 431: 229.180 ms/op Iteration 432: 228.380 ms/op Iteration 433: 229.259 ms/op Iteration 434: 231.479 ms/op Iteration 435: 229.037 ms/op Iteration 436: 229.132 ms/op Iteration 437: 229.470 ms/op Iteration 438: 229.185 ms/op Iteration 439: 228.421 ms/op Iteration 440: 228.626 ms/op Iteration 441: 228.346 ms/op Iteration 442: 228.271 ms/op Iteration 443: 228.231 ms/op Iteration 444: 228.791 ms/op Iteration 445: 228.490 ms/op Iteration 446: 228.597 ms/op Iteration 447: 229.228 ms/op Iteration 448: 230.768 ms/op Iteration 449: 230.215 ms/op Iteration 450: 228.481 ms/op Iteration 451: 228.464 ms/op Iteration 452: 229.314 ms/op Iteration 453: 230.122 ms/op Iteration 454: 228.727 ms/op Iteration 455: 228.022 ms/op Iteration 456: 228.922 ms/op Iteration 457: 227.622 ms/op Iteration 458: 229.713 ms/op Iteration 459: 228.359 ms/op Iteration 460: 228.278 ms/op Iteration 461: 229.953 ms/op Iteration 462: 228.800 ms/op Iteration 463: 231.391 ms/op Iteration 464: 228.599 ms/op Iteration 465: 228.870 ms/op Iteration 466: 227.827 ms/op Iteration 467: 234.540 ms/op Iteration 468: 235.760 ms/op Iteration 469: 231.163 ms/op Iteration 470: 229.175 ms/op Iteration 471: 229.819 ms/op Iteration 472: 228.603 ms/op Iteration 473: 228.808 ms/op Iteration 474: 228.875 ms/op Iteration 475: 229.347 ms/op Iteration 476: 229.419 ms/op Iteration 477: 230.196 ms/op Iteration 478: 229.678 ms/op Iteration 479: 229.788 ms/op Iteration 480: 229.780 ms/op Iteration 481: 228.388 ms/op Iteration 482: 229.147 ms/op Iteration 483: 232.547 ms/op Iteration 484: 230.204 ms/op Iteration 485: 229.379 ms/op Iteration 486: 228.716 ms/op Iteration 487: 228.692 ms/op Iteration 488: 228.357 ms/op Iteration 489: 228.800 ms/op Iteration 490: 228.642 ms/op Iteration 491: 231.562 ms/op Iteration 492: 228.200 ms/op Iteration 493: 229.329 ms/op Iteration 494: 228.044 ms/op Iteration 495: 228.142 ms/op Iteration 496: 233.021 ms/op Iteration 497: 230.080 ms/op Iteration 498: 228.215 ms/op Iteration 499: 228.884 ms/op Iteration 500: 229.153 ms/op # Processing profiler results: LinuxPerfAsmProfiler Result "org.renaissance.scala.stdlib.JmhScalaKmeans.run": N = 500 mean = 230.084 ±(99.9%) 0.484 ms/op Histogram, ms/op: [220.000, 225.000) = 0 [225.000, 230.000) = 324 [230.000, 235.000) = 165 [235.000, 240.000) = 6 [240.000, 245.000) = 3 [245.000, 250.000) = 0 [250.000, 255.000) = 1 [255.000, 260.000) = 0 [260.000, 265.000) = 0 [265.000, 270.000) = 0 [270.000, 275.000) = 0 [275.000, 280.000) = 0 [280.000, 285.000) = 0 Percentiles, ms/op: p(0.0000) = 227.622 ms/op p(50.0000) = 229.511 ms/op p(90.0000) = 231.972 ms/op p(95.0000) = 232.920 ms/op p(99.0000) = 242.346 ms/op p(99.9000) = 285.874 ms/op p(99.9900) = 285.874 ms/op p(99.9990) = 285.874 ms/op p(99.9999) = 285.874 ms/op p(100.0000) = 285.874 ms/op Secondary result "org.renaissance.scala.stdlib.JmhScalaKmeans.run:asm": PrintAssembly processed: 678949 total address lines. Perf output processed (skipped 13.942 seconds): Column 1: cycles (119853 events) Hottest code regions (>10.00% "cycles" events): Event counts are percents of total event count. ....[Hottest Region 1].............................................................................. c2, level 4, scala.collection.immutable.Vector::foreach, version 4, compile id 1543 0x0000ffff702e410c: mov x16, x22 0x0000ffff702e4110: mov x12, x23 0x0000ffff702e4114: mov w14, w24 0x0000ffff702e4118: mov w1, w26 0x0000ffff702e411c: mov w18, w25 0x0000ffff702e4120: mov w15, w29 0x0000ffff702e4124: mov x17, x27 0x0000ffff702e4128: ldr w13, [sp] 0x0000ffff702e412c: nop ;*aload_1 {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.Vector::foreach@70 (line 2124) 23.26% ↗↗↗↗ 0x0000ffff702e4130: add w20, w20, #0x1 ;*iinc {reexecute=0 rethrow=0 return_oop=0} ││││ ; - scala.collection.immutable.Vector::foreach@82 (line 2125) 1.57% ││││ 0x0000ffff702e4134: cmp w20, w19 ││││ 0x0000ffff702e4138: b.ge 0x0000ffff702e408c // b.tcont;*aload_1 {reexecute=0 rethrow=0 return_oop=0} ││││ ; - scala.collection.immutable.Vector::foreach@70 (line 2124) 1.94% ││││ 0x0000ffff702e413c: add x10, x17, w20, sxtw #3 1.10% ││││ 0x0000ffff702e4140: ldr x22, [x10, #16] ;*aaload {reexecute=0 rethrow=0 return_oop=0} ││││ ; - scala.collection.immutable.Vector::foreach@75 (line 2124) 1.88% ││││ 0x0000ffff702e4144: ldp x11, x10, [x21, #16] ;*getfield arg$2 {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::applyVoid@5 ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) ││││ ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 1.14% ││││ 0x0000ffff702e4148: ldr x23, [x21, #32] ;*getfield arg$3 {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::applyVoid@9 ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) ││││ ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 1.07% ││││ 0x0000ffff702e414c: ldr w0, [x22, #8] ; implicit exception: dispatches to 0x0000ffff702e4ae8 0.09% ││││ 0x0000ffff702e4150: mov x2, #0x1100000 // #17825792 ││││ ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$Point')} 2.64% ││││ 0x0000ffff702e4154: movk x2, #0x7c88 1.00% ││││ 0x0000ffff702e4158: cmp w0, w2 ││││ 0x0000ffff702e415c: b.ne 0x0000ffff702e4974 // b.any;*checkcast {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::applyVoid@13 ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) ││││ ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 1.45% ││││ 0x0000ffff702e4160: ldr d16, [x11, #16] ; implicit exception: dispatches to 0x0000ffff702e4b18 1.94% ││││ 0x0000ffff702e4164: ldr d17, [x22, #16] 1.14% ││││ 0x0000ffff702e4168: ldr d18, [x11, #24] 1.28% ││││ 0x0000ffff702e416c: ldr d19, [x22, #24] 1.10% ││││ 0x0000ffff702e4170: ldr d20, [x11, #32] 1.16% ││││ 0x0000ffff702e4174: ldr d21, [x22, #32] 1.23% ││││ 0x0000ffff702e4178: ldr d22, [x10, #16] ; implicit exception: dispatches to 0x0000ffff702e4b30 1.18% ││││ 0x0000ffff702e417c: fsub d16, d17, d16 ;*dsub {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@9 (line 20) ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$$anonfun$1@2 (line 48) ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::applyVoid@16 ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) ││││ ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 1.05% ││││ 0x0000ffff702e4180: fsub d17, d19, d18 ;*dsub {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@22 (line 20) ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$$anonfun$1@2 (line 48) ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::applyVoid@16 ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) ││││ ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 0.36% ││││ 0x0000ffff702e4184: fmul d16, d16, d16 0.68% ││││ 0x0000ffff702e4188: fmul d17, d17, d17 0.37% ││││ 0x0000ffff702e418c: fsub d18, d21, d20 ;*dsub {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@36 (line 20) ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$$anonfun$1@2 (line 48) ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::applyVoid@16 ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) ││││ ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 0.74% ││││ 0x0000ffff702e4190: fadd d16, d16, d17 0.71% ││││ 0x0000ffff702e4194: fmul d17, d18, d18 0.35% ││││ 0x0000ffff702e4198: fadd d16, d16, d17 ;*dadd {reexecute=0 rethrow=0 return_oop=0} ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@40 (line 20) ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$$anonfun$1@2 (line 48) ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::applyVoid@16 ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) ││││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) ││││ ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 0.70% ││││ 0x0000ffff702e419c: fcmp d22, d16 1.03% ╰│││ 0x0000ffff702e41a0: b.le 0x0000ffff702e4130 ;*ifge {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$$anonfun$1@14 (line 49) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 1.98% │││ 0x0000ffff702e41a4: str d16, [x10, #16] ;*putfield elem {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$$anonfun$1@24 (line 50) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 3.17% │││ 0x0000ffff702e41a8: cbz x23, 0x0000ffff702e473c 0.14% │││ 0x0000ffff702e41ac: ldrsb w11, [x28, #56] 1.12% │││ 0x0000ffff702e41b0: cbnz w11, 0x0000ffff702e4218 0.42% │││ 0x0000ffff702e41b4: mov x10, x23 0.09% │││ 0x0000ffff702e41b8: mov x11, x22 0.06% │││ 0x0000ffff702e41bc: eor x11, x11, x10 0.10% │││ 0x0000ffff702e41c0: lsr x11, x11, #21 0.09% │││ 0x0000ffff702e41c4: str x22, [x23, #16] 0.09% ╰││ 0x0000ffff702e41c8: cbz x11, 0x0000ffff702e4130 0.09% ││ 0x0000ffff702e41cc: lsr x10, x10, #9 0.01% ││ 0x0000ffff702e41d0: mov x11, #0xc000 // #49152 0.06% ││ 0x0000ffff702e41d4: movk x11, #0x664c, lsl #16 0.01% ││ 0x0000ffff702e41d8: movk x11, #0xff7e, lsl #32 0.06% ││ 0x0000ffff702e41dc: add x0, x11, x10 0.09% ││ 0x0000ffff702e41e0: ldrsb w10, [x0] 0.98% ││ 0x0000ffff702e41e4: cmp w10, #0x2 ╰│ 0x0000ffff702e41e8: b.eq 0x0000ffff702e4130 // b.none │ 0x0000ffff702e41ec: ldp x11, x10, [x28, #64] │ 0x0000ffff702e41f0: dmb ish │ 0x0000ffff702e41f4: ldrsb w2, [x0] ╰ 0x0000ffff702e41f8: cbz w2, 0x0000ffff702e4130 0x0000ffff702e41fc: strb wzr, [x0] 0x0000ffff702e4200: cbz x11, 0x0000ffff702e40c0 0x0000ffff702e4204: sub x2, x11, #0x8 0x0000ffff702e4208: add x10, x10, x11 0x0000ffff702e420c: stur x0, [x10, #-8] .................................................................................................... 60.69% ....[Hottest Region 2].............................................................................. c2, level 4, scala.collection.IterableOps::groupBy, version 6, compile id 1567 0x0000ffff702ee708: nop ; {other} 0x0000ffff702ee70c: movk xzr, #0x778 0x0000ffff702ee710: movk xzr, #0x400 ;*invokevirtual hashCode {reexecute=0 rethrow=0 return_oop=0} ; - scala.runtime.Statics::anyHash@22 (line 127) ; - scala.collection.mutable.HashMap::getOrElseUpdate@90 (line 78) ; - scala.collection.IterableOps::groupBy@53 (line 561) 0x0000ffff702ee714: mov x15, x29 0x0000ffff702ee718: ldr x14, [sp, #16] 0x0000ffff702ee71c: ldr x16, [sp, #40] ╭ 0x0000ffff702ee720: b 0x0000ffff702eea64 0.08% │ ↗ 0x0000ffff702ee724: str x17, [sp, #32] 0.02% │ │ 0x0000ffff702ee728: mov x29, x15 ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} │ │ ; - scala.collection.immutable.VectorBuilder::addOne@13 (line 1702) │ │ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ │ ; - scala.collection.IterableOps::groupBy@74 (line 562) 0.04% │ │↗ 0x0000ffff702ee72c: ldr x11, [x10, #72] ;*getfield a1 {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - scala.collection.immutable.VectorBuilder::addOne@14 (line 1702) │ ││ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ ││ ; - scala.collection.IterableOps::groupBy@74 (line 562) │ ││ 0x0000ffff702ee730: mov x19, x10 0.11% │ ││ 0x0000ffff702ee734: add x10, x11, w20, sxtw #3 0.03% │ ││ 0x0000ffff702ee738: ldr w12, [x11, #12] ; implicit exception: dispatches to 0x0000ffff702efa6c 1.35% │ ││ 0x0000ffff702ee73c: ldr w14, [x11, #8] 0.10% │ ││ 0x0000ffff702ee740: add x21, x10, #0x10 0.03% │ ││ 0x0000ffff702ee744: cmp w20, w12 0.00% │ ││ 0x0000ffff702ee748: b.cs 0x0000ffff702eef0c // b.hs, b.nlast 0.15% │ ││ 0x0000ffff702ee74c: movz x12, #0x0, lsl #16 ; {metadata('java/lang/Object'[])} │ ││ 0x0000ffff702ee750: movk x12, #0x1258 0.04% │ ││ 0x0000ffff702ee754: cmp w14, w12 │ ││ 0x0000ffff702ee758: b.ne 0x0000ffff702ef038 // b.any;*putfield v {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - scala.collection.immutable.NewVectorIterator::<init>@2 (line 2238) │ ││ ; - scala.collection.immutable.Vector::iterator@27 (line 131) │ ││ ; - scala.collection.IterableOps::groupBy@11 (line 557) 0.06% │ ││ 0x0000ffff702ee75c: ldrsb w10, [x28, #56] 0.04% │╭ ││ 0x0000ffff702ee760: cbnz w10, 0x0000ffff702eeb5c 0.02% ││ ││ ↗ 0x0000ffff702ee764: ldr x11, [sp, #64] 0.01% ││ ││ │ 0x0000ffff702ee768: mov x10, x21 0.02% ││ ││ │ 0x0000ffff702ee76c: eor x11, x11, x10 0.02% ││ ││ │ 0x0000ffff702ee770: lsr x11, x11, #21 0.03% ││ ││ │ 0x0000ffff702ee774: ldr x12, [sp, #64] 0.04% ││ ││ │ 0x0000ffff702ee778: str x12, [x21] 0.04% ││╭ ││ │ 0x0000ffff702ee77c: cbz x11, 0x0000ffff702ee7a0 0.04% │││ ││ │ 0x0000ffff702ee780: lsr x10, x10, #9 0.01% │││ ││ │ 0x0000ffff702ee784: mov x11, #0xc000 // #49152 0.03% │││ ││ │ 0x0000ffff702ee788: movk x11, #0x664c, lsl #16 0.01% │││ ││ │ 0x0000ffff702ee78c: movk x11, #0xff7e, lsl #32 0.02% │││ ││ │ 0x0000ffff702ee790: add x0, x11, x10 0.03% │││ ││ │ 0x0000ffff702ee794: ldrsb w11, [x0] 0.50% │││ ││ │ 0x0000ffff702ee798: cmp w11, #0x2 │││ ││ │ 0x0000ffff702ee79c: b.ne 0x0000ffff702ee694 // b.any;*getfield scala$collection$immutable$VectorBuilder$$len1 {reexecute=0 rethrow=0 return_oop=0} │││ ││ │ ; - scala.collection.immutable.VectorBuilder::addOne@25 (line 1703) │││ ││ │ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │││ ││ │ ; - scala.collection.IterableOps::groupBy@74 (line 562) 0.16% ││↘ ││ │ 0x0000ffff702ee7a0: add w10, w20, #0x1 ;*putfield v {reexecute=0 rethrow=0 return_oop=0} ││ ││ │ ; - scala.collection.immutable.NewVectorIterator::<init>@2 (line 2238) ││ ││ │ ; - scala.collection.immutable.Vector::iterator@27 (line 131) ││ ││ │ ; - scala.collection.IterableOps::groupBy@11 (line 557) 0.02% ││ ││ │ 0x0000ffff702ee7a4: ldr x11, [x28, #1120] 0.03% ││ ││ │ 0x0000ffff702ee7a8: str w10, [x19, #12] ; ImmutableOopMap {rfp=Oop [0]=Oop [8]=Oop [24]=Oop [32]=Oop } ││ ││ │ ;*goto {reexecute=1 rethrow=0 return_oop=0} ││ ││ │ ; - (reexecute) scala.collection.IterableOps::groupBy@80 (line 562) 0.04% ││ ││ │ 0x0000ffff702ee7ac: ldr wzr, [x11] ;*goto {reexecute=0 rethrow=0 return_oop=0} ││ ││ │ ; - scala.collection.IterableOps::groupBy@80 (line 562) ││ ││ │ ; {poll} 0.03% ││ ││ │ 0x0000ffff702ee7b0: ldr x19, [sp, #24] 0.03% ││ ││ │ 0x0000ffff702ee7b4: ldr w14, [x19, #24] ;*getfield scala$collection$immutable$NewVectorIterator$$i1 {reexecute=0 rethrow=0 return_oop=0} ││ ││ │ ; - scala.collection.immutable.NewVectorIterator::hasNext@5 (line 2261) ││ ││ │ ; - scala.collection.IterableOps::groupBy@18 (line 558) 0.03% ││ ││ │ 0x0000ffff702ee7b8: ldr w10, [x19, #32] 0.03% ││ ││ │ 0x0000ffff702ee7bc: cmp w10, w14 ││ ││ │ 0x0000ffff702ee7c0: b.le 0x0000ffff702eec50 ;*aload_3 {reexecute=0 rethrow=0 return_oop=0} ││ ││ │ ; - scala.collection.IterableOps::groupBy@26 (line 559) 0.06% ││ ││ │ 0x0000ffff702ee7c4: ldr w10, [x19, #20] ;*getfield a1len {reexecute=0 rethrow=0 return_oop=0} ││ ││ │ ; - scala.collection.immutable.NewVectorIterator::next@5 (line 2264) ││ ││ │ ; - scala.collection.IterableOps::groupBy@27 (line 559) 0.04% ││ ││ │ 0x0000ffff702ee7c8: ldr x0, [sp] 0.01% ││ ││ │ 0x0000ffff702ee7cc: mov x21, x29 0.03% ││ ││ │ 0x0000ffff702ee7d0: ldr x18, [sp, #8] ;*aload_3 {reexecute=0 rethrow=0 return_oop=0} ││ ││ │ ; - scala.collection.IterableOps::groupBy@26 (line 559) 0.04% ││ ││ │ 0x0000ffff702ee7d4: cmp w14, w10 ││ ╭ ││ │ 0x0000ffff702ee7d8: b.eq 0x0000ffff702eeb24 // b.none;*aload_0 {reexecute=0 rethrow=0 return_oop=0} ││ │ ││ │ ; - scala.collection.immutable.NewVectorIterator::next@15 (line 2265) ││ │ ││ │ ; - scala.collection.IterableOps::groupBy@27 (line 559) 0.04% ││ │ ││↗│ 0x0000ffff702ee7dc: ldr x10, [x19, #64] ;*getfield a1 {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.NewVectorIterator::next@16 (line 2265) ││ │ ││││ ; - scala.collection.IterableOps::groupBy@27 (line 559) 0.04% ││ │ ││││ 0x0000ffff702ee7e0: ldr w11, [x10, #12] ; implicit exception: dispatches to 0x0000ffff702ef950 0.00% ││ │ ││││ 0x0000ffff702ee7e4: add x12, x10, w14, sxtw #3 0.03% ││ │ ││││ 0x0000ffff702ee7e8: cmp w14, w11 ││ │ ││││ 0x0000ffff702ee7ec: b.cs 0x0000ffff702eeee0 // b.hs, b.nlast 0.03% ││ │ ││││ 0x0000ffff702ee7f0: ldr x13, [x12, #16] ;*aaload {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.NewVectorIterator::next@23 (line 2265) ││ │ ││││ ; - scala.collection.IterableOps::groupBy@27 (line 559) 0.07% ││ │ ││││ 0x0000ffff702ee7f4: add w12, w14, #0x1 0.20% ││ │ ││││ 0x0000ffff702ee7f8: ldp x10, x11, [x18, #16] ;*getfield arg$2 {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@5 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.02% ││ │ ││││ 0x0000ffff702ee7fc: str w12, [x19, #24] ;*putfield scala$collection$immutable$NewVectorIterator$$i1 {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.NewVectorIterator::next@32 (line 2266) ││ │ ││││ ; - scala.collection.IterableOps::groupBy@27 (line 559) 0.04% ││ │ ││││ 0x0000ffff702ee800: ldr w14, [x13, #8] ; implicit exception: dispatches to 0x0000ffff702ef968 0.01% ││ │ ││││ 0x0000ffff702ee804: mov x15, #0x1100000 // #17825792 ││ │ ││││ ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$Point')} 0.27% ││ │ ││││ 0x0000ffff702ee808: movk x15, #0x7c88 0.03% ││ │ ││││ 0x0000ffff702ee80c: cmp w14, w15 ││ │ ││││ 0x0000ffff702ee810: b.ne 0x0000ffff702ef7a4 // b.any 0.04% ││ │ ││││ 0x0000ffff702ee814: mov x12, x13 ;*checkcast {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@9 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee818: ldr w17, [x10, #8] ; implicit exception: dispatches to 0x0000ffff702ef994 ││ │ ││││ 0x0000ffff702ee81c: mov x14, #0x1090000 // #17367040 ││ │ ││││ ; {metadata('org/renaissance/scala/stdlib/ScalaKmeans')} 0.03% ││ │ ││││ 0x0000ffff702ee820: movk x14, #0x51f8 0.04% ││ │ ││││ 0x0000ffff702ee824: cmp w17, w14 ││ │ ││││ 0x0000ffff702ee828: b.ne 0x0000ffff702ef880 // b.any;*invokeinterface $anonfun$1 {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee82c: ldr w14, [x10, #8] 0.01% ││ │ ││││ 0x0000ffff702ee830: mov x16, #0x1090000 // #17367040 ││ │ ││││ ; {metadata('org/renaissance/scala/stdlib/ScalaKmeans')} 0.02% ││ │ ││││ 0x0000ffff702ee834: movk x16, #0x51f8 0.02% ││ │ ││││ 0x0000ffff702ee838: cmp w14, w16 ││ │ ││││ 0x0000ffff702ee83c: b.ne 0x0000ffff702eef40 // b.any;*invokeinterface findClosest {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee840: ldr w10, [x11, #8] ; implicit exception: dispatches to 0x0000ffff702ef9b0 ││ │ ││││ 0x0000ffff702ee844: mov x14, #0x1110000 // #17891328 ││ │ ││││ ; {metadata('scala/collection/immutable/Vector1')} 0.03% ││ │ ││││ 0x0000ffff702ee848: movk x14, #0xb130 0.03% ││ │ ││││ 0x0000ffff702ee84c: cmp w10, w14 ││ │ ││││ 0x0000ffff702ee850: b.ne 0x0000ffff702eef70 // b.any;*invokeinterface nonEmpty {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@1 (line 44) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee854: ldr x14, [x11, #16] ;*getfield prefix1 {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.Vector::prefix1@1 (line 115) ││ │ ││││ ; - scala.collection.immutable.Vector::length@16 (line 127) ││ │ ││││ ; - scala.collection.IndexedSeqOps::lengthCompare@1 (line 116) ││ │ ││││ ; - scala.collection.IndexedSeqOps::lengthCompare$@2 (line 116) ││ │ ││││ ; - scala.collection.immutable.Vector::lengthCompare@2 (line 115) ││ │ ││││ ; - scala.collection.SeqOps::isEmpty@2 (line 844) ││ │ ││││ ; - scala.collection.SeqOps::isEmpty$@1 (line 844) ││ │ ││││ ; - scala.collection.AbstractSeq::isEmpty@1 (line 1190) ││ │ ││││ ; - scala.collection.IterableOnceOps::nonEmpty@1 (line 853) ││ │ ││││ ; - scala.collection.IterableOnceOps::nonEmpty$@1 (line 853) ││ │ ││││ ; - scala.collection.AbstractIterable::nonEmpty@1 (line 933) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@1 (line 44) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee858: ldr w10, [x14, #12] ; implicit exception: dispatches to 0x0000ffff702ef9c4 ││ │ ││││ ;*arraylength {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.Vector::length@19 (line 127) ││ │ ││││ ; - scala.collection.IndexedSeqOps::lengthCompare@1 (line 116) ││ │ ││││ ; - scala.collection.IndexedSeqOps::lengthCompare$@2 (line 116) ││ │ ││││ ; - scala.collection.immutable.Vector::lengthCompare@2 (line 115) ││ │ ││││ ; - scala.collection.SeqOps::isEmpty@2 (line 844) ││ │ ││││ ; - scala.collection.SeqOps::isEmpty$@1 (line 844) ││ │ ││││ ; - scala.collection.AbstractSeq::isEmpty@1 (line 1190) ││ │ ││││ ; - scala.collection.IterableOnceOps::nonEmpty@1 (line 853) ││ │ ││││ ; - scala.collection.IterableOnceOps::nonEmpty$@1 (line 853) ││ │ ││││ ; - scala.collection.AbstractIterable::nonEmpty@1 (line 933) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@1 (line 44) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.04% ││ │ ││││ 0x0000ffff702ee85c: cmp w10, #0x0 ││ │ ││││ 0x0000ffff702ee860: b.ls 0x0000ffff702ef184 // b.plast;*if_icmpne {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - java.lang.Integer::compare@11 (line 1433) ││ │ ││││ ; - scala.collection.IndexedSeqOps::lengthCompare@7 (line 116) ││ │ ││││ ; - scala.collection.IndexedSeqOps::lengthCompare$@2 (line 116) ││ │ ││││ ; - scala.collection.immutable.Vector::lengthCompare@2 (line 115) ││ │ ││││ ; - scala.collection.SeqOps::isEmpty@2 (line 844) ││ │ ││││ ; - scala.collection.SeqOps::isEmpty$@1 (line 844) ││ │ ││││ ; - scala.collection.AbstractSeq::isEmpty@1 (line 1190) ││ │ ││││ ; - scala.collection.IterableOnceOps::nonEmpty@1 (line 853) ││ │ ││││ ; - scala.collection.IterableOnceOps::nonEmpty$@1 (line 853) ││ │ ││││ ; - scala.collection.AbstractIterable::nonEmpty@1 (line 933) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@1 (line 44) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.06% ││ │ ││││ 0x0000ffff702ee864: ldr x10, [x14, #16] ;*aaload {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.Vector1::apply@19 (line 389) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@19 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee868: ldr w14, [x10, #8] ; implicit exception: dispatches to 0x0000ffff702ef9d8 0.00% ││ │ ││││ 0x0000ffff702ee86c: mov x15, #0x1100000 // #17825792 ││ │ ││││ ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$Point')} 0.04% ││ │ ││││ 0x0000ffff702ee870: movk x15, #0x7c88 0.03% ││ │ ││││ 0x0000ffff702ee874: cmp w14, w15 ││ │ ││││ 0x0000ffff702ee878: b.ne 0x0000ffff702ef7d4 // b.any;*checkcast {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@24 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.02% ││ │ ││││ 0x0000ffff702ee87c: ldr d16, [x12, #16] ;*getfield x {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::x@1 (line 15) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@6 (line 20) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@27 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.04% ││ │ ││││ 0x0000ffff702ee880: ldr d17, [x10, #16] 0.02% ││ │ ││││ 0x0000ffff702ee884: ldr d18, [x12, #24] ;*getfield y {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::y@1 (line 15) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@19 (line 20) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@27 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee888: ldr d19, [x10, #24] 0.03% ││ │ ││││ 0x0000ffff702ee88c: ldr d21, [x12, #32] ;*getfield z {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::z@1 (line 15) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@33 (line 20) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@27 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee890: ldr d20, [x10, #32] 0.02% ││ │ ││││ 0x0000ffff702ee894: fsub d16, d17, d16 ;*dsub {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@9 (line 20) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@27 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.00% ││ │ ││││ 0x0000ffff702ee898: fsub d17, d19, d18 ;*dsub {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@22 (line 20) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@27 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee89c: fmul d16, d16, d16 0.04% ││ │ ││││ 0x0000ffff702ee8a0: fmul d17, d17, d17 ││ │ ││││ 0x0000ffff702ee8a4: fsub d18, d20, d21 ;*dsub {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@36 (line 20) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@27 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee8a8: str x0, [sp] 0.03% ││ │ ││││ 0x0000ffff702ee8ac: ldr x0, [x28, #440] 0.03% ││ │ ││││ 0x0000ffff702ee8b0: fadd d16, d16, d17 0.02% ││ │ ││││ 0x0000ffff702ee8b4: str x10, [sp, #16] ;*putfield v {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.NewVectorIterator::<init>@2 (line 2238) ││ │ ││││ ; - scala.collection.immutable.Vector::iterator@27 (line 131) ││ │ ││││ ; - scala.collection.IterableOps::groupBy@11 (line 557) 0.03% ││ │ ││││ 0x0000ffff702ee8b8: fmul d17, d18, d18 0.03% ││ │ ││││ 0x0000ffff702ee8bc: str x11, [sp, #56] 0.03% ││ │ ││││ 0x0000ffff702ee8c0: ldr x10, [x28, #456] ││ │ ││││ 0x0000ffff702ee8c4: add x11, x0, #0x18 0.03% ││ │ ││││ 0x0000ffff702ee8c8: str x18, [sp, #8] 0.03% ││ │ ││││ 0x0000ffff702ee8cc: str x19, [sp, #24] 0.03% ││ │ ││││ 0x0000ffff702ee8d0: stp x13, x21, [sp, #40] 0.04% ││ │ ││││ 0x0000ffff702ee8d4: fadd d16, d16, d17 ;*dadd {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::squareDistance@40 (line 20) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@27 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee8d8: str x12, [sp, #64] 0.04% ││ │ ││││ 0x0000ffff702ee8dc: cmp x11, x10 ││ │ ││││ 0x0000ffff702ee8e0: b.cs 0x0000ffff702eeb84 // b.hs, b.nlast ││ │ ││││ ;*putfield v {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.NewVectorIterator::<init>@2 (line 2238) ││ │ ││││ ; - scala.collection.immutable.Vector::iterator@27 (line 131) ││ │ ││││ ; - scala.collection.IterableOps::groupBy@11 (line 557) 0.06% ││ │ ││││ 0x0000ffff702ee8e4: orr x10, xzr, #0x1 0.04% ││ │ ││││ 0x0000ffff702ee8e8: str x11, [x28, #440] 0.03% ││ │ ││││ 0x0000ffff702ee8ec: str x10, [x0] 0.03% ││ │ ││││ 0x0000ffff702ee8f0: mov x10, #0x1140000 // #18087936 ││ │ ││││ ; {metadata('scala/runtime/DoubleRef')} 0.00% ││ │ ││││ 0x0000ffff702ee8f4: movk x10, #0xf098 0.03% ││ │ ││││ 0x0000ffff702ee8f8: str w10, [x0, #8] 0.04% ││ │ ││││ 0x0000ffff702ee8fc: prfm pstl1keep, [x11, #192] 0.03% ││ │ ││││ 0x0000ffff702ee900: str wzr, [x0, #12] 0.03% ││ │ ││││ 0x0000ffff702ee904: add x10, x0, #0x10 0.02% ││ │ ││││ 0x0000ffff702ee908: str xzr, [x10] 0.03% ││ │ ││││ 0x0000ffff702ee90c: dmb ishst ;*new {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.runtime.DoubleRef::create@0 (line 22) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@30 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee910: str d16, [x0, #16] ;*putfield elem {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.runtime.DoubleRef::<init>@6 (line 19) ││ │ ││││ ; - scala.runtime.DoubleRef::create@5 (line 22) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@30 (line 45) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.04% ││ │ ││││ 0x0000ffff702ee914: str x0, [sp, #72] 0.03% ││ │ ││││ 0x0000ffff702ee918: ldr x0, [x28, #440] 0.03% ││ │ ││││ 0x0000ffff702ee91c: ldr x10, [x28, #456] 0.04% ││ │ ││││ 0x0000ffff702ee920: add x11, x0, #0x18 0.03% ││ │ ││││ 0x0000ffff702ee924: cmp x11, x10 ││ │ ││││ 0x0000ffff702ee928: b.cs 0x0000ffff702eebac // b.hs, b.nlast ││ │ ││││ ;*putfield v {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.NewVectorIterator::<init>@2 (line 2238) ││ │ ││││ ; - scala.collection.immutable.Vector::iterator@27 (line 131) ││ │ ││││ ; - scala.collection.IterableOps::groupBy@11 (line 557) 0.03% ││ │ ││││ 0x0000ffff702ee92c: orr x10, xzr, #0x1 0.03% ││ │ ││││ 0x0000ffff702ee930: str x11, [x28, #440] 0.03% ││ │ ││││ 0x0000ffff702ee934: mov x12, #0x1140000 // #18087936 ││ │ ││││ ; {metadata('scala/runtime/ObjectRef')} ││ │ ││││ 0x0000ffff702ee938: movk x12, #0xf298 0.02% ││ │ ││││ 0x0000ffff702ee93c: str x10, [x0] 0.03% ││ │ ││││ 0x0000ffff702ee940: str w12, [x0, #8] 0.04% ││ │ ││││ 0x0000ffff702ee944: prfm pstl1keep, [x11, #192] 0.04% ││ │ ││││ 0x0000ffff702ee948: str wzr, [x0, #12] 0.03% ││ │ ││││ 0x0000ffff702ee94c: add x10, x0, #0x10 0.03% ││ │ ││││ 0x0000ffff702ee950: str xzr, [x10] 0.03% ││ │ ││││ 0x0000ffff702ee954: dmb ishst 0.04% ││ │ ││││ 0x0000ffff702ee958: adrp x10, 0x0000ffff85beb000 ; {external_word} ││ │ ││││ 0x0000ffff702ee95c: add x10, x10, #0xba4 0.03% ││ │ ││││ 0x0000ffff702ee960: ldr w11, [x10] 0.00% ││ │ ││││ 0x0000ffff702ee964: mov x29, x0 0.03% ││ │ ││││ 0x0000ffff702ee968: ldr x10, [sp, #16] ;*new {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.runtime.ObjectRef::create@0 (line 23) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@44 (line 46) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee96c: str x10, [x29, #16] ;*putfield elem {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.runtime.ObjectRef::<init>@6 (line 19) ││ │ ││││ ; - scala.runtime.ObjectRef::create@5 (line 23) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@44 (line 46) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee970: cbnz w11, 0x0000ffff702eefa0 0.03% ││ │ ││││ 0x0000ffff702ee974: ldr x0, [x28, #440] 0.03% ││ │ ││││ 0x0000ffff702ee978: ldr x10, [x28, #456] ││ │ ││││ 0x0000ffff702ee97c: add x11, x0, #0x28 0.02% ││ │ ││││ 0x0000ffff702ee980: cmp x11, x10 ││ │ ││││ 0x0000ffff702ee984: b.cs 0x0000ffff702eebcc // b.hs, b.nlast ││ │ ││││ ;*putfield v {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.NewVectorIterator::<init>@2 (line 2238) ││ │ ││││ ; - scala.collection.immutable.Vector::iterator@27 (line 131) ││ │ ││││ ; - scala.collection.IterableOps::groupBy@11 (line 557) 0.04% ││ │ ││││ 0x0000ffff702ee988: orr x10, xzr, #0x1 0.03% ││ │ ││││ 0x0000ffff702ee98c: str x11, [x28, #440] 0.04% ││ │ ││││ 0x0000ffff702ee990: str x10, [x0] 0.03% ││ │ ││││ 0x0000ffff702ee994: mov x10, #0x1140000 // #18087936 ││ │ ││││ ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$$Lambda+0x000006000114f698')} ││ │ ││││ 0x0000ffff702ee998: movk x10, #0xf698 0.04% ││ │ ││││ 0x0000ffff702ee99c: prfm pstl1keep, [x11, #192] 0.06% ││ │ ││││ 0x0000ffff702ee9a0: str w10, [x0, #8] 0.03% ││ │ ││││ 0x0000ffff702ee9a4: add x10, x0, #0x10 0.03% ││ │ ││││ 0x0000ffff702ee9a8: str wzr, [x0, #12] 0.03% ││ │ ││││ 0x0000ffff702ee9ac: str xzr, [x10] 0.04% ││ │ ││││ 0x0000ffff702ee9b0: ldr x10, [sp, #72] 0.03% ││ │ ││││ 0x0000ffff702ee9b4: stp x10, x29, [x0, #24] 0.04% ││ │ ││││ 0x0000ffff702ee9b8: mov x2, x0 0.02% ││ │ ││││ 0x0000ffff702ee9bc: ldr x10, [sp, #64] ;*invokevirtual allocateInstance {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - java.lang.invoke.DirectMethodHandle::allocateInstance@12 (line 500) ││ │ ││││ ; - java.lang.invoke.DirectMethodHandle$Holder::newInvokeSpecial@1 ││ │ ││││ ; - java.lang.invoke.Invokers$Holder::linkToTargetMethod@7 ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@54 (line 53) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee9c0: str x10, [x2, #16] ;*invokestatic linkToSpecial {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - java.lang.invoke.DirectMethodHandle$Holder::newInvokeSpecial@22 ││ │ ││││ ; - java.lang.invoke.Invokers$Holder::linkToTargetMethod@7 ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@54 (line 53) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee9c4: dmb ish ;*synchronization entry ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::<init>@-1 ││ │ ││││ ; - java.lang.invoke.DirectMethodHandle$Holder::newInvokeSpecial@22 ││ │ ││││ ; - java.lang.invoke.Invokers$Holder::linkToTargetMethod@7 ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@54 (line 53) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 9.49% ││ │ ││││ 0x0000ffff702ee9c8: ldr x1, [sp, #56] 0.03% ││ │ ││││ 0x0000ffff702ee9cc: bl 0x0000ffff6fac3180 ; ImmutableOopMap {rfp=Oop [0]=Oop [8]=Oop [24]=Oop [32]=Oop [40]=Oop [48]=Oop [64]=Oop } ││ │ ││││ ;*invokeinterface foreach {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@59 (line 53) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) ││ │ ││││ ; {optimized virtual_call} 0.03% ││ │ ││││ 0x0000ffff702ee9d0: nop ; {other} ││ │ ││││ 0x0000ffff702ee9d4: movk xzr, #0xa40 0.03% ││ │ ││││ 0x0000ffff702ee9d8: movk xzr, #0x600 ;*invokeinterface foreach {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@59 (line 53) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.04% ││ │ ││││ 0x0000ffff702ee9dc: ldr x10, [x29, #16] ;*getfield elem {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@66 (line 54) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702ee9e0: ldr w12, [x10, #8] ; implicit exception: dispatches to 0x0000ffff702efa04 0.01% ││ │ ││││ 0x0000ffff702ee9e4: mov x13, #0x1100000 // #17825792 ││ │ ││││ ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$Point')} 0.05% ││ │ ││││ 0x0000ffff702ee9e8: movk x13, #0x7c88 0.04% ││ │ ││││ 0x0000ffff702ee9ec: cmp w12, w13 ││ │ ││││ 0x0000ffff702ee9f0: b.ne 0x0000ffff702ef804 // b.any 0.03% ││ │ ││││ 0x0000ffff702ee9f4: mov x14, x10 ││ │ ││││ 0x0000ffff702ee9f8: adrp x10, 0x0000ffff85beb000 ; {external_word} 0.03% ││ │ ││││ 0x0000ffff702ee9fc: add x10, x10, #0xba4 0.04% ││ │ ││││ 0x0000ffff702eea00: ldr w11, [x10] ;*checkcast {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest@69 (line 54) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$@3 (line 13) ││ │ ││││ ; - org.renaissance.scala.stdlib.ScalaKmeans::findClosest@3 (line 138) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::$anonfun$1@3 (line 61) ││ │ ││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ ││││ 0x0000ffff702eea04: cbnz w11, 0x0000ffff702eefdc 0.03% ││ │ ││││ 0x0000ffff702eea08: ldr x0, [x28, #440] 0.04% ││ │ ││││ 0x0000ffff702eea0c: ldr x10, [x28, #456] 0.01% ││ │ ││││ 0x0000ffff702eea10: add x11, x0, #0x18 0.03% ││ │ ││││ 0x0000ffff702eea14: cmp x11, x10 ││ │ ││││ 0x0000ffff702eea18: b.cs 0x0000ffff702eebec // b.hs, b.nlast ││ │ ││││ ;*putfield v {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.collection.immutable.NewVectorIterator::<init>@2 (line 2238) ││ │ ││││ ; - scala.collection.immutable.Vector::iterator@27 (line 131) ││ │ ││││ ; - scala.collection.IterableOps::groupBy@11 (line 557) 0.03% ││ │ ││││ 0x0000ffff702eea1c: orr x10, xzr, #0x1 0.03% ││ │ ││││ 0x0000ffff702eea20: str x11, [x28, #440] 0.03% ││ │ ││││ 0x0000ffff702eea24: mov x12, #0x1140000 // #18087936 ││ │ ││││ ; {metadata('scala/collection/IterableOps$$Lambda+0x000006000114fc98')} ││ │ ││││ 0x0000ffff702eea28: movk x12, #0xfc98 0.03% ││ │ ││││ 0x0000ffff702eea2c: str x10, [x0] 0.03% ││ │ ││││ 0x0000ffff702eea30: str w12, [x0, #8] 0.03% ││ │ ││││ 0x0000ffff702eea34: prfm pstl1keep, [x11, #192] 0.03% ││ │ ││││ 0x0000ffff702eea38: str wzr, [x0, #12] 0.03% ││ │ ││││ 0x0000ffff702eea3c: ldr x15, [sp, #48] 0.03% ││ │ ││││ 0x0000ffff702eea40: str x15, [x0, #16] ;*invokevirtual allocateInstance {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - java.lang.invoke.DirectMethodHandle::allocateInstance@12 (line 500) ││ │ ││││ ; - java.lang.invoke.DirectMethodHandle$Holder::newInvokeSpecial@1 ││ │ ││││ ; - java.lang.invoke.Invokers$Holder::linkToTargetMethod@5 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@48 (line 561) 0.02% ││ │ ││││ 0x0000ffff702eea44: ldr x10, [x14] ;*invokestatic linkToSpecial {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - java.lang.invoke.DirectMethodHandle$Holder::newInvokeSpecial@16 ││ │ ││││ ; - java.lang.invoke.Invokers$Holder::linkToTargetMethod@5 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@48 (line 561) ││ │ ││││ 0x0000ffff702eea48: and x11, x10, #0x3 0.04% ││ │ ││││ 0x0000ffff702eea4c: mov x16, x0 ;*invokevirtual allocateInstance {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - java.lang.invoke.DirectMethodHandle::allocateInstance@12 (line 500) ││ │ ││││ ; - java.lang.invoke.DirectMethodHandle$Holder::newInvokeSpecial@1 ││ │ ││││ ; - java.lang.invoke.Invokers$Holder::linkToTargetMethod@5 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@48 (line 561) 0.03% ││ │ ││││ 0x0000ffff702eea50: cmp x11, #0x2 ││ │ ││││ 0x0000ffff702eea54: b.eq 0x0000ffff702ee6f4 // b.none 0.03% ││ │ ││││ 0x0000ffff702eea58: lsr x10, x10, #8 0.02% ││ │ ││││ 0x0000ffff702eea5c: and w0, w10, #0x7fffffff 0.02% ││ │ ││││ 0x0000ffff702eea60: cbz w0, 0x0000ffff702ee6f4 ;*invokevirtual hashCode {reexecute=0 rethrow=0 return_oop=0} ││ │ ││││ ; - scala.runtime.Statics::anyHash@22 (line 127) ││ │ ││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@90 (line 78) ││ │ ││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.04% ↘│ │ ││││ 0x0000ffff702eea64: ldr x17, [sp, #32] 0.03% │ │ ││││ 0x0000ffff702eea68: ldr x29, [x17, #32] ;*getfield scala$collection$mutable$HashMap$$table {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@108 (line 80) │ │ ││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.02% │ │ ││││ 0x0000ffff702eea6c: ldr w13, [x29, #12] ; implicit exception: dispatches to 0x0000ffff702efa2c │ │ ││││ ;*arraylength {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@111 (line 80) │ │ ││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) │ │ ││││ 0x0000ffff702eea70: eor w11, w0, w0, lsr #16 ;*ixor {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@102 (line 74) │ │ ││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.04% │ │ ││││ 0x0000ffff702eea74: sub w10, w13, #0x1 0.02% │ │ ││││ 0x0000ffff702eea78: and w10, w10, w11 ;*iand {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@114 (line 80) │ │ ││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.02% │ │ ││││ 0x0000ffff702eea7c: add x12, x29, w10, sxtw #3 0.03% │ │ ││││ 0x0000ffff702eea80: cmp w13, #0x0 0.00% │ │ ││││ 0x0000ffff702eea84: b.ls 0x0000ffff702ef008 // b.plast 0.03% │ │ ││││ 0x0000ffff702eea88: ldr x12, [x12, #16] ;*aaload {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@123 (line 462) │ │ ││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.12% │ │ ││││ 0x0000ffff702eea8c: cbz x12, 0x0000ffff702ee608 ;*iload_2 {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.collection.mutable.HashMap$Node::findNode@0 (line 636) │ │ ││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@140 (line 464) │ │ ││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.05% │ │ ↗││││ 0x0000ffff702eea90: ldr w13, [x12, #12] ; implicit exception: dispatches to 0x0000ffff702ef93c │ │ │││││ ;*getfield _hash {reexecute=0 rethrow=0 return_oop=0} │ │ │││││ ; - scala.collection.mutable.HashMap$Node::findNode@2 (line 636) │ │ │││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@140 (line 464) │ │ │││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.55% │ │ │││││ 0x0000ffff702eea94: cmp w11, w13 │ │╭│││││ 0x0000ffff702eea98: b.eq 0x0000ffff702eeab8 // b.none;*if_icmpne {reexecute=0 rethrow=0 return_oop=0} │ │││││││ ; - scala.collection.mutable.HashMap$Node::findNode@5 (line 636) │ │││││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@140 (line 464) │ │││││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.03% │ │││││││ 0x0000ffff702eea9c: ldr x12, [x12, #32] ;*getfield _next {reexecute=0 rethrow=0 return_oop=0} │ │││││││ ; - scala.collection.mutable.HashMap$Node::findNode@22 (line 637) │ │││││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@140 (line 464) │ │││││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.01% │ │││││││ 0x0000ffff702eeaa0: cbz x12, 0x0000ffff702ee608 ;*ifnull {reexecute=0 rethrow=0 return_oop=0} │ │││││││ ; - scala.collection.mutable.HashMap$Node::findNode@25 (line 637) │ │││││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@140 (line 464) │ │││││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.02% │ │││││││ 0x0000ffff702eeaa4: cmp w13, w11 │ │││││││ 0x0000ffff702eeaa8: b.gt 0x0000ffff702ee608 ;*putfield v {reexecute=0 rethrow=0 return_oop=0} │ │││││││ ; - scala.collection.immutable.NewVectorIterator::<init>@2 (line 2238) │ │││││││ ; - scala.collection.immutable.Vector::iterator@27 (line 131) │ │││││││ ; - scala.collection.IterableOps::groupBy@11 (line 557) 0.02% │ │││││││ 0x0000ffff702eeaac: ldr x13, [x28, #1120] ; ImmutableOopMap {r12=Oop r14=Oop r15=Oop r16=Oop r17=Oop rfp=Oop [0]=Oop [8]=Oop [24]=Oop [64]=Oop } │ │││││││ ;*goto {reexecute=1 rethrow=0 return_oop=0} │ │││││││ ; - (reexecute) scala.collection.mutable.HashMap$Node::findNode@47 (line 638) │ │││││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@140 (line 464) │ │││││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.01% │ │││││││ 0x0000ffff702eeab0: ldr wzr, [x13] ;*goto {reexecute=0 rethrow=0 return_oop=0} │ │││││││ ; - scala.collection.mutable.HashMap$Node::findNode@47 (line 638) │ │││││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@140 (line 464) │ │││││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) │ │││││││ ; {poll} 0.01% │ ││╰││││ 0x0000ffff702eeab4: b 0x0000ffff702eea90 0.17% │ │↘ ││││ 0x0000ffff702eeab8: ldr x13, [x12, #16] ;*getfield _key {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.collection.mutable.HashMap$Node::findNode@10 (line 636) │ │ ││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@140 (line 464) │ │ ││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.05% │ │ ││││ 0x0000ffff702eeabc: cmp x14, x13 0.00% │ │ ││││ 0x0000ffff702eeac0: b.ne 0x0000ffff702ef138 // b.any;*if_acmpne {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.runtime.BoxesRunTime::equals@2 (line 118) │ │ ││││ ; - scala.collection.mutable.HashMap$Node::findNode@13 (line 636) │ │ ││││ ; - scala.collection.mutable.HashMap::getOrElseUpdate@140 (line 464) │ │ ││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.08% │ │ ││││ 0x0000ffff702eeac4: ldr x10, [x12, #24] ;*invokeinterface getOrElseUpdate {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.05% │ │ ││││ 0x0000ffff702eeac8: ldr w11, [x10, #8] ; implicit exception: dispatches to 0x0000ffff702efa40 │ │ ││││ 0x0000ffff702eeacc: mov x12, #0x1130000 // #18022400 │ │ ││││ ; {metadata('scala/collection/immutable/VectorBuilder')} 0.73% │ │ ││││ 0x0000ffff702eead0: movk x12, #0xeeb0 0.05% │ │ ││││ 0x0000ffff702eead4: cmp w11, w12 0.00% │ │ ││││ 0x0000ffff702eead8: b.ne 0x0000ffff702ef850 // b.any;*checkcast {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.collection.IterableOps::groupBy@58 (line 561) 0.21% │ │ ││││ 0x0000ffff702eeadc: ldr w20, [x10, #12] ;*getfield scala$collection$immutable$VectorBuilder$$len1 {reexecute=0 rethrow=0 return_oop=0} │ │ ││││ ; - scala.collection.immutable.VectorBuilder::addOne@1 (line 1701) │ │ ││││ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ │ ││││ ; - scala.collection.IterableOps::groupBy@74 (line 562) 0.05% │ │ ││││ 0x0000ffff702eeae0: cmp w20, #0x20 │ │ ╰│││ 0x0000ffff702eeae4: b.ne 0x0000ffff702ee724 // b.any;*if_icmpne {reexecute=0 rethrow=0 return_oop=0} │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@6 (line 1701) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ │ │││ ; - scala.collection.IterableOps::groupBy@74 (line 562) 0.00% │ │ │││ 0x0000ffff702eeae8: ldr w12, [x10, #16] ;*getfield scala$collection$immutable$VectorBuilder$$lenRest {reexecute=0 rethrow=0 return_oop=0} │ │ │││ ; - scala.collection.immutable.VectorBuilder::advance@1 (line 1828) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@10 (line 1701) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ │ │││ ; - scala.collection.IterableOps::groupBy@74 (line 562) 0.00% │ │ │││ 0x0000ffff702eeaec: add w2, w12, #0x20 ;*iadd {reexecute=0 rethrow=0 return_oop=0} │ │ │││ ; - scala.collection.immutable.VectorBuilder::advance@6 (line 1828) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@10 (line 1701) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ │ │││ ; - scala.collection.IterableOps::groupBy@74 (line 562) 0.10% │ │ │││ 0x0000ffff702eeaf0: stp wzr, w2, [x10, #12] ;*synchronization entry │ │ │││ ; - scala.collection.immutable.VectorBuilder::advance@-1 (line 1828) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@10 (line 1701) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ │ │││ ; - scala.collection.IterableOps::groupBy@74 (line 562) 0.00% │ │ │││ 0x0000ffff702eeaf4: mov x29, x15 0.00% │ │ │││ 0x0000ffff702eeaf8: str x10, [sp, #16] 0.00% │ │ │││ 0x0000ffff702eeafc: str x17, [sp, #32] 0.00% │ │ │││ 0x0000ffff702eeb00: eor w3, w2, w12 ;*ixor {reexecute=0 rethrow=0 return_oop=0} │ │ │││ ; - scala.collection.immutable.VectorBuilder::advance@13 (line 1829) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@10 (line 1701) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ │ │││ ; - scala.collection.IterableOps::groupBy@74 (line 562) │ │ │││ 0x0000ffff702eeb04: mov x1, x10 │ │ │││ 0x0000ffff702eeb08: bl 0x0000ffff6fac3180 ; ImmutableOopMap {rfp=Oop [0]=Oop [8]=Oop [16]=Oop [24]=Oop [32]=Oop [64]=Oop } │ │ │││ ;*invokespecial advance1 {reexecute=0 rethrow=0 return_oop=0} │ │ │││ ; - scala.collection.immutable.VectorBuilder::advance@28 (line 1832) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@10 (line 1701) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ │ │││ ; - scala.collection.IterableOps::groupBy@74 (line 562) │ │ │││ ; {optimized virtual_call} │ │ │││ 0x0000ffff702eeb0c: nop ; {other} │ │ │││ 0x0000ffff702eeb10: movk xzr, #0xb7c │ │ │││ 0x0000ffff702eeb14: movk xzr, #0x800 ;*invokespecial advance1 {reexecute=0 rethrow=0 return_oop=0} │ │ │││ ; - scala.collection.immutable.VectorBuilder::advance@28 (line 1832) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@10 (line 1701) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ │ │││ ; - scala.collection.IterableOps::groupBy@74 (line 562) 0.00% │ │ │││ 0x0000ffff702eeb18: ldr x10, [sp, #16] 0.00% │ │ │││ 0x0000ffff702eeb1c: ldr w20, [x10, #12] ;*getfield scala$collection$immutable$VectorBuilder$$len1 {reexecute=0 rethrow=0 return_oop=0} │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@18 (line 1702) │ │ │││ ; - scala.collection.immutable.VectorBuilder::addOne@2 (line 1396) │ │ │││ ; - scala.collection.IterableOps::groupBy@74 (line 562) 0.00% │ │ ╰││ 0x0000ffff702eeb20: b 0x0000ffff702ee72c │ ↘ ││ 0x0000ffff702eeb24: stp x21, x19, [sp] 0.00% │ ││ 0x0000ffff702eeb28: str x18, [sp, #16] │ ││ 0x0000ffff702eeb2c: mov x29, x0 0.00% │ ││ 0x0000ffff702eeb30: mov x1, x19 0.00% │ ││ 0x0000ffff702eeb34: bl 0x0000ffff6fac3180 ; ImmutableOopMap {rfp=Oop [0]=Oop [8]=Oop [16]=Oop [32]=Oop } │ ││ ;*invokespecial advance {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - scala.collection.immutable.NewVectorIterator::next@12 (line 2264) │ ││ ; - scala.collection.IterableOps::groupBy@27 (line 559) │ ││ ; {optimized virtual_call} 0.00% │ ││ 0x0000ffff702eeb38: nop ; {other} │ ││ 0x0000ffff702eeb3c: movk xzr, #0xba8 │ ││ 0x0000ffff702eeb40: movk xzr, #0x900 ;*invokespecial advance {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - scala.collection.immutable.NewVectorIterator::next@12 (line 2264) │ ││ ; - scala.collection.IterableOps::groupBy@27 (line 559) 0.00% │ ││ 0x0000ffff702eeb44: ldr x19, [sp, #8] │ ││ 0x0000ffff702eeb48: ldr w14, [x19, #24] ;*getfield scala$collection$immutable$NewVectorIterator$$i1 {reexecute=0 rethrow=0 return_oop=0} │ ││ ; - scala.collection.immutable.NewVectorIterator::next@20 (line 2265) │ ││ ; - scala.collection.IterableOps::groupBy@27 (line 559) │ ││ 0x0000ffff702eeb4c: mov x0, x29 0.02% │ ││ 0x0000ffff702eeb50: ldr x21, [sp] 0.00% │ ││ 0x0000ffff702eeb54: ldr x18, [sp, #16] 0.00% │ ╰│ 0x0000ffff702eeb58: b 0x0000ffff702ee7dc ↘ │ 0x0000ffff702eeb5c: ldr x0, [x21] ╰ 0x0000ffff702eeb60: cbz x0, 0x0000ffff702ee764 0x0000ffff702eeb64: ldr x10, [x28, #40] 0x0000ffff702eeb68: cbz x10, 0x0000ffff702ef108 0x0000ffff702eeb6c: ldr x11, [x28, #48] 0x0000ffff702eeb70: sub x12, x10, #0x8 0x0000ffff702eeb74: add x10, x11, x10 0x0000ffff702eeb78: stur x0, [x10, #-8] ;*putfield v {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.NewVectorIterator::<init>@2 (line 2238) ; - scala.collection.immutable.Vector::iterator@27 (line 131) .................................................................................................... 19.97% ....[Hottest Region 3].............................................................................. c2, level 4, scala.collection.immutable.Vector::foreach, version 4, compile id 1543 ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0x0000ffff702e449c: add w29, w29, #0x1 ;*iinc {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.VectorStatics$::foreachRec@63 (line 2131) ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0x0000ffff702e44a0: ldr w11, [sp, #92] 0x0000ffff702e44a4: cmp w29, w11 0x0000ffff702e44a8: b.lt 0x0000ffff702e4450 // b.tstop;*invokevirtual foreachRec {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.00% ↗ ↗ 0x0000ffff702e44ac: ldr w10, [sp, #88] │ │ 0x0000ffff702e44b0: add w12, w10, #0x1 ;*iinc {reexecute=0 rethrow=0 return_oop=0} │ │ ; - scala.collection.immutable.VectorStatics$::foreachRec@63 (line 2131) │ │ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) │ │ 0x0000ffff702e44b4: ldr w20, [sp, #64] │ │ 0x0000ffff702e44b8: cmp w12, w20 │ │ 0x0000ffff702e44bc: b.ge 0x0000ffff702e46d8 // b.tcont 0.00% │ │ 0x0000ffff702e44c0: ldr x16, [sp] │ │ 0x0000ffff702e44c4: ldp w1, w18, [sp, #8] 0.00% │ │ 0x0000ffff702e44c8: ldp w14, w15, [sp, #16] │ │ 0x0000ffff702e44cc: ldr w19, [sp, #24] │ │ 0x0000ffff702e44d0: ldr x17, [sp, #32] │ │ 0x0000ffff702e44d4: ldp w13, w4, [sp, #40] │ │ 0x0000ffff702e44d8: ldr w5, [sp, #48] 0.00% │ │ 0x0000ffff702e44dc: ldr x7, [sp, #56] 0.00% │ │ 0x0000ffff702e44e0: ldr w10, [sp, #68] 0.00% │ │ 0x0000ffff702e44e4: ldp x2, x0, [sp, #72] ;*aload_0 {reexecute=0 rethrow=0 return_oop=0} │ │ ; - scala.collection.immutable.VectorStatics$::foreachRec@49 (line 2130) │ │ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) │ │ 0x0000ffff702e44e8: add x11, x7, w12, sxtw #3 │ │ 0x0000ffff702e44ec: ldr x11, [x11, #16] ;*aaload {reexecute=0 rethrow=0 return_oop=0} │ │ ; - scala.collection.immutable.VectorStatics$::foreachRec@55 (line 2130) │ │ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.01% │ │ 0x0000ffff702e44f0: ldr w3, [x11, #8] ; implicit exception: dispatches to 0x0000ffff702e4c78 0.04% │ │ 0x0000ffff702e44f4: movz x21, #0x0, lsl #16 ; {metadata('java/lang/Object'[])} 1.54% │ │ 0x0000ffff702e44f8: movk x21, #0x1258 0.00% │ │ 0x0000ffff702e44fc: cmp w3, w21 │ │ 0x0000ffff702e4500: b.ne 0x0000ffff702e493c // b.any 0.00% │ │ 0x0000ffff702e4504: str w10, [sp, #68] ;*checkcast {reexecute=0 rethrow=0 return_oop=0} │ │ ; - scala.collection.immutable.VectorStatics$::foreachRec@56 (line 2130) │ │ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.00% │ │ 0x0000ffff702e4508: ldr w10, [x11, #12] ;*arraylength {reexecute=0 rethrow=0 return_oop=0} │ │ ; - scala.collection.immutable.VectorStatics$::foreachRec@4 (line 2121) │ │ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │ │ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.03% │ │ 0x0000ffff702e450c: str w10, [sp, #92] 0.00% │ │ 0x0000ffff702e4510: str x16, [sp] 0.00% │ │ 0x0000ffff702e4514: stp w1, w18, [sp, #8] 0.00% │ │ 0x0000ffff702e4518: stp w14, w15, [sp, #16] 0.00% │ │ 0x0000ffff702e451c: str w19, [sp, #24] 0.00% │ │ 0x0000ffff702e4520: str x17, [sp, #32] 0.00% │ │ 0x0000ffff702e4524: stp w13, w4, [sp, #40] 0.00% │ │ 0x0000ffff702e4528: str w5, [sp, #48] 0.00% │ │ 0x0000ffff702e452c: str x7, [sp, #56] 0.00% │ │ 0x0000ffff702e4530: str w20, [sp, #64] 0.00% │ │ 0x0000ffff702e4534: stp x2, x0, [sp, #72] │ │ 0x0000ffff702e4538: str w12, [sp, #88] 0.00% │ │ 0x0000ffff702e453c: sub w10, w10, #0x1 0.00% │ │ 0x0000ffff702e4540: str x11, [sp, #96] 0.02% │ │ 0x0000ffff702e4544: cmp w19, #0x2 │ │ 0x0000ffff702e4548: b.ne 0x0000ffff702e4420 // b.any;*if_icmpne {reexecute=0 rethrow=0 return_oop=0} │ │ ; - scala.collection.immutable.VectorStatics$::foreachRec@9 (line 2122) │ │ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │ │ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.02% │ │ 0x0000ffff702e454c: ldr w12, [sp, #92] 0.01% │ │ 0x0000ffff702e4550: cmp w12, #0x0 ╰ │ 0x0000ffff702e4554: b.ls 0x0000ffff702e44ac // b.plast;*if_icmpge {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.immutable.VectorStatics$::foreachRec@16 (line 2123) │ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.01% │ 0x0000ffff702e4558: cmp w10, w12 │ 0x0000ffff702e455c: b.cs 0x0000ffff702e482c // b.hs, b.nlast 0.00% │ 0x0000ffff702e4560: ldr x14, [x2, #16] ;*getfield arg$1 {reexecute=0 rethrow=0 return_oop=0} │ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@1 │ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) │ 0x0000ffff702e4564: cbz x14, 0x0000ffff702e482c 0.00% │ 0x0000ffff702e4568: ldr x15, [x2, #24] ;*getfield arg$2 {reexecute=0 rethrow=0 return_oop=0} │ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@5 │ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.00% │ 0x0000ffff702e456c: cbz x15, 0x0000ffff702e482c 0.00% │ 0x0000ffff702e4570: ldr x16, [x2, #32] ;*getfield arg$3 {reexecute=0 rethrow=0 return_oop=0} │ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@9 │ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.00% │ 0x0000ffff702e4574: cbz x16, 0x0000ffff702e482c 0.00% │ 0x0000ffff702e4578: mov w11, wzr 0.00% ↗│ 0x0000ffff702e457c: ldr w10, [sp, #92] 0.00% ││ 0x0000ffff702e4580: cmp w10, w11 ││ 0x0000ffff702e4584: sub w12, w10, w11 0.00% ││ 0x0000ffff702e4588: csel w10, wzr, w12, lt // lt = tstop ││ 0x0000ffff702e458c: cmp w10, #0x3e8 ││ 0x0000ffff702e4590: mov w12, #0x3e8 // #1000 0.00% ││ 0x0000ffff702e4594: csel w10, w12, w10, hi // hi = pmore ││ 0x0000ffff702e4598: add w10, w10, w11 ││ 0x0000ffff702e459c: nop 0.04% ↗││ 0x0000ffff702e45a0: ldr x12, [sp, #96] 0.00% │││ 0x0000ffff702e45a4: add x12, x12, w11, sxtw #3 ;*aload_3 {reexecute=0 rethrow=0 return_oop=0} │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@19 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.03% │││ 0x0000ffff702e45a8: ldr x17, [x12, #16] ;*aaload {reexecute=0 rethrow=0 return_oop=0} │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@23 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.09% │││ 0x0000ffff702e45ac: ldr w12, [x17, #8] ; implicit exception: dispatches to 0x0000ffff702e4b84 0.61% │││ 0x0000ffff702e45b0: mov x13, #0x1100000 // #17825792 │││ ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$Point')} 4.68% │││ 0x0000ffff702e45b4: movk x13, #0x7c88 0.03% │││ 0x0000ffff702e45b8: cmp w12, w13 │││ 0x0000ffff702e45bc: b.ne 0x0000ffff702e4a10 // b.any;*checkcast {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@13 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.07% │││ 0x0000ffff702e45c0: ldr d17, [x17, #16] ;*getfield x {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::x@1 (line 15) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findAverage$$anonfun$1@5 (line 76) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.74% │││ 0x0000ffff702e45c4: ldr d16, [x14, #16] ;*getfield elem {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findAverage$$anonfun$1@1 (line 76) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.55% │││ 0x0000ffff702e45c8: fadd d16, d16, d17 0.02% │││ 0x0000ffff702e45cc: str d16, [x14, #16] ;*putfield elem {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findAverage$$anonfun$1@14 (line 76) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.02% │││ 0x0000ffff702e45d0: ldr d16, [x17, #24] ;*getfield y {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::y@1 (line 15) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findAverage$$anonfun$1@22 (line 77) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.09% │││ 0x0000ffff702e45d4: ldr d17, [x15, #16] ;*getfield elem {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findAverage$$anonfun$1@18 (line 77) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.21% │││ 0x0000ffff702e45d8: fadd d16, d17, d16 0.03% │││ 0x0000ffff702e45dc: str d16, [x15, #16] ;*putfield elem {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findAverage$$anonfun$1@31 (line 77) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.03% │││ 0x0000ffff702e45e0: ldr d16, [x17, #32] ;*getfield z {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$Point::z@1 (line 15) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findAverage$$anonfun$1@39 (line 78) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.72% │││ 0x0000ffff702e45e4: ldr d17, [x16, #16] ;*getfield elem {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findAverage$$anonfun$1@35 (line 78) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.05% │││ 0x0000ffff702e45e8: add w11, w11, #0x1 ;*iinc {reexecute=0 rethrow=0 return_oop=0} │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@30 (line 2125) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.32% │││ 0x0000ffff702e45ec: fadd d16, d17, d16 0.02% │││ 0x0000ffff702e45f0: str d16, [x16, #16] ;*putfield elem {reexecute=0 rethrow=0 return_oop=0} │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findAverage$$anonfun$1@48 (line 78) │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@16 │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) │││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) │││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) │││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0.04% │││ 0x0000ffff702e45f4: cmp w11, w10 ╰││ 0x0000ffff702e45f8: b.lt 0x0000ffff702e45a0 // b.tstop;*putfield elem {reexecute=0 rethrow=0 return_oop=0} ││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$$anonfun$1@33 (line 51) ││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x000006000114f698::applyVoid@16 ││ ; - scala.runtime.function.JProcedure1::apply@2 (line 15) ││ ; - scala.runtime.function.JProcedure1::apply@2 (line 10) ││ ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 0.00% ││ 0x0000ffff702e45fc: ldr x10, [x28, #1120] ; ImmutableOopMap {r14=Oop r15=Oop r16=Oop [0]=Oop [32]=Oop [56]=Oop [72]=Oop [80]=Oop [96]=Oop } ││ ;*goto {reexecute=1 rethrow=0 return_oop=0} ││ ; - (reexecute) scala.collection.immutable.VectorStatics$::foreachRec@33 (line 2123) ││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) ││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) ││ 0x0000ffff702e4600: ldr wzr, [x10] ;*goto {reexecute=0 rethrow=0 return_oop=0} ││ ; - scala.collection.immutable.VectorStatics$::foreachRec@33 (line 2123) ││ ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) ││ ; - scala.collection.immutable.Vector::foreach@114 (line 2130) ││ ; {poll} 0.00% ││ 0x0000ffff702e4604: ldr w10, [sp, #92] 0.00% ││ 0x0000ffff702e4608: cmp w11, w10 ╰│ 0x0000ffff702e460c: b.lt 0x0000ffff702e457c // b.tstop 0.00% ╰ 0x0000ffff702e4610: b 0x0000ffff702e44ac 0x0000ffff702e4614: mov x0, #0x1150000 // #18153472 ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$$Lambda+0x0000060001155b08')} 0x0000ffff702e4618: movk x0, #0x5b08 0x0000ffff702e461c: cmp w11, w0 0x0000ffff702e4620: b.ne 0x0000ffff702e47c0 // b.any 0x0000ffff702e4624: ldr x29, [sp, #80] ;*invokeinterface apply {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.Vector::foreach@76 (line 2124) 0x0000ffff702e4628: ldr x0, [x29, #16] ;*getfield arg$1 {reexecute=0 rethrow=0 return_oop=0} ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x0000060001155b08::applyVoid@1 ; - scala.runtime.function.JProcedure1::apply@2 (line 15) .................................................................................................... 10.11% ....[Hottest Regions]............................................................................... 60.69% c2, level 4 scala.collection.immutable.Vector::foreach, version 4, compile id 1543 19.97% c2, level 4 scala.collection.IterableOps::groupBy, version 6, compile id 1567 10.11% c2, level 4 scala.collection.immutable.Vector::foreach, version 4, compile id 1543 2.15% c2, level 4 scala.collection.immutable.Vector::foreach, version 4, compile id 1543 1.05% c2, level 4 scala.collection.immutable.Vector::foreach, version 4, compile id 1543 0.93% c2, level 4 scala.collection.immutable.NewVectorIterator::advance, version 4, compile id 1566 0.41% c2, level 4 scala.collection.immutable.VectorBuilder::advance1, version 4, compile id 1518 0.32% kernel [unknown] 0.15% c2, level 4 scala.collection.immutable.NewVectorIterator::advanceA, version 2, compile id 1520 0.13% libjvm.so ElfSymbolTable::lookup 0.11% runtime stub StubRoutines::atomic entry points 0.10% [vdso] [unknown] 0.09% libpthread-2.26.so __aarch64_cas4_acq 0.08% libc-2.26.so __aarch64_cas4_acq 0.08% libc-2.26.so __aarch64_swp4_rel 0.08% runtime stub StubRoutines::zero_blocks 0.06% libjvm.so RelocIterator::initialize 0.06% libc-2.26.so __GI_strlen 0.06% libpthread-2.26.so __pthread_disable_asynccancel 0.06% runtime stub StubRoutines::atomic entry points 3.31% <...other 1612 warm regions...> .................................................................................................... 100.00% ....[Hottest Methods (after inlining)].............................................................. 74.04% c2, level 4 scala.collection.immutable.Vector::foreach, version 4, compile id 1543 19.97% c2, level 4 scala.collection.IterableOps::groupBy, version 6, compile id 1567 0.93% c2, level 4 scala.collection.immutable.NewVectorIterator::advance, version 4, compile id 1566 0.47% c2, level 4 scala.collection.immutable.VectorBuilder::advance1, version 4, compile id 1518 0.32% kernel [unknown] 0.20% 0.19% runtime stub StubRoutines::atomic entry points 0.15% c2, level 4 scala.collection.immutable.NewVectorIterator::advanceA, version 2, compile id 1520 0.13% libjvm.so ElfSymbolTable::lookup 0.12% libc-2.26.so vfprintf 0.12% libjvm.so xmlStream::write_text 0.10% [vdso] [unknown] 0.09% libpthread-2.26.so __aarch64_cas4_acq 0.08% libc-2.26.so __aarch64_cas4_acq 0.08% libjvm.so RelocIterator::initialize 0.08% libc-2.26.so __aarch64_swp4_rel 0.08% runtime stub StubRoutines::zero_blocks 0.07% libjvm.so defaultStream::write 0.06% libjvm.so outputStream::do_vsnprintf_and_write_with_automatic_buffer 0.06% libc-2.26.so __GI_strlen 2.64% <...other 1022 warm methods...> .................................................................................................... 100.00% ....[Distribution by Source]........................................................................ 95.62% c2, level 4 2.05% libjvm.so 0.73% libc-2.26.so 0.33% libpthread-2.26.so 0.32% kernel 0.27% runtime stub 0.20% 0.18% hsdis-aarch64.so 0.10% [vdso] 0.10% interpreter 0.08% c1, level 3 0.01% ld-2.26.so 0.01% perf-5772.map 0.00% Unknown, level 0 0.00% c1, level 1 0.00% libjava.so 0.00% libnio.so .................................................................................................... 100.00% # Run complete. Total time: 00:02:12 REMEMBER: The numbers below are just data. To gain reusable insights, you need to follow up on why the numbers are the way they are. Use profilers (see -prof, -lprof), design factorial experiments, perform baseline and negative tests that provide experimental control, make sure the benchmarking environment is safe on JVM/OS/HW level, ask for reviews from the domain experts. Do not assume the numbers tell you what you want them to tell. NOTE: Current JVM experimentally supports Compiler Blackholes, and they are in use. Please exercise extra caution when trusting the results, look into the generated code to check the benchmark still works, and factor in a small probability of new VM bugs. Additionally, while comparisons between different JVMs are already problematic, the performance difference caused by different Blackhole modes can be very significant. Please make sure you use the consistent Blackhole mode for comparisons. Benchmark Mode Cnt Score Error Units JmhScalaKmeans.run ss 500 230.084 ± 0.484 ms/op JmhScalaKmeans.run:asm ss NaN ---