<?php
// Proposal idea of enabling the unrolling in the userland.
function measure(string $label, callable $fn): void {
$start = hrtime(true);
$result = $fn();
$end = hrtime(true);
$elapsed = ($end - $start) / 1e9;
echo "Sum: {$result}, {$label}: " . number_format($elapsed, 6) . " seconds\n";
}
$array = range(1, 1e6);
$n = count($array);
measure("Normal for loop", function () use ($array, $n) {
$sum = 0;
for ($i = 0; $i < $n; $i++) {
$sum += $array[$i];
}
return $sum;
}); // Sum: 500000500000, Normal for loop: 0.047172 seconds
measure("Manual Unrolled x4", function () use ($array, $n) {
$sum = 0;
for ($i = 0; $i < $n; $i += 4) {
$sum += $array[$i] + $array[$i + 1] + $array[$i + 2] + $array[$i + 3];
}
return $sum;
}); // Sum: 500000500000, Manual Unrolled x4: 0.042200 seconds
measure("Manual Unrolled x8", function () use ($array, $n) {
$sum = 0;
for ($i = 0; $i < $n; $i += 8) {
$sum += $array[$i] + $array[$i + 1] + $array[$i + 2] + $array[$i + 3]
+ $array[$i + 4] + $array[$i + 5] + $array[$i + 6] + $array[$i + 7];
}
return $sum;
}); // Sum: 500000500000, Manual Unrolled x8: 0.036472 seconds
// Attributed Unroll - this is handled by your modified compiler
measure("Attributed Unrolled #[Unroll(4)]", function () use ($array, $n) {
$sum = 0;
// @TODO: KhaledAlam: Unrolling logic of zend_compile_for( )
// #[Unroll(4)]
for ($i = 0; $i < $n; $i++) {
$sum += $array[$i];
}
return $sum;
}); // Sum: 0, Attributed Unrolled #[Unroll(4)]: 0.000002 seconds
- Output for 8.4.12
- Sum: 500000500000, Normal for loop: 0.013133 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005223 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004774 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006372 seconds
- Output for 8.4.11
- Sum: 500000500000, Normal for loop: 0.012194 seconds
Sum: 500000500000, Manual Unrolled x4: 0.010559 seconds
Sum: 500000500000, Manual Unrolled x8: 0.009055 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.005829 seconds
- Output for 8.4.10
- Sum: 500000500000, Normal for loop: 0.006024 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005467 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005820 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006589 seconds
- Output for 8.4.9
- Sum: 500000500000, Normal for loop: 0.006677 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006647 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005165 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006329 seconds
- Output for 8.4.8
- Sum: 500000500000, Normal for loop: 0.006500 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005481 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005064 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006379 seconds
- Output for 8.4.7
- Sum: 500000500000, Normal for loop: 0.006338 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005862 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004977 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006629 seconds
- Output for 8.4.6
- Sum: 500000500000, Normal for loop: 0.006013 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005669 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005894 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006095 seconds
- Output for 8.4.5
- Sum: 500000500000, Normal for loop: 0.006065 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005672 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005331 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006524 seconds
- Output for 8.4.4
- Sum: 500000500000, Normal for loop: 0.007219 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005541 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004851 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006530 seconds
- Output for 8.4.3
- Sum: 500000500000, Normal for loop: 0.006083 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006232 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004765 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006384 seconds
- Output for 8.4.2
- Sum: 500000500000, Normal for loop: 0.006151 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006027 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005409 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006749 seconds
- Output for 8.4.1
- Sum: 500000500000, Normal for loop: 0.006250 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005932 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004845 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006380 seconds
- Output for 8.3.25
- Sum: 500000500000, Normal for loop: 0.014074 seconds
Sum: 500000500000, Manual Unrolled x4: 0.007426 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005013 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006668 seconds
- Output for 8.3.24
- Sum: 500000500000, Normal for loop: 0.006545 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006363 seconds
Sum: 500000500000, Manual Unrolled x8: 0.008945 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.016321 seconds
- Output for 8.3.23
- Sum: 500000500000, Normal for loop: 0.006021 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005862 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005445 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006346 seconds
- Output for 8.3.22
- Sum: 500000500000, Normal for loop: 0.006190 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005568 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005068 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006356 seconds
- Output for 8.3.21
- Sum: 500000500000, Normal for loop: 0.006718 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005167 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005541 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006731 seconds
- Output for 8.3.20
- Sum: 500000500000, Normal for loop: 0.006499 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006552 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005059 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007375 seconds
- Output for 8.3.19
- Sum: 500000500000, Normal for loop: 0.006495 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005687 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004928 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006436 seconds
- Output for 8.3.18
- Sum: 500000500000, Normal for loop: 0.006043 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006258 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005113 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006202 seconds
- Output for 8.3.17
- Sum: 500000500000, Normal for loop: 0.006548 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005229 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004860 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006423 seconds
- Output for 8.3.16
- Sum: 500000500000, Normal for loop: 0.006442 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005250 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005236 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007131 seconds
- Output for 8.3.15
- Sum: 500000500000, Normal for loop: 0.006645 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006037 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004924 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006661 seconds
- Output for 8.3.14
- Sum: 500000500000, Normal for loop: 0.006776 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005846 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005280 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007219 seconds
- Output for 8.3.13
- Sum: 500000500000, Normal for loop: 0.006671 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005920 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005145 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006703 seconds
- Output for 8.3.12
- Sum: 500000500000, Normal for loop: 0.007006 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005333 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005132 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006641 seconds
- Output for 8.3.11
- Sum: 500000500000, Normal for loop: 0.006181 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006090 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005450 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006074 seconds
- Output for 8.3.10
- Sum: 500000500000, Normal for loop: 0.006055 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005063 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005221 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007133 seconds
- Output for 8.3.9
- Sum: 500000500000, Normal for loop: 0.006707 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006111 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004962 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007881 seconds
- Output for 8.3.8
- Sum: 500000500000, Normal for loop: 0.010158 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006302 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005787 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006122 seconds
- Output for 8.3.7
- Sum: 500000500000, Normal for loop: 0.006890 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005791 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005881 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007350 seconds
- Output for 8.3.6
- Sum: 500000500000, Normal for loop: 0.008930 seconds
Sum: 500000500000, Manual Unrolled x4: 0.007046 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005684 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006496 seconds
- Output for 8.3.5
- Sum: 500000500000, Normal for loop: 0.006268 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005384 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005428 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006302 seconds
- Output for 8.3.4
- Sum: 500000500000, Normal for loop: 0.007251 seconds
Sum: 500000500000, Manual Unrolled x4: 0.008177 seconds
Sum: 500000500000, Manual Unrolled x8: 0.006818 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006520 seconds
- Output for 8.3.3
- Sum: 500000500000, Normal for loop: 0.006100 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005868 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005702 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006297 seconds
- Output for 8.3.2
- Sum: 500000500000, Normal for loop: 0.007260 seconds
Sum: 500000500000, Manual Unrolled x4: 0.008026 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004919 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.008309 seconds
- Output for 8.3.1
- Sum: 500000500000, Normal for loop: 0.006983 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005619 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005058 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007000 seconds
- Output for 8.3.0
- Sum: 500000500000, Normal for loop: 0.006663 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005481 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004841 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006617 seconds
- Output for 8.2.29
- Sum: 500000500000, Normal for loop: 0.010188 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006580 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005061 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006707 seconds
- Output for 8.2.28
- Sum: 500000500000, Normal for loop: 0.006318 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005140 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005048 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007103 seconds
- Output for 8.2.27
- Sum: 500000500000, Normal for loop: 0.006121 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006200 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005117 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006201 seconds
- Output for 8.2.26
- Sum: 500000500000, Normal for loop: 0.006999 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005320 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004833 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006184 seconds
- Output for 8.2.25
- Sum: 500000500000, Normal for loop: 0.006918 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005243 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004868 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006009 seconds
- Output for 8.2.24
- Sum: 500000500000, Normal for loop: 0.006204 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005413 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005785 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006512 seconds
- Output for 8.2.23
- Sum: 500000500000, Normal for loop: 0.007054 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005562 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005203 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006924 seconds
- Output for 8.2.22
- Sum: 500000500000, Normal for loop: 0.006327 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006127 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005276 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006000 seconds
- Output for 8.2.21
- Sum: 500000500000, Normal for loop: 0.007045 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005625 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005268 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006578 seconds
- Output for 8.2.20
- Sum: 500000500000, Normal for loop: 0.006444 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005744 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004876 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007116 seconds
- Output for 8.2.19
- Sum: 500000500000, Normal for loop: 0.005983 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005684 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005318 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006303 seconds
- Output for 8.2.18
- Sum: 500000500000, Normal for loop: 0.006451 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005488 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005187 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006443 seconds
- Output for 8.2.17
- Sum: 500000500000, Normal for loop: 0.006193 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005183 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005002 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007048 seconds
- Output for 8.2.16
- Sum: 500000500000, Normal for loop: 0.007230 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005218 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004883 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007297 seconds
- Output for 8.2.15
- Sum: 500000500000, Normal for loop: 0.006113 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005449 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005175 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006342 seconds
- Output for 8.2.14
- Sum: 500000500000, Normal for loop: 0.006663 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005343 seconds
Sum: 500000500000, Manual Unrolled x8: 0.006219 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006143 seconds
- Output for 8.2.13
- Sum: 500000500000, Normal for loop: 0.007563 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005323 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004977 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006524 seconds
- Output for 8.2.12
- Sum: 500000500000, Normal for loop: 0.006201 seconds
Sum: 500000500000, Manual Unrolled x4: 0.006405 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005440 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006663 seconds
- Output for 8.2.11
- Sum: 500000500000, Normal for loop: 0.006383 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005207 seconds
Sum: 500000500000, Manual Unrolled x8: 0.006016 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006271 seconds
- Output for 8.2.10
- Sum: 500000500000, Normal for loop: 0.007157 seconds
Sum: 500000500000, Manual Unrolled x4: 0.007096 seconds
Sum: 500000500000, Manual Unrolled x8: 0.006815 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006390 seconds
- Output for 8.2.9
- Sum: 500000500000, Normal for loop: 0.006960 seconds
Sum: 500000500000, Manual Unrolled x4: 0.007652 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005867 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007142 seconds
- Output for 8.2.8
- Sum: 500000500000, Normal for loop: 0.006333 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005153 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005474 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007015 seconds
- Output for 8.2.7
- Sum: 500000500000, Normal for loop: 0.007366 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005286 seconds
Sum: 500000500000, Manual Unrolled x8: 0.005395 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007095 seconds
- Output for 8.2.6
- Sum: 500000500000, Normal for loop: 0.006315 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005555 seconds
Sum: 500000500000, Manual Unrolled x8: 0.006103 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.007007 seconds
- Output for 8.2.5
- Sum: 500000500000, Normal for loop: 0.005996 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005097 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004742 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006146 seconds
- Output for 8.2.4
- Sum: 500000500000, Normal for loop: 0.011272 seconds
Sum: 500000500000, Manual Unrolled x4: 0.009354 seconds
Sum: 500000500000, Manual Unrolled x8: 0.008418 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.011362 seconds
- Output for 8.2.3
- Sum: 500000500000, Normal for loop: 0.010587 seconds
Sum: 500000500000, Manual Unrolled x4: 0.009321 seconds
Sum: 500000500000, Manual Unrolled x8: 0.009276 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.013541 seconds
- Output for 8.2.2
- Sum: 500000500000, Normal for loop: 0.005976 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005098 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004925 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006163 seconds
- Output for 8.2.1
- Sum: 500000500000, Normal for loop: 0.005910 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005095 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004745 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006114 seconds
- Output for 8.2.0
- Sum: 500000500000, Normal for loop: 0.006278 seconds
Sum: 500000500000, Manual Unrolled x4: 0.005234 seconds
Sum: 500000500000, Manual Unrolled x8: 0.004755 seconds
Sum: 500000500000, Attributed Unrolled #[Unroll(4)]: 0.006415 seconds
preferences:
49.64 ms | 520 KiB | 5 Q