# 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: 1401.886 ms/op # Warmup Iteration 2: 195.194 ms/op # Warmup Iteration 3: 367.974 ms/op # Warmup Iteration 4: 211.029 ms/op # Warmup Iteration 5: 169.276 ms/op # Warmup Iteration 6: 161.507 ms/op # Warmup Iteration 7: 166.951 ms/op # Warmup Iteration 8: 162.152 ms/op # Warmup Iteration 9: 162.625 ms/op # Warmup Iteration 10: 162.400 ms/op Iteration 1: 162.968 ms/op Iteration 2: 161.743 ms/op Iteration 3: 162.519 ms/op Iteration 4: 161.195 ms/op Iteration 5: 211.925 ms/op Iteration 6: 164.008 ms/op Iteration 7: 161.403 ms/op Iteration 8: 160.785 ms/op Iteration 9: 160.872 ms/op Iteration 10: 160.286 ms/op Iteration 11: 161.323 ms/op Iteration 12: 160.962 ms/op Iteration 13: 161.451 ms/op Iteration 14: 160.594 ms/op Iteration 15: 161.099 ms/op Iteration 16: 160.178 ms/op Iteration 17: 163.408 ms/op Iteration 18: 168.759 ms/op Iteration 19: 166.244 ms/op Iteration 20: 160.931 ms/op Iteration 21: 161.562 ms/op Iteration 22: 160.739 ms/op Iteration 23: 162.969 ms/op Iteration 24: 162.647 ms/op Iteration 25: 161.033 ms/op Iteration 26: 160.237 ms/op Iteration 27: 160.863 ms/op Iteration 28: 160.680 ms/op Iteration 29: 160.809 ms/op Iteration 30: 160.942 ms/op Iteration 31: 160.988 ms/op Iteration 32: 160.476 ms/op Iteration 33: 175.716 ms/op Iteration 34: 160.736 ms/op Iteration 35: 161.173 ms/op Iteration 36: 161.853 ms/op Iteration 37: 159.977 ms/op Iteration 38: 160.364 ms/op Iteration 39: 160.064 ms/op Iteration 40: 160.498 ms/op Iteration 41: 160.576 ms/op Iteration 42: 162.347 ms/op Iteration 43: 160.376 ms/op Iteration 44: 161.473 ms/op Iteration 45: 162.660 ms/op Iteration 46: 161.934 ms/op Iteration 47: 161.302 ms/op Iteration 48: 175.215 ms/op Iteration 49: 160.327 ms/op Iteration 50: 160.113 ms/op Iteration 51: 160.609 ms/op Iteration 52: 160.348 ms/op Iteration 53: 160.337 ms/op Iteration 54: 159.828 ms/op Iteration 55: 161.336 ms/op Iteration 56: 160.032 ms/op Iteration 57: 159.659 ms/op Iteration 58: 162.708 ms/op Iteration 59: 160.653 ms/op Iteration 60: 160.379 ms/op Iteration 61: 160.873 ms/op Iteration 62: 159.897 ms/op Iteration 63: 160.809 ms/op Iteration 64: 160.133 ms/op Iteration 65: 162.446 ms/op Iteration 66: 159.732 ms/op Iteration 67: 161.059 ms/op Iteration 68: 160.889 ms/op Iteration 69: 159.763 ms/op Iteration 70: 160.409 ms/op Iteration 71: 159.995 ms/op Iteration 72: 159.972 ms/op Iteration 73: 160.029 ms/op Iteration 74: 161.077 ms/op Iteration 75: 160.348 ms/op Iteration 76: 212.149 ms/op Iteration 77: 159.899 ms/op Iteration 78: 160.024 ms/op Iteration 79: 159.887 ms/op Iteration 80: 161.461 ms/op Iteration 81: 159.814 ms/op Iteration 82: 160.047 ms/op Iteration 83: 159.654 ms/op Iteration 84: 159.613 ms/op Iteration 85: 159.464 ms/op Iteration 86: 161.576 ms/op Iteration 87: 159.770 ms/op Iteration 88: 159.756 ms/op Iteration 89: 159.269 ms/op Iteration 90: 160.394 ms/op Iteration 91: 159.808 ms/op Iteration 92: 160.875 ms/op Iteration 93: 160.058 ms/op Iteration 94: 160.947 ms/op Iteration 95: 160.150 ms/op Iteration 96: 160.289 ms/op Iteration 97: 159.968 ms/op Iteration 98: 160.113 ms/op Iteration 99: 160.921 ms/op Iteration 100: 159.025 ms/op Iteration 101: 159.511 ms/op Iteration 102: 160.393 ms/op Iteration 103: 159.349 ms/op Iteration 104: 159.697 ms/op Iteration 105: 161.260 ms/op Iteration 106: 159.467 ms/op Iteration 107: 159.826 ms/op Iteration 108: 159.551 ms/op Iteration 109: 159.512 ms/op Iteration 110: 161.785 ms/op Iteration 111: 161.413 ms/op Iteration 112: 160.032 ms/op Iteration 113: 160.743 ms/op Iteration 114: 160.037 ms/op Iteration 115: 159.545 ms/op Iteration 116: 159.835 ms/op Iteration 117: 161.810 ms/op Iteration 118: 161.151 ms/op Iteration 119: 161.078 ms/op Iteration 120: 160.616 ms/op Iteration 121: 164.409 ms/op Iteration 122: 161.631 ms/op Iteration 123: 163.040 ms/op Iteration 124: 161.587 ms/op Iteration 125: 160.988 ms/op Iteration 126: 161.062 ms/op Iteration 127: 161.886 ms/op Iteration 128: 161.111 ms/op Iteration 129: 161.108 ms/op Iteration 130: 163.191 ms/op Iteration 131: 160.716 ms/op Iteration 132: 161.082 ms/op Iteration 133: 160.502 ms/op Iteration 134: 162.436 ms/op Iteration 135: 160.761 ms/op Iteration 136: 162.177 ms/op Iteration 137: 160.765 ms/op Iteration 138: 160.832 ms/op Iteration 139: 161.147 ms/op Iteration 140: 235.156 ms/op Iteration 141: 161.122 ms/op Iteration 142: 162.167 ms/op Iteration 143: 163.057 ms/op Iteration 144: 160.980 ms/op Iteration 145: 161.032 ms/op Iteration 146: 163.391 ms/op Iteration 147: 160.603 ms/op Iteration 148: 161.935 ms/op Iteration 149: 160.651 ms/op Iteration 150: 161.358 ms/op Iteration 151: 161.193 ms/op Iteration 152: 160.787 ms/op Iteration 153: 160.643 ms/op Iteration 154: 162.137 ms/op Iteration 155: 161.428 ms/op Iteration 156: 160.933 ms/op Iteration 157: 163.804 ms/op Iteration 158: 164.601 ms/op Iteration 159: 162.179 ms/op Iteration 160: 161.408 ms/op Iteration 161: 161.984 ms/op Iteration 162: 163.962 ms/op Iteration 163: 161.624 ms/op Iteration 164: 162.144 ms/op Iteration 165: 161.238 ms/op Iteration 166: 160.800 ms/op Iteration 167: 162.374 ms/op Iteration 168: 160.586 ms/op Iteration 169: 161.260 ms/op Iteration 170: 160.458 ms/op Iteration 171: 160.271 ms/op Iteration 172: 160.310 ms/op Iteration 173: 162.004 ms/op Iteration 174: 160.449 ms/op Iteration 175: 160.936 ms/op Iteration 176: 161.885 ms/op Iteration 177: 160.453 ms/op Iteration 178: 160.292 ms/op Iteration 179: 162.498 ms/op Iteration 180: 161.186 ms/op Iteration 181: 160.929 ms/op Iteration 182: 161.452 ms/op Iteration 183: 161.567 ms/op Iteration 184: 160.365 ms/op Iteration 185: 160.997 ms/op Iteration 186: 161.780 ms/op Iteration 187: 161.360 ms/op Iteration 188: 162.029 ms/op Iteration 189: 160.845 ms/op Iteration 190: 160.142 ms/op Iteration 191: 162.397 ms/op Iteration 192: 162.401 ms/op Iteration 193: 160.899 ms/op Iteration 194: 160.809 ms/op Iteration 195: 162.699 ms/op Iteration 196: 163.417 ms/op Iteration 197: 161.006 ms/op Iteration 198: 163.155 ms/op Iteration 199: 161.608 ms/op Iteration 200: 160.491 ms/op Iteration 201: 160.736 ms/op Iteration 202: 160.888 ms/op Iteration 203: 160.699 ms/op Iteration 204: 161.937 ms/op Iteration 205: 160.945 ms/op Iteration 206: 160.525 ms/op Iteration 207: 160.833 ms/op Iteration 208: 160.619 ms/op Iteration 209: 160.583 ms/op Iteration 210: 161.254 ms/op Iteration 211: 161.833 ms/op Iteration 212: 160.470 ms/op Iteration 213: 160.687 ms/op Iteration 214: 162.858 ms/op Iteration 215: 161.276 ms/op Iteration 216: 167.116 ms/op Iteration 217: 168.736 ms/op Iteration 218: 168.769 ms/op Iteration 219: 169.732 ms/op Iteration 220: 165.338 ms/op Iteration 221: 163.567 ms/op Iteration 222: 163.558 ms/op Iteration 223: 166.880 ms/op Iteration 224: 161.443 ms/op Iteration 225: 160.649 ms/op Iteration 226: 160.853 ms/op Iteration 227: 160.379 ms/op Iteration 228: 160.521 ms/op Iteration 229: 162.388 ms/op Iteration 230: 160.890 ms/op Iteration 231: 160.109 ms/op Iteration 232: 163.057 ms/op Iteration 233: 160.492 ms/op Iteration 234: 160.364 ms/op Iteration 235: 162.338 ms/op Iteration 236: 161.119 ms/op Iteration 237: 160.882 ms/op Iteration 238: 165.323 ms/op Iteration 239: 161.684 ms/op Iteration 240: 160.631 ms/op Iteration 241: 161.444 ms/op Iteration 242: 162.032 ms/op Iteration 243: 160.495 ms/op Iteration 244: 160.822 ms/op Iteration 245: 161.311 ms/op Iteration 246: 161.381 ms/op Iteration 247: 161.679 ms/op Iteration 248: 162.775 ms/op Iteration 249: 160.872 ms/op Iteration 250: 160.850 ms/op Iteration 251: 160.389 ms/op Iteration 252: 160.687 ms/op Iteration 253: 160.569 ms/op Iteration 254: 161.990 ms/op Iteration 255: 160.963 ms/op Iteration 256: 160.873 ms/op Iteration 257: 162.564 ms/op Iteration 258: 164.079 ms/op Iteration 259: 160.913 ms/op Iteration 260: 162.922 ms/op Iteration 261: 160.887 ms/op Iteration 262: 160.440 ms/op Iteration 263: 160.535 ms/op Iteration 264: 160.307 ms/op Iteration 265: 160.385 ms/op Iteration 266: 163.371 ms/op Iteration 267: 162.344 ms/op Iteration 268: 160.566 ms/op Iteration 269: 160.804 ms/op Iteration 270: 160.565 ms/op Iteration 271: 160.254 ms/op Iteration 272: 160.024 ms/op Iteration 273: 162.296 ms/op Iteration 274: 160.589 ms/op Iteration 275: 160.950 ms/op Iteration 276: 160.587 ms/op Iteration 277: 160.464 ms/op Iteration 278: 160.536 ms/op Iteration 279: 162.276 ms/op Iteration 280: 160.855 ms/op Iteration 281: 160.573 ms/op Iteration 282: 163.799 ms/op Iteration 283: 160.729 ms/op Iteration 284: 160.704 ms/op Iteration 285: 161.118 ms/op Iteration 286: 161.500 ms/op Iteration 287: 160.349 ms/op Iteration 288: 162.844 ms/op Iteration 289: 187.780 ms/op Iteration 290: 161.586 ms/op Iteration 291: 161.771 ms/op Iteration 292: 163.004 ms/op Iteration 293: 160.635 ms/op Iteration 294: 159.397 ms/op Iteration 295: 159.247 ms/op Iteration 296: 159.872 ms/op Iteration 297: 160.026 ms/op Iteration 298: 161.121 ms/op Iteration 299: 159.580 ms/op Iteration 300: 159.860 ms/op Iteration 301: 159.050 ms/op Iteration 302: 159.010 ms/op Iteration 303: 159.096 ms/op Iteration 304: 161.118 ms/op Iteration 305: 159.458 ms/op Iteration 306: 159.918 ms/op Iteration 307: 159.107 ms/op Iteration 308: 159.316 ms/op Iteration 309: 159.392 ms/op Iteration 310: 160.527 ms/op Iteration 311: 160.652 ms/op Iteration 312: 162.012 ms/op Iteration 313: 159.500 ms/op Iteration 314: 159.253 ms/op Iteration 315: 160.043 ms/op Iteration 316: 159.925 ms/op Iteration 317: 160.496 ms/op Iteration 318: 162.060 ms/op Iteration 319: 161.149 ms/op Iteration 320: 161.158 ms/op Iteration 321: 159.978 ms/op Iteration 322: 160.576 ms/op Iteration 323: 161.486 ms/op Iteration 324: 159.612 ms/op Iteration 325: 161.300 ms/op Iteration 326: 159.584 ms/op Iteration 327: 159.330 ms/op Iteration 328: 160.684 ms/op Iteration 329: 160.708 ms/op Iteration 330: 160.926 ms/op Iteration 331: 159.343 ms/op Iteration 332: 158.954 ms/op Iteration 333: 159.484 ms/op Iteration 334: 160.057 ms/op Iteration 335: 160.131 ms/op Iteration 336: 160.504 ms/op Iteration 337: 159.310 ms/op Iteration 338: 159.340 ms/op Iteration 339: 159.059 ms/op Iteration 340: 159.961 ms/op Iteration 341: 159.951 ms/op Iteration 342: 161.380 ms/op Iteration 343: 159.345 ms/op Iteration 344: 159.414 ms/op Iteration 345: 159.158 ms/op Iteration 346: 160.021 ms/op Iteration 347: 159.149 ms/op Iteration 348: 160.479 ms/op Iteration 349: 160.570 ms/op Iteration 350: 161.305 ms/op Iteration 351: 164.385 ms/op Iteration 352: 164.418 ms/op Iteration 353: 163.613 ms/op Iteration 354: 164.737 ms/op Iteration 355: 169.039 ms/op Iteration 356: 165.115 ms/op Iteration 357: 165.976 ms/op Iteration 358: 164.542 ms/op Iteration 359: 162.623 ms/op Iteration 360: 161.987 ms/op Iteration 361: 164.256 ms/op Iteration 362: 162.556 ms/op Iteration 363: 161.106 ms/op Iteration 364: 161.667 ms/op Iteration 365: 161.698 ms/op Iteration 366: 164.171 ms/op Iteration 367: 163.326 ms/op Iteration 368: 161.872 ms/op Iteration 369: 162.045 ms/op Iteration 370: 163.757 ms/op Iteration 371: 162.104 ms/op Iteration 372: 161.506 ms/op Iteration 373: 163.876 ms/op Iteration 374: 165.068 ms/op Iteration 375: 161.333 ms/op Iteration 376: 159.733 ms/op Iteration 377: 160.714 ms/op Iteration 378: 162.189 ms/op Iteration 379: 160.875 ms/op Iteration 380: 159.637 ms/op Iteration 381: 160.500 ms/op Iteration 382: 159.580 ms/op Iteration 383: 158.876 ms/op Iteration 384: 160.385 ms/op Iteration 385: 162.251 ms/op Iteration 386: 163.400 ms/op Iteration 387: 160.280 ms/op Iteration 388: 160.475 ms/op Iteration 389: 160.805 ms/op Iteration 390: 160.177 ms/op Iteration 391: 161.037 ms/op Iteration 392: 162.986 ms/op Iteration 393: 159.388 ms/op Iteration 394: 159.620 ms/op Iteration 395: 159.898 ms/op Iteration 396: 160.450 ms/op Iteration 397: 160.451 ms/op Iteration 398: 159.500 ms/op Iteration 399: 159.213 ms/op Iteration 400: 159.219 ms/op Iteration 401: 159.417 ms/op Iteration 402: 160.527 ms/op Iteration 403: 161.444 ms/op Iteration 404: 160.533 ms/op Iteration 405: 158.943 ms/op Iteration 406: 159.003 ms/op Iteration 407: 159.085 ms/op Iteration 408: 159.413 ms/op Iteration 409: 160.069 ms/op Iteration 410: 160.264 ms/op Iteration 411: 159.122 ms/op Iteration 412: 159.104 ms/op Iteration 413: 159.442 ms/op Iteration 414: 159.581 ms/op Iteration 415: 160.607 ms/op Iteration 416: 160.380 ms/op Iteration 417: 159.136 ms/op Iteration 418: 159.303 ms/op Iteration 419: 159.000 ms/op Iteration 420: 159.202 ms/op Iteration 421: 159.421 ms/op Iteration 422: 162.059 ms/op Iteration 423: 161.057 ms/op Iteration 424: 159.112 ms/op Iteration 425: 159.149 ms/op Iteration 426: 159.161 ms/op Iteration 427: 159.353 ms/op Iteration 428: 160.302 ms/op Iteration 429: 160.416 ms/op Iteration 430: 159.530 ms/op Iteration 431: 158.806 ms/op Iteration 432: 158.952 ms/op Iteration 433: 159.104 ms/op Iteration 434: 160.100 ms/op Iteration 435: 160.124 ms/op Iteration 436: 159.487 ms/op Iteration 437: 159.324 ms/op Iteration 438: 159.158 ms/op Iteration 439: 159.496 ms/op Iteration 440: 159.311 ms/op Iteration 441: 160.529 ms/op Iteration 442: 159.457 ms/op Iteration 443: 159.234 ms/op Iteration 444: 159.244 ms/op Iteration 445: 159.544 ms/op Iteration 446: 159.282 ms/op Iteration 447: 159.965 ms/op Iteration 448: 160.176 ms/op Iteration 449: 158.903 ms/op Iteration 450: 159.421 ms/op Iteration 451: 158.864 ms/op Iteration 452: 159.273 ms/op Iteration 453: 159.906 ms/op Iteration 454: 160.325 ms/op Iteration 455: 159.390 ms/op Iteration 456: 159.363 ms/op Iteration 457: 159.192 ms/op Iteration 458: 159.237 ms/op Iteration 459: 159.200 ms/op Iteration 460: 160.607 ms/op Iteration 461: 159.734 ms/op Iteration 462: 161.091 ms/op Iteration 463: 159.322 ms/op Iteration 464: 159.910 ms/op Iteration 465: 159.503 ms/op Iteration 466: 159.836 ms/op Iteration 467: 160.239 ms/op Iteration 468: 159.221 ms/op Iteration 469: 159.677 ms/op Iteration 470: 160.821 ms/op Iteration 471: 159.667 ms/op Iteration 472: 159.967 ms/op Iteration 473: 160.717 ms/op Iteration 474: 161.643 ms/op Iteration 475: 160.929 ms/op Iteration 476: 159.967 ms/op Iteration 477: 159.522 ms/op Iteration 478: 159.526 ms/op Iteration 479: 160.945 ms/op Iteration 480: 159.774 ms/op Iteration 481: 159.090 ms/op Iteration 482: 159.287 ms/op Iteration 483: 159.081 ms/op Iteration 484: 159.099 ms/op Iteration 485: 160.171 ms/op Iteration 486: 160.253 ms/op Iteration 487: 159.295 ms/op Iteration 488: 159.452 ms/op Iteration 489: 159.258 ms/op Iteration 490: 159.925 ms/op Iteration 491: 160.169 ms/op Iteration 492: 160.968 ms/op Iteration 493: 160.361 ms/op Iteration 494: 159.561 ms/op Iteration 495: 159.093 ms/op Iteration 496: 159.497 ms/op Iteration 497: 159.457 ms/op Iteration 498: 161.038 ms/op Iteration 499: 159.139 ms/op Iteration 500: 159.703 ms/op # Processing profiler results: LinuxPerfAsmProfiler Result "org.renaissance.scala.stdlib.JmhScalaKmeans.run": N = 500 mean = 161.378 ±(99.9%) 0.757 ms/op Histogram, ms/op: [150.000, 155.000) = 0 [155.000, 160.000) = 141 [160.000, 165.000) = 340 [165.000, 170.000) = 13 [170.000, 175.000) = 0 [175.000, 180.000) = 2 [180.000, 185.000) = 0 [185.000, 190.000) = 1 [190.000, 195.000) = 0 [195.000, 200.000) = 0 [200.000, 205.000) = 0 [205.000, 210.000) = 0 [210.000, 215.000) = 2 [215.000, 220.000) = 0 [220.000, 225.000) = 0 [225.000, 230.000) = 0 [230.000, 235.000) = 0 Percentiles, ms/op: p(0.0000) = 158.806 ms/op p(50.0000) = 160.639 ms/op p(90.0000) = 162.985 ms/op p(95.0000) = 164.379 ms/op p(99.0000) = 175.711 ms/op p(99.9000) = 235.156 ms/op p(99.9900) = 235.156 ms/op p(99.9990) = 235.156 ms/op p(99.9999) = 235.156 ms/op p(100.0000) = 235.156 ms/op Secondary result "org.renaissance.scala.stdlib.JmhScalaKmeans.run:asm": PrintAssembly processed: 685267 total address lines. Perf output processed (skipped 13.276 seconds): Column 1: cycles (84942 events) Hottest code regions (>10.00% "cycles" events): Event counts are percents of total event count. ....[Hottest Region 1].............................................................................. c2, level 4, scala.collection.IterableOps::groupBy, version 7, compile id 1568 0x0000ffff742f2f64: movk xzr, #0x200 ;*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) 0x0000ffff742f2f68: mov x17, x29 0x0000ffff742f2f6c: ldr x21, [sp] 0x0000ffff742f2f70: ldp x20, x10, [sp, #16] 0x0000ffff742f2f74: ldp x11, x18, [sp, #32] 0x0000ffff742f2f78: ldr x2, [sp, #48] ╭ 0x0000ffff742f2f7c: b 0x0000ffff742f2fe4 0.06% │ ↗ 0x0000ffff742f2f80: adrp x12, 0x0000ffff8d35d000 ; {external_word} │ │ 0x0000ffff742f2f84: add x12, x12, #0xba4 0.05% │ │ 0x0000ffff742f2f88: ldr w13, [x12] 0.04% │ │ 0x0000ffff742f2f8c: cbnz w13, 0x0000ffff742f39d4 0.04% │ │ 0x0000ffff742f2f90: ldr x2, [x28, #440] 0.04% │ │ 0x0000ffff742f2f94: ldr x12, [x28, #456] 0.04% │ │ 0x0000ffff742f2f98: add x13, x2, #0x18 0.04% │ │ 0x0000ffff742f2f9c: cmp x13, x12 │ │ 0x0000ffff742f2fa0: b.cs 0x0000ffff742f3474 // 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.09% │ │ 0x0000ffff742f2fa4: orr x12, xzr, #0x1 0.04% │ │ 0x0000ffff742f2fa8: str x13, [x28, #440] 0.04% │ │ 0x0000ffff742f2fac: str x12, [x2] 0.05% │ │ 0x0000ffff742f2fb0: mov x12, #0x1140000 // #18087936 │ │ ; {metadata('scala/collection/IterableOps$$Lambda+0x00007f000114fc98')} │ │ 0x0000ffff742f2fb4: movk x12, #0xfc98 0.04% │ │ 0x0000ffff742f2fb8: str w12, [x2, #8] 0.05% │ │ 0x0000ffff742f2fbc: prfm pstl1keep, [x13, #192] 0.05% │ │ 0x0000ffff742f2fc0: str wzr, [x2, #12] 0.08% │ │ 0x0000ffff742f2fc4: str x21, [x2, #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.06% │ │ 0x0000ffff742f2fc8: ldr x12, [x18] ;*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) │ │ 0x0000ffff742f2fcc: and x13, x12, #0x3 ;*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.04% │ │ 0x0000ffff742f2fd0: cmp x13, #0x2 │ │ 0x0000ffff742f2fd4: b.eq 0x0000ffff742f2f40 // b.none 0.04% │ │ 0x0000ffff742f2fd8: lsr x12, x12, #8 0.04% │ │ 0x0000ffff742f2fdc: and w0, w12, #0x7fffffff 0.04% │ │ 0x0000ffff742f2fe0: cbz w0, 0x0000ffff742f2f40 ;*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% ↘ │ 0x0000ffff742f2fe4: ldr x15, [sp, #8] 0.04% │ 0x0000ffff742f2fe8: ldr x29, [x15, #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.06% │ 0x0000ffff742f2fec: ldr w14, [x29, #12] ; implicit exception: dispatches to 0x0000ffff742f42ac │ ;*arraylength {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.mutable.HashMap::getOrElseUpdate@111 (line 80) │ ; - scala.collection.IterableOps::groupBy@53 (line 561) │ 0x0000ffff742f2ff0: eor w12, 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.06% │ 0x0000ffff742f2ff4: sub w16, w14, #0x1 0.00% │ 0x0000ffff742f2ff8: and w13, w16, w12 ;*iand {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.mutable.HashMap::getOrElseUpdate@114 (line 80) │ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.03% │ 0x0000ffff742f2ffc: add x16, x29, w13, sxtw #3 0.04% │ 0x0000ffff742f3000: cmp w14, #0x0 │ 0x0000ffff742f3004: b.ls 0x0000ffff742f39f4 // b.plast 0.06% │ 0x0000ffff742f3008: ldr x16, [x16, #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.16% │ 0x0000ffff742f300c: cbz x16, 0x0000ffff742f346c ;*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.12% ↗ │ 0x0000ffff742f3010: ldr w0, [x16, #12] ; implicit exception: dispatches to 0x0000ffff742f41f4 │ │ ;*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.66% │ │ 0x0000ffff742f3014: cmp w12, w0 ╭│ │ 0x0000ffff742f3018: b.eq 0x0000ffff742f3038 // 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.06% ││ │ 0x0000ffff742f301c: ldr x16, [x16, #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% ││ │ 0x0000ffff742f3020: cbz x16, 0x0000ffff742f33dc ;*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% ││ │ 0x0000ffff742f3024: cmp w0, w12 ││ │ 0x0000ffff742f3028: b.gt 0x0000ffff742f34b8 ;*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% ││ │ 0x0000ffff742f302c: ldr x3, [x28, #1120] ; ImmutableOopMap {r10=Oop r11=Oop r15=Oop r16=Oop r17=Oop r18_tls=Oop c_rarg2=Oop resp=Oop rdispatch=Oop rfp=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% ││ │ 0x0000ffff742f3030: ldr wzr, [x3] ;*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% │╰ │ 0x0000ffff742f3034: b 0x0000ffff742f3010 0.25% ↘ │ 0x0000ffff742f3038: ldr x14, [x16, #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.07% │ 0x0000ffff742f303c: cmp x18, x14 │ 0x0000ffff742f3040: b.ne 0x0000ffff742f3b50 // 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.16% │ 0x0000ffff742f3044: ldr x12, [x16, #24] ;*invokeinterface getOrElseUpdate {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.IterableOps::groupBy@53 (line 561) 0.08% │ 0x0000ffff742f3048: ldr w13, [x12, #8] ; implicit exception: dispatches to 0x0000ffff742f42c0 0.00% │ 0x0000ffff742f304c: mov x14, #0x1130000 // #18022400 │ ; {metadata('scala/collection/immutable/VectorBuilder')} 1.09% │ 0x0000ffff742f3050: movk x14, #0xeeb0 0.06% │ 0x0000ffff742f3054: cmp w13, w14 │ 0x0000ffff742f3058: b.ne 0x0000ffff742f4124 // b.any;*checkcast {reexecute=0 rethrow=0 return_oop=0} │ ; - scala.collection.IterableOps::groupBy@58 (line 561) 0.35% │ 0x0000ffff742f305c: ldr w19, [x12, #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.07% │ 0x0000ffff742f3060: cmp w19, #0x20 ╭ │ 0x0000ffff742f3064: b.eq 0x0000ffff742f32d8 // b.none;*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.10% │ │ ↗ 0x0000ffff742f3068: ldr x13, [x12, #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) 0.00% │ │ │ 0x0000ffff742f306c: add x14, x13, w19, sxtw #3 0.15% │ │ │ 0x0000ffff742f3070: ldr w16, [x13, #12] ; implicit exception: dispatches to 0x0000ffff742f42e0 1.36% │ │ │ 0x0000ffff742f3074: ldr w0, [x13, #8] 0.00% │ │ │ 0x0000ffff742f3078: add x22, x14, #0x10 0.15% │ │ │ 0x0000ffff742f307c: cmp w19, w16 │ │ │ 0x0000ffff742f3080: b.cs 0x0000ffff742f392c // b.hs, b.nlast 0.30% │ │ │ 0x0000ffff742f3084: movz x16, #0x0, lsl #16 ; {metadata('java/lang/Object'[])} 0.03% │ │ │ 0x0000ffff742f3088: movk x16, #0x1258 0.05% │ │ │ 0x0000ffff742f308c: cmp w0, w16 │ │ │ 0x0000ffff742f3090: b.ne 0x0000ffff742f3a20 // 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.15% │ │ │ 0x0000ffff742f3094: ldrsb w13, [x28, #56] 0.04% │╭ │ │ 0x0000ffff742f3098: cbnz w13, 0x0000ffff742f332c 0.04% ││ │ │↗ 0x0000ffff742f309c: mov x13, x22 0.04% ││ │ ││ 0x0000ffff742f30a0: mov x14, x11 ││ │ ││ 0x0000ffff742f30a4: eor x14, x14, x13 0.04% ││ │ ││ 0x0000ffff742f30a8: lsr x14, x14, #21 0.04% ││ │ ││ 0x0000ffff742f30ac: str x11, [x22] 0.05% ││╭ │ ││ 0x0000ffff742f30b0: cbz x14, 0x0000ffff742f30d4 0.10% │││ │ ││ 0x0000ffff742f30b4: lsr x11, x13, #9 │││ │ ││ 0x0000ffff742f30b8: mov x13, #0xf000 // #61440 0.04% │││ │ ││ 0x0000ffff742f30bc: movk x13, #0x8979, lsl #16 0.05% │││ │ ││ 0x0000ffff742f30c0: movk x13, #0xff7f, lsl #32 0.00% │││ │ ││ 0x0000ffff742f30c4: add x0, x13, x11 0.03% │││ │ ││ 0x0000ffff742f30c8: ldrsb w13, [x0] 0.95% │││ │ ││ 0x0000ffff742f30cc: cmp w13, #0x2 │││ │ ││ 0x0000ffff742f30d0: b.ne 0x0000ffff742f3354 // 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.30% ││↘ │ ││ 0x0000ffff742f30d4: add w11, w19, #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.04% ││ │ ││ 0x0000ffff742f30d8: ldr x13, [x28, #1120] 0.04% ││ │ ││ 0x0000ffff742f30dc: str w11, [x12, #12] ; ImmutableOopMap {r10=Oop r15=Oop r17=Oop resp=Oop rdispatch=Oop } ││ │ ││ ;*goto {reexecute=1 rethrow=0 return_oop=0} ││ │ ││ ; - (reexecute) scala.collection.IterableOps::groupBy@80 (line 562) 0.05% ││ │ ││ 0x0000ffff742f30e0: ldr wzr, [x13] ;*goto {reexecute=0 rethrow=0 return_oop=0} ││ │ ││ ; - scala.collection.IterableOps::groupBy@80 (line 562) ││ │ ││ ; {poll} 0.05% ││ │ ││ 0x0000ffff742f30e4: ldr w14, [x20, #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.04% ││ │ ││ 0x0000ffff742f30e8: ldr w11, [x20, #32] 0.04% ││ │ ││ 0x0000ffff742f30ec: cmp w11, w14 ││ │ ││ 0x0000ffff742f30f0: b.le 0x0000ffff742f3500 ;*aload_3 {reexecute=0 rethrow=0 return_oop=0} ││ │ ││ ; - scala.collection.IterableOps::groupBy@26 (line 559) 0.05% ││ │ ││ 0x0000ffff742f30f4: ldr w11, [x20, #20] 0.04% ││ │ ││ 0x0000ffff742f30f8: str x15, [sp, #8] ;*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.03% ││ │ ││ 0x0000ffff742f30fc: cmp w14, w11 ││ ╭ │ ││ 0x0000ffff742f3100: b.eq 0x0000ffff742f32a0 // b.none;*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) 0.09% ││ │ │ ↗││ 0x0000ffff742f3104: ldr x11, [x20, #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% ││ │ │ │││ 0x0000ffff742f3108: ldr w12, [x11, #12] ; implicit exception: dispatches to 0x0000ffff742f4208 0.00% ││ │ │ │││ 0x0000ffff742f310c: add x13, x11, w14, sxtw #3 0.05% ││ │ │ │││ 0x0000ffff742f3110: cmp w14, w12 ││ │ │ │││ 0x0000ffff742f3114: b.cs 0x0000ffff742f38d0 // b.hs, b.nlast 0.06% ││ │ │ │││ 0x0000ffff742f3118: ldr x15, [x13, #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.12% ││ │ │ │││ 0x0000ffff742f311c: add w11, w14, #0x1 0.18% ││ │ │ │││ 0x0000ffff742f3120: ldp x12, x13, [x10, #16] ;*getfield arg$2 {reexecute=0 rethrow=0 return_oop=0} ││ │ │ │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f0001147140::apply@5 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.04% ││ │ │ │││ 0x0000ffff742f3124: str w11, [x20, #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.05% ││ │ │ │││ 0x0000ffff742f3128: ldr w14, [x15, #8] ; implicit exception: dispatches to 0x0000ffff742f4220 0.02% ││ │ │ │││ 0x0000ffff742f312c: mov x16, #0x1100000 // #17825792 ││ │ │ │││ ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$Point')} 0.36% ││ │ │ │││ 0x0000ffff742f3130: movk x16, #0x7c88 0.04% ││ │ │ │││ 0x0000ffff742f3134: cmp w14, w16 ││ │ │ │││ 0x0000ffff742f3138: b.ne 0x0000ffff742f4084 // b.any 0.06% ││ │ │ │││ 0x0000ffff742f313c: mov x11, x15 ;*checkcast {reexecute=0 rethrow=0 return_oop=0} ││ │ │ │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f0001147140::apply@9 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.04% ││ │ │ │││ 0x0000ffff742f3140: ldr w16, [x12, #8] ; implicit exception: dispatches to 0x0000ffff742f4244 ││ │ │ │││ 0x0000ffff742f3144: mov x14, #0x1090000 // #17367040 ││ │ │ │││ ; {metadata('org/renaissance/scala/stdlib/ScalaKmeans')} 0.03% ││ │ │ │││ 0x0000ffff742f3148: movk x14, #0x51f8 0.04% ││ │ │ │││ 0x0000ffff742f314c: cmp w16, w14 ││ │ │ │││ 0x0000ffff742f3150: b.ne 0x0000ffff742f4148 // b.any;*invokeinterface $anonfun$1 {reexecute=0 rethrow=0 return_oop=0} ││ │ │ │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.06% ││ │ │ │││ 0x0000ffff742f3154: ldr w16, [x12, #8] 0.03% ││ │ │ │││ 0x0000ffff742f3158: mov x18, #0x1090000 // #17367040 ││ │ │ │││ ; {metadata('org/renaissance/scala/stdlib/ScalaKmeans')} 0.00% ││ │ │ │││ 0x0000ffff742f315c: movk x18, #0x51f8 0.05% ││ │ │ │││ 0x0000ffff742f3160: cmp w16, w18 ││ │ │ │││ 0x0000ffff742f3164: b.ne 0x0000ffff742f3958 // 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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.05% ││ │ │ │││ 0x0000ffff742f3168: ldr w14, [x13, #8] ; implicit exception: dispatches to 0x0000ffff742f4260 ││ │ │ │││ 0x0000ffff742f316c: mov x12, #0x1110000 // #17891328 ││ │ │ │││ ; {metadata('scala/collection/immutable/Vector1')} 0.03% ││ │ │ │││ 0x0000ffff742f3170: movk x12, #0xb130 0.05% ││ │ │ │││ 0x0000ffff742f3174: cmp w14, w12 ││ │ │ │││ 0x0000ffff742f3178: b.ne 0x0000ffff742f3980 // 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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.04% ││ │ │ │││ 0x0000ffff742f317c: ldr x16, [x13, #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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.04% ││ │ │ │││ 0x0000ffff742f3180: ldr w12, [x16, #12] ; implicit exception: dispatches to 0x0000ffff742f4274 ││ │ │ │││ ;*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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.06% ││ │ │ │││ 0x0000ffff742f3184: cmp w12, #0x0 ││ │ │ │││ 0x0000ffff742f3188: b.ls 0x0000ffff742f3b88 // 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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.05% ││ │ │ │││ 0x0000ffff742f318c: ldr x18, [x16, #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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.05% ││ │ │ │││ 0x0000ffff742f3190: ldr w14, [x18, #8] ; implicit exception: dispatches to 0x0000ffff742f4288 ││ │ │ │││ 0x0000ffff742f3194: mov x2, #0x1100000 // #17825792 ││ │ │ │││ ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$Point')} 0.05% ││ │ │ │││ 0x0000ffff742f3198: movk x2, #0x7c88 0.00% ││ │ │ │││ 0x0000ffff742f319c: cmp w14, w2 0.04% ││ │ │ │││ 0x0000ffff742f31a0: sub w1, w12, #0x1 0.05% ││ │ │ │││ 0x0000ffff742f31a4: b.ne 0x0000ffff742f40ac // 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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.05% ││ │ │ │││ 0x0000ffff742f31a8: ldr d17, [x11, #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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.06% ││ │ │ │││ 0x0000ffff742f31ac: ldr d19, [x18, #16] 0.05% ││ │ │ │││ 0x0000ffff742f31b0: ldr d16, [x11, #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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.06% ││ │ │ │││ 0x0000ffff742f31b4: ldr d20, [x18, #24] 0.04% ││ │ │ │││ 0x0000ffff742f31b8: ldr d18, [x11, #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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.06% ││ │ │ │││ 0x0000ffff742f31bc: ldr d21, [x18, #32] 0.05% ││ │ │ │││ 0x0000ffff742f31c0: fsub d19, d19, d17 ;*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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.04% ││ │ │ │││ 0x0000ffff742f31c4: fsub d20, d20, d16 ;*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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.00% ││ │ │ │││ 0x0000ffff742f31c8: fmul d19, d19, d19 0.03% ││ │ │ │││ 0x0000ffff742f31cc: fmul d20, d20, d20 0.01% ││ │ │ │││ 0x0000ffff742f31d0: fsub d21, d21, d18 ;*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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ │ │││ 0x0000ffff742f31d4: fadd d19, d19, d20 0.01% ││ │ │ │││ 0x0000ffff742f31d8: fmul d20, d21, d21 0.03% ││ │ │ │││ 0x0000ffff742f31dc: adrp x14, 0x0000ffff8d35d000 ; {external_word} 0.03% ││ │ │ │││ 0x0000ffff742f31e0: add x14, x14, #0xba4 0.05% ││ │ │ │││ 0x0000ffff742f31e4: ldr w0, [x14] 0.04% ││ │ │ │││ 0x0000ffff742f31e8: fadd d19, d19, d20 ;*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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.03% ││ │ │ │││ 0x0000ffff742f31ec: cbnz w0, 0x0000ffff742f39a8 ;*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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.05% ││ │ │ │││ 0x0000ffff742f31f0: cmp w1, w12 ││ │ │ │││ 0x0000ffff742f31f4: b.cs 0x0000ffff742f38fc // b.hs, b.nlast ││ │ │ │││ ;*goto {reexecute=0 rethrow=0 return_oop=0} ││ │ │ │││ ; - scala.collection.immutable.Vector::foreach@85 (line 2123) ││ │ │ │││ ; - 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/0x00007f0001147140::apply@12 ││ │ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.04% ││ │ │ │││ 0x0000ffff742f31f8: mov w14, wzr 0.01% ││ │╭│ │││ 0x0000ffff742f31fc: b 0x0000ffff742f3210 ;*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.05% ││ │││ ↗ │││ 0x0000ffff742f3200: ldr x0, [x28, #1120] ; ImmutableOopMap {r10=Oop r11=Oop r13=Oop r15=Oop r16=Oop r17=Oop r18_tls=Oop resp=Oop rdispatch=Oop [8]=Oop } ││ │││ │ │││ ;*goto {reexecute=1 rethrow=0 return_oop=0} ││ │││ │ │││ ; - (reexecute) scala.collection.immutable.Vector::foreach@85 (line 2123) ││ │││ │ │││ ; - 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/0x00007f0001147140::apply@12 ││ │││ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.06% ││ │││ │ │││ 0x0000ffff742f3204: ldr wzr, [x0] ;*goto {reexecute=0 rethrow=0 return_oop=0} ││ │││ │ │││ ; - scala.collection.immutable.Vector::foreach@85 (line 2123) ││ │││ │ │││ ; - 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/0x00007f0001147140::apply@12 ││ │││ │ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) ││ │││ │ │││ ; {poll} 0.06% ││ │││ │ │││ 0x0000ffff742f3208: cmp w14, w12 ││ ││╰ │ │││ 0x0000ffff742f320c: b.ge 0x0000ffff742f2f80 // b.tcont 0.06% ││ │↘ │ │││ 0x0000ffff742f3210: cmp w12, w14 ││ │ │ │││ 0x0000ffff742f3214: sub w1, w12, w14 0.04% ││ │ │ │││ 0x0000ffff742f3218: csel w1, wzr, w1, lt // lt = tstop 0.00% ││ │ │ │││ 0x0000ffff742f321c: cmp w1, #0x3e8 0.05% ││ │ │ │││ 0x0000ffff742f3220: mov w0, #0x3e8 // #1000 0.00% ││ │ │ │││ 0x0000ffff742f3224: csel w1, w0, w1, hi // hi = pmore 0.06% ││ │ │ │││ 0x0000ffff742f3228: add w1, w1, w14 0.00% ││ │ ╭│ │││ 0x0000ffff742f322c: b 0x0000ffff742f324c 2.82% ││ │ ││↗ │││ 0x0000ffff742f3230: fmov d19, d20 ││ │ │││ │││ 0x0000ffff742f3234: mov x18, x0 1.99% ││ │ │││ │││ 0x0000ffff742f3238: nop ││ │ │││ │││ 0x0000ffff742f323c: nop ;*getfield elem {reexecute=0 rethrow=0 return_oop=0} ││ │ │││ │││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$$anonfun$1@10 (line 49) ││ │ │││ │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f000114f698::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) ││ │ │││ │││ ; - 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/0x00007f0001147140::apply@12 ││ │ │││ │││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 3.24% ││ │ │││↗│││ 0x0000ffff742f3240: add w14, w14, #0x1 ;*iinc {reexecute=0 rethrow=0 return_oop=0} ││ │ │││││││ ; - scala.collection.immutable.Vector::foreach@82 (line 2125) ││ │ │││││││ ; - 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/0x00007f0001147140::apply@12 ││ │ │││││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 1.75% ││ │ │││││││ 0x0000ffff742f3244: cmp w14, w1 ││ │ │╰│││││ 0x0000ffff742f3248: b.ge 0x0000ffff742f3200 // b.tcont;*getfield elem {reexecute=0 rethrow=0 return_oop=0} ││ │ │ │││││ ; - org.renaissance.scala.stdlib.KmeansUtilities::findClosest$$anonfun$1@10 (line 49) ││ │ │ │││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f000114f698::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) ││ │ │ │││││ ; - 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/0x00007f0001147140::apply@12 ││ │ │ │││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 4.55% ││ │ ↘ │││││ 0x0000ffff742f324c: add x0, x16, w14, sxtw #3 1.54% ││ │ │││││ 0x0000ffff742f3250: ldr x0, [x0, #16] ;*aaload {reexecute=0 rethrow=0 return_oop=0} ││ │ │││││ ; - scala.collection.immutable.Vector::foreach@75 (line 2124) ││ │ │││││ ; - 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/0x00007f0001147140::apply@12 ││ │ │││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 4.66% ││ │ │││││ 0x0000ffff742f3254: ldr w3, [x0, #8] ; implicit exception: dispatches to 0x0000ffff742f41c4 0.02% ││ │ │││││ 0x0000ffff742f3258: mov x4, #0x1100000 // #17825792 ││ │ │││││ ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$Point')} 4.12% ││ │ │││││ 0x0000ffff742f325c: movk x4, #0x7c88 1.53% ││ │ │││││ 0x0000ffff742f3260: cmp w3, w4 ││ │ │││││ 0x0000ffff742f3264: b.ne 0x0000ffff742f40d4 // b.any;*checkcast {reexecute=0 rethrow=0 return_oop=0} ││ │ │││││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f000114f698::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) ││ │ │││││ ; - 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/0x00007f0001147140::apply@12 ││ │ │││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 2.02% ││ │ │││││ 0x0000ffff742f3268: ldr d20, [x0, #16] 1.52% ││ │ │││││ 0x0000ffff742f326c: ldr d21, [x0, #24] 1.54% ││ │ │││││ 0x0000ffff742f3270: ldr d22, [x0, #32] 1.48% ││ │ │││││ 0x0000ffff742f3274: fsub d20, d20, d17 ;*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/0x00007f000114f698::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) ││ │ │││││ ; - 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/0x00007f0001147140::apply@12 ││ │ │││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 0.22% ││ │ │││││ 0x0000ffff742f3278: fsub d21, d21, d16 ;*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/0x00007f000114f698::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) ││ │ │││││ ; - 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/0x00007f0001147140::apply@12 ││ │ │││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 1.34% ││ │ │││││ 0x0000ffff742f327c: fmul d20, d20, d20 1.43% ││ │ │││││ 0x0000ffff742f3280: fmul d21, d21, d21 0.08% ││ │ │││││ 0x0000ffff742f3284: fsub d22, d22, d18 ;*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/0x00007f000114f698::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) ││ │ │││││ ; - 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/0x00007f0001147140::apply@12 ││ │ │││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 1.47% ││ │ │││││ 0x0000ffff742f3288: fadd d20, d20, d21 1.09% ││ │ │││││ 0x0000ffff742f328c: fmul d21, d22, d22 0.43% ││ │ │││││ 0x0000ffff742f3290: fadd d20, d20, d21 ;*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/0x00007f000114f698::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) ││ │ │││││ ; - 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/0x00007f0001147140::apply@12 ││ │ │││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 1.09% ││ │ │││││ 0x0000ffff742f3294: fcmp d19, d20 1.48% ││ │ ╰││││ 0x0000ffff742f3298: b.gt 0x0000ffff742f3230 ;*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/0x00007f000114f698::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) ││ │ ││││ ; - 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/0x00007f0001147140::apply@12 ││ │ ││││ ; - scala.collection.IterableOps::groupBy@37 (line 560) 25.47% ││ │ ╰│││ 0x0000ffff742f329c: b 0x0000ffff742f3240 0.00% ││ ↘ │││ 0x0000ffff742f32a0: str x21, [sp] 0.00% ││ │││ 0x0000ffff742f32a4: stp x20, x10, [sp, #16] 0.00% ││ │││ 0x0000ffff742f32a8: mov x29, x17 0.00% ││ │││ 0x0000ffff742f32ac: mov x1, x20 ││ │││ 0x0000ffff742f32b0: bl 0x0000ffff73ac3180 ; ImmutableOopMap {rfp=Oop [0]=Oop [8]=Oop [16]=Oop [24]=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} ││ │││ 0x0000ffff742f32b4: nop ; {other} ││ │││ 0x0000ffff742f32b8: movk xzr, #0x9a4 0.00% ││ │││ 0x0000ffff742f32bc: movk xzr, #0x600 ;*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% ││ │││ 0x0000ffff742f32c0: ldr x20, [sp, #16] 0.00% ││ │││ 0x0000ffff742f32c4: ldr w14, [x20, #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) ││ │││ 0x0000ffff742f32c8: mov x17, x29 0.04% ││ │││ 0x0000ffff742f32cc: ldr x21, [sp] 0.00% ││ │││ 0x0000ffff742f32d0: ldr x10, [sp, #24] 0.00% ││ ╰││ 0x0000ffff742f32d4: b 0x0000ffff742f3104 0.00% ↘│ ││ 0x0000ffff742f32d8: str x11, [sp, #32] 0.08% │ ││ 0x0000ffff742f32dc: ldr w11, [x12, #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.04% │ ││ 0x0000ffff742f32e0: add w2, w11, #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) │ ││ 0x0000ffff742f32e4: stp wzr, w2, [x12, #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% │ ││ 0x0000ffff742f32e8: stp x15, x21, [sp] 0.00% │ ││ 0x0000ffff742f32ec: stp x20, x10, [sp, #16] 0.00% │ ││ 0x0000ffff742f32f0: mov x29, x17 0.00% │ ││ 0x0000ffff742f32f4: str x12, [sp, #40] 0.00% │ ││ 0x0000ffff742f32f8: eor w3, w2, w11 ;*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) │ ││ 0x0000ffff742f32fc: mov x1, x12 │ ││ 0x0000ffff742f3300: bl 0x0000ffff73ac3180 ; ImmutableOopMap {rfp=Oop [0]=Oop [8]=Oop [16]=Oop [24]=Oop [32]=Oop [40]=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} │ ││ 0x0000ffff742f3304: nop ; {other} │ ││ 0x0000ffff742f3308: movk xzr, #0x9f4 0.00% │ ││ 0x0000ffff742f330c: movk xzr, #0x700 ;*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) │ ││ 0x0000ffff742f3310: ldr x12, [sp, #40] │ ││ 0x0000ffff742f3314: ldr w19, [x12, #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) │ ││ 0x0000ffff742f3318: mov x17, x29 0.00% │ ││ 0x0000ffff742f331c: ldp x15, x21, [sp] │ ││ 0x0000ffff742f3320: ldp x20, x10, [sp, #16] 0.00% │ ││ 0x0000ffff742f3324: ldr x11, [sp, #32] 0.00% │ ╰│ 0x0000ffff742f3328: b 0x0000ffff742f3068 ↘ │ 0x0000ffff742f332c: ldr x0, [x22] ╰ 0x0000ffff742f3330: cbz x0, 0x0000ffff742f309c 0x0000ffff742f3334: ldr x13, [x28, #40] 0x0000ffff742f3338: cbz x13, 0x0000ffff742f3ae8 0x0000ffff742f333c: ldr x14, [x28, #48] 0x0000ffff742f3340: sub x16, x13, #0x8 0x0000ffff742f3344: add x13, x14, x13 0x0000ffff742f3348: stur x0, [x13, #-8] 0x0000ffff742f334c: str x16, [x28, #40] 0x0000ffff742f3350: b 0x0000ffff742f309c .................................................................................................... 79.03% ....[Hottest Region 2].............................................................................. c2, level 4, scala.collection.immutable.Vector::foreach, version 6, compile id 1625 ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$$Lambda+0x00007f0001155b08')} 0x0000ffff74304b64: movk x10, #0x5b08 0x0000ffff74304b68: cmp w0, w10 0x0000ffff74304b6c: b.ne 0x0000ffff74304fa4 // b.any 0x0000ffff74304b70: ldr x7, [sp] ;*invokeinterface apply {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.VectorStatics$::foreachRec@24 (line 2124) ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) ; - scala.collection.immutable.Vector::foreach@114 (line 2130) 0x0000ffff74304b74: mov w5, wzr ╭ 0x0000ffff74304b78: b 0x0000ffff74304b9c 0.00% │ ↗ 0x0000ffff74304b7c: mov w12, w7 0.00% │ │ 0x0000ffff74304b80: mov w11, w14 0.00% │ │ 0x0000ffff74304b84: mov x7, x5 0.00% │ │ 0x0000ffff74304b88: mov w14, w20 0.00% │ │ 0x0000ffff74304b8c: mov w5, w22 ;*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) │ ↗ │ 0x0000ffff74304b90: add w5, w5, #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) │ │ │ 0x0000ffff74304b94: cmp w5, w15 │ │ │ 0x0000ffff74304b98: b.ge 0x0000ffff743049fc // b.tcont;*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) 0.00% ↘ │ │ 0x0000ffff74304b9c: add x10, x18, w5, sxtw #3 │ │ 0x0000ffff74304ba0: ldr x6, [x10, #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% │ │ 0x0000ffff74304ba4: ldr w10, [x6, #8] ; implicit exception: dispatches to 0x0000ffff743052dc 0.05% │ │ 0x0000ffff74304ba8: movz x1, #0x0, lsl #16 ; {metadata('java/lang/Object'[])} 1.58% │ │ 0x0000ffff74304bac: movk x1, #0x1258 0.00% │ │ 0x0000ffff74304bb0: cmp w10, w1 │ │ 0x0000ffff74304bb4: b.ne 0x0000ffff74305020 // b.any;*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.01% │ │ 0x0000ffff74304bb8: ldr w10, [x6, #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) │ │ 0x0000ffff74304bbc: sub w1, w10, #0x1 0.02% │ │ 0x0000ffff74304bc0: cmp w11, #0x2 ╭│ │ 0x0000ffff74304bc4: b.ne 0x0000ffff74304c9c // 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) ││ │ 0x0000ffff74304bc8: cmp w10, #0x0 │╰ │ 0x0000ffff74304bcc: b.ls 0x0000ffff74304b90 // 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% │ │ 0x0000ffff74304bd0: cmp w1, w10 │ │ 0x0000ffff74304bd4: b.cs 0x0000ffff74304e60 // b.hs, b.nlast 0.01% │ │ 0x0000ffff74304bd8: ldr x0, [x7, #16] ;*getfield arg$1 {reexecute=0 rethrow=0 return_oop=0} │ │ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f0001155b08::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) │ │ 0x0000ffff74304bdc: cbz x0, 0x0000ffff74304e78 0.00% │ │ 0x0000ffff74304be0: ldr x3, [x7, #24] ;*getfield arg$2 {reexecute=0 rethrow=0 return_oop=0} │ │ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f0001155b08::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) │ │ 0x0000ffff74304be4: cbz x3, 0x0000ffff74304e90 0.00% │ │ 0x0000ffff74304be8: mov w20, w14 │ │ 0x0000ffff74304bec: mov w22, w5 │ │ 0x0000ffff74304bf0: mov w14, w11 0.00% │ │ 0x0000ffff74304bf4: mov x5, x7 0.00% │ │ 0x0000ffff74304bf8: ldr x11, [x5, #32] ;*getfield arg$3 {reexecute=0 rethrow=0 return_oop=0} │ │ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f0001155b08::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) │ │ 0x0000ffff74304bfc: mov w23, w10 0.00% │ │ 0x0000ffff74304c00: mov x21, x6 0.00% │ │ 0x0000ffff74304c04: mov w7, w12 │ │ 0x0000ffff74304c08: cbz x11, 0x0000ffff74304ea4 0.00% │ │ 0x0000ffff74304c0c: mov w10, wzr 0.00% │ ↗│ 0x0000ffff74304c10: cmp w23, w10 │ ││ 0x0000ffff74304c14: sub w12, w23, w10 0.00% │ ││ 0x0000ffff74304c18: csel w12, wzr, w12, lt // lt = tstop │ ││ 0x0000ffff74304c1c: cmp w12, #0x3e8 │ ││ 0x0000ffff74304c20: mov w6, #0x3e8 // #1000 0.00% │ ││ 0x0000ffff74304c24: csel w12, w6, w12, hi // hi = pmore │ ││ 0x0000ffff74304c28: add w1, w12, w10 │ ││ 0x0000ffff74304c2c: nop 0.03% │ ↗││ 0x0000ffff74304c30: add x12, x21, w10, 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.04% │ │││ 0x0000ffff74304c34: ldr x12, [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.19% │ │││ 0x0000ffff74304c38: ldr w19, [x12, #8] ; implicit exception: dispatches to 0x0000ffff743051c8 0.15% │ │││ 0x0000ffff74304c3c: mov x6, #0x1100000 // #17825792 │ │││ ; {metadata('org/renaissance/scala/stdlib/KmeansUtilities$Point')} 5.95% │ │││ 0x0000ffff74304c40: movk x6, #0x7c88 0.04% │ │││ 0x0000ffff74304c44: cmp w19, w6 │ │││ 0x0000ffff74304c48: b.ne 0x0000ffff74305114 // b.any;*checkcast {reexecute=0 rethrow=0 return_oop=0} │ │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f0001155b08::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.10% │ │││ 0x0000ffff74304c4c: ldr d17, [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::findAverage$$anonfun$1@5 (line 76) │ │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f0001155b08::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.88% │ │││ 0x0000ffff74304c50: ldr d16, [x0, #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/0x00007f0001155b08::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.76% │ │││ 0x0000ffff74304c54: fadd d16, d16, d17 0.03% │ │││ 0x0000ffff74304c58: str d16, [x0, #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/0x00007f0001155b08::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% │ │││ 0x0000ffff74304c5c: ldr d16, [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::findAverage$$anonfun$1@22 (line 77) │ │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f0001155b08::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.13% │ │││ 0x0000ffff74304c60: ldr d17, [x3, #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/0x00007f0001155b08::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.32% │ │││ 0x0000ffff74304c64: fadd d16, d17, d16 0.04% │ │││ 0x0000ffff74304c68: str d16, [x3, #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/0x00007f0001155b08::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% │ │││ 0x0000ffff74304c6c: ldr d16, [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::findAverage$$anonfun$1@39 (line 78) │ │││ ; - org.renaissance.scala.stdlib.KmeansUtilities$$Lambda/0x00007f0001155b08::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.81% │ │││ 0x0000ffff74304c70: ldr d17, [x11, #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/0x00007f0001155b08::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.10% │ │││ 0x0000ffff74304c74: add w10, w10, #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.46% │ │││ 0x0000ffff74304c78: fadd d16, d17, d16 0.04% │ │││ 0x0000ffff74304c7c: str d16, [x11, #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/0x00007f0001155b08::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% │ │││ 0x0000ffff74304c80: cmp w10, w1 │ ╰││ 0x0000ffff74304c84: b.lt 0x0000ffff74304c30 // 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/0x00007f000114f698::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% │ ││ 0x0000ffff74304c88: ldr x12, [x28, #1120] ; ImmutableOopMap {r11=Oop r13=Oop r18_tls=Oop c_rarg0=Oop c_rarg2=Oop c_rarg3=Oop c_rarg5=Oop rdispatch=Oop [80]=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) 0.00% │ ││ 0x0000ffff74304c8c: ldr wzr, [x12] ;*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.01% │ ││ 0x0000ffff74304c90: cmp w10, w23 │ ╰│ 0x0000ffff74304c94: b.lt 0x0000ffff74304c10 // b.tstop │ ╰ 0x0000ffff74304c98: b 0x0000ffff74304b7c ↘ 0x0000ffff74304c9c: cmp w10, #0x0 0x0000ffff74304ca0: b.ls 0x0000ffff74304b90 // b.plast;*if_icmpge {reexecute=0 rethrow=0 return_oop=0} ; - scala.collection.immutable.VectorStatics$::foreachRec@46 (line 2129) ; - scala.collection.immutable.VectorStatics$::foreachRec@60 (line 2130) .................................................................................................... 11.91% ....[Hottest Regions]............................................................................... 79.03% c2, level 4 scala.collection.IterableOps::groupBy, version 7, compile id 1568 11.91% c2, level 4 scala.collection.immutable.Vector::foreach, version 6, compile id 1625 1.19% c2, level 4 scala.collection.immutable.NewVectorIterator::advance, version 4, compile id 1559 1.04% c2, level 4 scala.collection.immutable.Vector::foreach, version 6, compile id 1625 0.51% c2, level 4 scala.collection.immutable.VectorBuilder::advance1, version 4, compile id 1511 0.46% kernel [unknown] 0.30% runtime stub StubRoutines::zero_blocks 0.26% c2, level 4 scala.collection.immutable.Vector::foreach, version 6, compile id 1625 0.17% libjvm.so ElfSymbolTable::lookup 0.14% libpthread-2.26.so __aarch64_cas4_acq 0.12% libc-2.26.so __aarch64_swp4_rel 0.12% libc-2.26.so __aarch64_cas4_acq 0.10% c2, level 4 scala.collection.immutable.NewVectorIterator::advanceA, version 2, compile id 1513 0.10% libjvm.so RelocIterator::initialize 0.09% libc-2.26.so __GI_strlen 0.09% libjvm.so defaultStream::write 0.08% c2, level 4 scala.collection.immutable.NewVectorIterator::advanceA, version 2, compile id 1513 0.08% libjvm.so defaultStream::hold 0.08% libjvm.so xmlStream::write_text 0.08% libpthread-2.26.so __pthread_disable_asynccancel 4.06% <...other 1524 warm regions...> .................................................................................................... 100.00% ....[Hottest Methods (after inlining)].............................................................. 79.03% c2, level 4 scala.collection.IterableOps::groupBy, version 7, compile id 1568 13.26% c2, level 4 scala.collection.immutable.Vector::foreach, version 6, compile id 1625 1.19% c2, level 4 scala.collection.immutable.NewVectorIterator::advance, version 4, compile id 1559 0.57% c2, level 4 scala.collection.immutable.VectorBuilder::advance1, version 4, compile id 1511 0.46% kernel [unknown] 0.30% runtime stub StubRoutines::zero_blocks 0.29% 0.19% c2, level 4 scala.collection.immutable.NewVectorIterator::advanceA, version 2, compile id 1513 0.18% libc-2.26.so vfprintf 0.17% libjvm.so ElfSymbolTable::lookup 0.16% libjvm.so xmlStream::write_text 0.14% libpthread-2.26.so __aarch64_cas4_acq 0.13% libjvm.so RelocIterator::initialize 0.12% libc-2.26.so __aarch64_swp4_rel 0.12% libc-2.26.so __aarch64_cas4_acq 0.10% runtime stub StubRoutines::atomic entry points 0.10% libjvm.so defaultStream::write 0.09% libc-2.26.so __GI_strlen 0.08% libjvm.so outputStream::do_vsnprintf_and_write_with_automatic_buffer 0.08% libjvm.so defaultStream::hold 3.23% <...other 956 warm methods...> .................................................................................................... 100.00% ....[Distribution by Source]........................................................................ 94.32% c2, level 4 2.44% libjvm.so 1.01% libc-2.26.so 0.46% libpthread-2.26.so 0.46% kernel 0.41% runtime stub 0.29% 0.27% hsdis-aarch64.so 0.16% interpreter 0.11% c1, level 3 0.03% [vdso] 0.01% perf-8579.map 0.01% ld-2.26.so 0.01% c1, level 1 0.00% Unknown, level 0 0.00% libjava.so 0.00% libnio.so .................................................................................................... 100.00% # Run complete. Total time: 00:01:37 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 161.378 ± 0.757 ms/op JmhScalaKmeans.run:asm ss NaN ---