Created
February 10, 2016 22:49
-
-
Save wrpinheiro/6dc60a3cf0e545b32481 to your computer and use it in GitHub Desktop.
Observando JIT em ação com primitivos
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class TwoLoopsWithObjects { | |
public static void main(String[] args) { | |
StringBuilder sb = new StringBuilder(); | |
Integer i = new Integer(0); | |
Integer max = new Integer(100000); | |
while (i.intValue() < 100000) { | |
Integer j = i; | |
long start = System.nanoTime(); | |
while (j.intValue() < 100000) { | |
j = new Integer(j.intValue() + 1); | |
} | |
long estimated = System.nanoTime() - start; | |
sb.append("It #" + i + " duration " + (estimated / 1000.0d) + "μ\n"); | |
i = new Integer(i.intValue() + 1); | |
} | |
System.out.println(sb); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# java TwoLoopsWithObjects | head -500 | |
It #0 duration 6600.113μ | |
It #1 duration 1910.801μ | |
It #2 duration 2099.174μ | |
It #3 duration 1913.568μ | |
It #4 duration 961.353μ | |
It #5 duration 927.057μ | |
It #6 duration 848.371μ | |
It #7 duration 876.483μ | |
It #8 duration 907.67μ | |
It #9 duration 868.635μ | |
It #10 duration 864.433μ | |
It #11 duration 882.534μ | |
It #12 duration 868.155μ | |
It #13 duration 895.743μ | |
It #14 duration 934.011μ | |
It #15 duration 1077.41μ | |
It #16 duration 1043.858μ | |
It #17 duration 976.768μ | |
It #18 duration 871.334μ | |
It #19 duration 862.534μ | |
It #20 duration 1608.364μ | |
It #21 duration 450.312μ | |
It #22 duration 256.206μ | |
It #23 duration 258.675μ | |
It #24 duration 257.043μ | |
It #25 duration 256.346μ | |
It #26 duration 257.324μ | |
It #27 duration 258.783μ | |
It #28 duration 262.372μ | |
It #29 duration 412.343μ | |
It #30 duration 283.267μ | |
It #31 duration 280.472μ | |
It #32 duration 281.052μ | |
It #33 duration 281.563μ | |
It #34 duration 259.117μ | |
It #35 duration 258.56μ | |
It #36 duration 261.271μ | |
It #37 duration 258.312μ | |
It #38 duration 354.749μ | |
It #39 duration 264.131μ | |
It #40 duration 256.185μ | |
It #41 duration 1207.147μ | |
It #42 duration 286.986μ | |
It #43 duration 280.335μ | |
It #44 duration 281.14μ | |
It #45 duration 285.192μ | |
It #46 duration 288.398μ | |
It #47 duration 290.022μ | |
It #48 duration 279.94μ | |
It #49 duration 280.742μ | |
It #50 duration 282.606μ | |
It #51 duration 283.331μ | |
It #52 duration 283.436μ | |
It #53 duration 283.8μ | |
It #54 duration 282.8μ | |
It #55 duration 284.002μ | |
It #56 duration 284.215μ | |
It #57 duration 284.156μ | |
It #58 duration 284.199μ | |
It #59 duration 295.992μ | |
It #60 duration 259.512μ | |
It #61 duration 259.356μ | |
It #62 duration 933.091μ | |
It #63 duration 255.86μ | |
It #64 duration 253.214μ | |
It #65 duration 273.126μ | |
It #66 duration 264.65μ | |
It #67 duration 255.411μ | |
It #68 duration 258.927μ | |
It #69 duration 259.733μ | |
It #70 duration 258.821μ | |
It #71 duration 260.359μ | |
It #72 duration 260.847μ | |
It #73 duration 275.937μ | |
It #74 duration 268.265μ | |
It #75 duration 258.343μ | |
It #76 duration 259.603μ | |
It #77 duration 259.198μ | |
It #78 duration 260.492μ | |
It #79 duration 258.459μ | |
It #80 duration 300.699μ | |
It #81 duration 286.721μ | |
It #82 duration 260.352μ | |
It #83 duration 1092.782μ | |
It #84 duration 254.04μ | |
It #85 duration 254.785μ | |
It #86 duration 257.792μ | |
It #87 duration 257.368μ | |
It #88 duration 257.125μ | |
It #89 duration 258.75μ | |
It #90 duration 258.769μ | |
It #91 duration 258.602μ | |
It #92 duration 257.511μ | |
It #93 duration 257.238μ | |
It #94 duration 257.254μ | |
It #95 duration 255.967μ | |
It #96 duration 257.447μ | |
It #97 duration 257.904μ | |
It #98 duration 260.906μ | |
It #99 duration 259.132μ | |
It #100 duration 269.426μ | |
It #101 duration 256.012μ | |
It #102 duration 489.191μ | |
It #103 duration 293.187μ | |
It #104 duration 305.228μ | |
It #105 duration 822.587μ | |
It #106 duration 963.581μ | |
It #107 duration 977.939μ | |
It #108 duration 739.239μ | |
It #109 duration 936.869μ | |
It #110 duration 982.655μ | |
It #111 duration 921.699μ | |
It #112 duration 925.48μ | |
It #113 duration 908.607μ | |
It #114 duration 933.387μ | |
It #115 duration 1329.776μ | |
It #116 duration 1275.257μ | |
It #117 duration 932.658μ | |
It #118 duration 919.079μ | |
It #119 duration 935.603μ | |
It #120 duration 922.868μ | |
It #121 duration 940.122μ | |
It #122 duration 907.721μ | |
It #123 duration 922.605μ | |
It #124 duration 897.023μ | |
It #125 duration 941.802μ | |
It #126 duration 1476.401μ | |
It #127 duration 324.984μ | |
It #128 duration 266.003μ | |
It #129 duration 255.706μ | |
It #130 duration 255.609μ | |
It #131 duration 315.531μ | |
It #132 duration 267.516μ | |
It #133 duration 269.161μ | |
It #134 duration 271.482μ | |
It #135 duration 271.428μ | |
It #136 duration 279.716μ | |
It #137 duration 262.608μ | |
It #138 duration 275.116μ | |
It #139 duration 255.217μ | |
It #140 duration 255.352μ | |
It #141 duration 258.143μ | |
It #142 duration 255.962μ | |
It #143 duration 257.052μ | |
It #144 duration 257.526μ | |
It #145 duration 257.373μ | |
It #146 duration 257.18μ | |
It #147 duration 257.318μ | |
It #148 duration 257.677μ | |
It #149 duration 258.384μ | |
It #150 duration 257.124μ | |
It #151 duration 258.154μ | |
It #152 duration 256.538μ | |
It #153 duration 258.542μ | |
It #154 duration 258.006μ | |
It #155 duration 257.397μ | |
It #156 duration 258.827μ | |
It #157 duration 256.87μ | |
It #158 duration 267.515μ | |
It #159 duration 255.299μ | |
It #160 duration 255.822μ | |
It #161 duration 257.047μ | |
It #162 duration 257.332μ | |
It #163 duration 258.592μ | |
It #164 duration 257.731μ | |
It #165 duration 296.302μ | |
It #166 duration 259.739μ | |
It #167 duration 254.052μ | |
It #168 duration 1132.198μ | |
It #169 duration 264.22μ | |
It #170 duration 269.165μ | |
It #171 duration 272.121μ | |
It #172 duration 270.482μ | |
It #173 duration 268.592μ | |
It #174 duration 272.529μ | |
It #175 duration 273.174μ | |
It #176 duration 269.245μ | |
It #177 duration 271.812μ | |
It #178 duration 271.545μ | |
It #179 duration 270.922μ | |
It #180 duration 270.49μ | |
It #181 duration 271.998μ | |
It #182 duration 273.467μ | |
It #183 duration 270.371μ | |
It #184 duration 275.021μ | |
It #185 duration 272.412μ | |
It #186 duration 270.513μ | |
It #187 duration 272.272μ | |
It #188 duration 272.22μ | |
It #189 duration 300.637μ | |
It #190 duration 289.001μ | |
It #191 duration 261.344μ | |
It #192 duration 255.237μ | |
It #193 duration 254.885μ | |
It #194 duration 257.092μ | |
It #195 duration 255.183μ | |
It #196 duration 256.257μ | |
It #197 duration 261.303μ | |
It #198 duration 254.927μ | |
It #199 duration 257.731μ | |
It #200 duration 255.946μ | |
It #201 duration 258.708μ | |
It #202 duration 255.885μ | |
It #203 duration 256.096μ | |
It #204 duration 485.972μ | |
It #205 duration 296.24μ | |
It #206 duration 304.058μ | |
It #207 duration 289.723μ | |
It #208 duration 276.933μ | |
It #209 duration 261.225μ | |
It #210 duration 263.853μ | |
It #211 duration 298.62μ | |
It #212 duration 1120.2μ | |
It #213 duration 981.758μ | |
It #214 duration 905.243μ | |
It #215 duration 847.003μ | |
It #216 duration 977.103μ | |
It #217 duration 981.666μ | |
It #218 duration 956.287μ | |
It #219 duration 922.624μ | |
It #220 duration 906.813μ | |
It #221 duration 973.772μ | |
It #222 duration 898.754μ | |
It #223 duration 921.494μ | |
It #224 duration 904.546μ | |
It #225 duration 893.529μ | |
It #226 duration 884.639μ | |
It #227 duration 879.27μ | |
It #228 duration 909.706μ | |
It #229 duration 1008.87μ | |
It #230 duration 998.431μ | |
It #231 duration 955.672μ | |
It #232 duration 880.082μ | |
It #233 duration 982.826μ | |
It #234 duration 931.27μ | |
It #235 duration 862.06μ | |
It #236 duration 834.456μ | |
It #237 duration 862.538μ | |
It #238 duration 835.111μ | |
It #239 duration 1031.864μ | |
It #240 duration 1007.196μ | |
It #241 duration 1058.207μ | |
It #242 duration 1021.425μ | |
It #243 duration 1012.442μ | |
It #244 duration 883.669μ | |
It #245 duration 910.463μ | |
It #246 duration 913.489μ | |
It #247 duration 979.11μ | |
It #248 duration 937.6μ | |
It #249 duration 985.484μ | |
It #250 duration 980.208μ | |
It #251 duration 1053.218μ | |
It #252 duration 1029.249μ | |
It #253 duration 950.428μ | |
It #254 duration 1450.729μ | |
It #255 duration 252.596μ | |
It #256 duration 263.873μ | |
It #257 duration 260.674μ | |
It #258 duration 254.461μ | |
It #259 duration 450.635μ | |
It #260 duration 278.444μ | |
It #261 duration 281.714μ | |
It #262 duration 287.707μ | |
It #263 duration 267.118μ | |
It #264 duration 269.686μ | |
It #265 duration 261.842μ | |
It #266 duration 255.993μ | |
It #267 duration 255.832μ | |
It #268 duration 255.728μ | |
It #269 duration 256.723μ | |
It #270 duration 255.631μ | |
It #271 duration 256.765μ | |
It #272 duration 255.626μ | |
It #273 duration 255.95μ | |
It #274 duration 256.11μ | |
It #275 duration 256.799μ | |
It #276 duration 257.054μ | |
It #277 duration 255.307μ | |
It #278 duration 257.679μ | |
It #279 duration 256.849μ | |
It #280 duration 255.685μ | |
It #281 duration 258.549μ | |
It #282 duration 258.051μ | |
It #283 duration 257.676μ | |
It #284 duration 254.56μ | |
It #285 duration 257.19μ | |
It #286 duration 255.567μ | |
It #287 duration 262.761μ | |
It #288 duration 255.947μ | |
It #289 duration 254.407μ | |
It #290 duration 254.911μ | |
It #291 duration 258.035μ | |
It #292 duration 262.239μ | |
It #293 duration 257.646μ | |
It #294 duration 258.299μ | |
It #295 duration 257.41μ | |
It #296 duration 257.049μ | |
It #297 duration 256.186μ | |
It #298 duration 259.173μ | |
It #299 duration 256.601μ | |
It #300 duration 256.765μ | |
It #301 duration 256.981μ | |
It #302 duration 261.394μ | |
It #303 duration 257.282μ | |
It #304 duration 254.143μ | |
It #305 duration 257.14μ | |
It #306 duration 255.404μ | |
It #307 duration 257.284μ | |
It #308 duration 254.749μ | |
It #309 duration 255.244μ | |
It #310 duration 257.991μ | |
It #311 duration 256.651μ | |
It #312 duration 257.297μ | |
It #313 duration 256.222μ | |
It #314 duration 256.286μ | |
It #315 duration 256.556μ | |
It #316 duration 255.894μ | |
It #317 duration 256.85μ | |
It #318 duration 255.917μ | |
It #319 duration 257.581μ | |
It #320 duration 256.567μ | |
It #321 duration 255.83μ | |
It #322 duration 258.581μ | |
It #323 duration 256.448μ | |
It #324 duration 259.074μ | |
It #325 duration 256.007μ | |
It #326 duration 254.436μ | |
It #327 duration 256.702μ | |
It #328 duration 254.472μ | |
It #329 duration 255.961μ | |
It #330 duration 255.592μ | |
It #331 duration 255.232μ | |
It #332 duration 256.635μ | |
It #333 duration 254.998μ | |
It #334 duration 258.048μ | |
It #335 duration 272.316μ | |
It #336 duration 267.751μ | |
It #337 duration 303.473μ | |
It #338 duration 258.604μ | |
It #339 duration 699.046μ | |
It #340 duration 252.488μ | |
It #341 duration 252.804μ | |
It #342 duration 254.827μ | |
It #343 duration 268.41μ | |
It #344 duration 395.14μ | |
It #345 duration 281.089μ | |
It #346 duration 282.227μ | |
It #347 duration 278.919μ | |
It #348 duration 281.741μ | |
It #349 duration 255.408μ | |
It #350 duration 255.685μ | |
It #351 duration 255.379μ | |
It #352 duration 254.828μ | |
It #353 duration 257.842μ | |
It #354 duration 259.16μ | |
It #355 duration 255.505μ | |
It #356 duration 257.839μ | |
It #357 duration 255.601μ | |
It #358 duration 255.969μ | |
It #359 duration 255.964μ | |
It #360 duration 257.904μ | |
It #361 duration 255.084μ | |
It #362 duration 256.536μ | |
It #363 duration 258.722μ | |
It #364 duration 280.087μ | |
It #365 duration 262.296μ | |
It #366 duration 263.324μ | |
It #367 duration 259.619μ | |
It #368 duration 255.999μ | |
It #369 duration 255.933μ | |
It #370 duration 258.099μ | |
It #371 duration 255.978μ | |
It #372 duration 256.452μ | |
It #373 duration 257.272μ | |
It #374 duration 257.707μ | |
It #375 duration 271.615μ | |
It #376 duration 261.107μ | |
It #377 duration 255.389μ | |
It #378 duration 254.654μ | |
It #379 duration 255.191μ | |
It #380 duration 258.136μ | |
It #381 duration 256.335μ | |
It #382 duration 256.188μ | |
It #383 duration 256.018μ | |
It #384 duration 277.706μ | |
It #385 duration 260.5μ | |
It #386 duration 258.608μ | |
It #387 duration 261.509μ | |
It #388 duration 255.738μ | |
It #389 duration 256.377μ | |
It #390 duration 255.088μ | |
It #391 duration 253.112μ | |
It #392 duration 252.055μ | |
It #393 duration 253.154μ | |
It #394 duration 259.764μ | |
It #395 duration 255.724μ | |
It #396 duration 256.592μ | |
It #397 duration 257.927μ | |
It #398 duration 255.09μ | |
It #399 duration 255.686μ | |
It #400 duration 254.324μ | |
It #401 duration 258.839μ | |
It #402 duration 255.323μ | |
It #403 duration 256.788μ | |
It #404 duration 259.071μ | |
It #405 duration 257.839μ | |
It #406 duration 255.114μ | |
It #407 duration 255.264μ | |
It #408 duration 257.343μ | |
It #409 duration 255.192μ | |
It #410 duration 256.25μ | |
It #411 duration 299.409μ | |
It #412 duration 301.382μ | |
It #413 duration 282.827μ | |
It #414 duration 260.114μ | |
It #415 duration 254.239μ | |
It #416 duration 271.547μ | |
It #417 duration 253.749μ | |
It #418 duration 255.616μ | |
It #419 duration 255.014μ | |
It #420 duration 255.665μ | |
It #421 duration 259.557μ | |
It #422 duration 256.851μ | |
It #423 duration 255.681μ | |
It #424 duration 256.365μ | |
It #425 duration 794.709μ | |
It #426 duration 937.842μ | |
It #427 duration 984.247μ | |
It #428 duration 974.899μ | |
It #429 duration 976.395μ | |
It #430 duration 1006.967μ | |
It #431 duration 938.33μ | |
It #432 duration 922.388μ | |
It #433 duration 989.22μ | |
It #434 duration 857.049μ | |
It #435 duration 857.374μ | |
It #436 duration 848.155μ | |
It #437 duration 903.158μ | |
It #438 duration 904.724μ | |
It #439 duration 898.875μ | |
It #440 duration 896.945μ | |
It #441 duration 875.618μ | |
It #442 duration 900.695μ | |
It #443 duration 868.164μ | |
It #444 duration 881.796μ | |
It #445 duration 896.429μ | |
It #446 duration 861.391μ | |
It #447 duration 907.722μ | |
It #448 duration 859.391μ | |
It #449 duration 916.917μ | |
It #450 duration 911.078μ | |
It #451 duration 872.428μ | |
It #452 duration 1106.463μ | |
It #453 duration 927.167μ | |
It #454 duration 864.522μ | |
It #455 duration 874.534μ | |
It #456 duration 896.836μ | |
It #457 duration 900.662μ | |
It #458 duration 874.593μ | |
It #459 duration 871.206μ | |
It #460 duration 896.919μ | |
It #461 duration 890.199μ | |
It #462 duration 859.063μ | |
It #463 duration 1470.027μ | |
It #464 duration 1105.617μ | |
It #465 duration 971.37μ | |
It #466 duration 1293.719μ | |
It #467 duration 1039.979μ | |
It #468 duration 1025.766μ | |
It #469 duration 1037.968μ | |
It #470 duration 1005.865μ | |
It #471 duration 1024.653μ | |
It #472 duration 1002.394μ | |
It #473 duration 1015.673μ | |
It #474 duration 949.008μ | |
It #475 duration 1066.252μ | |
It #476 duration 909.042μ | |
It #477 duration 877.873μ | |
It #478 duration 837.326μ | |
It #479 duration 849.412μ | |
It #480 duration 843.558μ | |
It #481 duration 851.171μ | |
It #482 duration 835.963μ | |
It #483 duration 902.92μ | |
It #484 duration 923.248μ | |
It #485 duration 880.584μ | |
It #486 duration 912.291μ | |
It #487 duration 874.134μ | |
It #488 duration 903.535μ | |
It #489 duration 889.746μ | |
It #490 duration 909.713μ | |
It #491 duration 867.522μ | |
It #492 duration 919.934μ | |
It #493 duration 887.82μ | |
It #494 duration 903.514μ | |
It #495 duration 870.654μ | |
It #496 duration 869.544μ | |
It #497 duration 894.303μ | |
It #498 duration 878.11μ | |
It #499 duration 898.069μ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
public class TwoLoopsWithPrimitives { | |
public static void main(String[] args) { | |
StringBuilder sb = new StringBuilder(); | |
int i = 0, j; | |
long start, estimated; | |
while (i < 100000) { | |
j = i; | |
start = System.nanoTime(); | |
while (j < 100000) { | |
j++; | |
} | |
estimated = System.nanoTime() - start; | |
sb.append("It #" + i + " duration " + (estimated / 1000.0d) + "μ\n"); | |
i++; | |
} | |
System.out.println(sb); | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# java TwoLoopsWithPrimitives | head -50 | |
It #0 duration 1147.059μ | |
It #1 duration 256.438μ | |
It #2 duration 228.121μ | |
It #3 duration 242.152μ | |
It #4 duration 278.272μ | |
It #5 duration 213.799μ | |
It #6 duration 213.827μ | |
It #7 duration 213.472μ | |
It #8 duration 231.829μ | |
It #9 duration 270.146μ | |
It #10 duration 231.122μ | |
It #11 duration 213.666μ | |
It #12 duration 213.735μ | |
It #13 duration 213.731μ | |
It #14 duration 213.933μ | |
It #15 duration 213.911μ | |
It #16 duration 213.558μ | |
It #17 duration 214.07μ | |
It #18 duration 213.776μ | |
It #19 duration 299.457μ | |
It #20 duration 266.236μ | |
It #21 duration 56.386μ | |
It #22 duration 0.046μ | |
It #23 duration 0.038μ | |
It #24 duration 0.046μ | |
It #25 duration 0.04μ | |
It #26 duration 0.04μ | |
It #27 duration 0.04μ | |
It #28 duration 0.039μ | |
It #29 duration 0.039μ | |
It #30 duration 0.039μ | |
It #31 duration 0.039μ | |
It #32 duration 0.039μ | |
It #33 duration 0.039μ | |
It #34 duration 0.039μ | |
It #35 duration 0.04μ | |
It #36 duration 0.041μ | |
It #37 duration 0.04μ | |
It #38 duration 0.04μ | |
It #39 duration 0.039μ | |
It #40 duration 0.039μ | |
It #41 duration 0.039μ | |
It #42 duration 0.04μ | |
It #43 duration 0.04μ | |
It #44 duration 0.04μ | |
It #45 duration 0.04μ | |
It #46 duration 0.039μ | |
It #47 duration 0.039μ | |
It #48 duration 0.04μ | |
It #49 duration 0.039μ |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Na classe
TwoLoopsWithPrimitives
as iterações são feitas usando primitivos e naTwoLoopsWithObjects
são feitas as iterações com conversões para objetos conforme o exemplo do @akitaonrails . Incluí uma medição do tempo de execução do laço mais interno nas duas versões. Vejam os arquivos com os resultado.Notem a redução de tempo na execução do
TwoLoopsWithPrimitives
a partir da 20a. iteração, momento que deve ocorrer uma otimização. No caso doTwoLoopsWithObjects
essa otimização já não é possível e o tempo segue o padrão esperado pelo menos até a iteração 500.