Java無意識自動裝箱嚴重消耗效能
版權宣告:歡迎轉載,請註明沉默王二原創。 https://blog.csdn.net/qing_gee/article/details/46842341
Java 無意識自動裝箱嚴重消耗效能。
根據《effective java》書中所寫,我測試了以下的簡單例子。
package com.mwq.number;
public class Test {
public static void main(String[] args) {
long time1 = System.currentTimeMillis();
long sum = 0L;
for (int i = 0; i < Integer.MAX_VALUE / 2; i++) {
sum += i;
}
System.out.println(sum);
long time2 = System.currentTimeMillis();
System.out.println(time2 - time1);
Long sum1 = 0L;
for (int i = 0; i < Integer.MAX_VALUE / 2; i++) {
sum1 += i;
}
System.out.println(sum);
long time3 = System.currentTimeMillis();
System.out.println(time3 - time2);
}
}
例子很簡單,看看Long和long在+i的時候到底有多大的區別,花費的時間是如何的。
看結果,由於我電腦計算0到Integer.MAX_VALUE 的運算速度太慢,所以就只取了一半的量。
576460750692810753
1903
576460750692810753
10939
差了一個數量級!!!!!!!!!
sum在被宣告為Long而不是long的時候,就會創造N(具體多少個N,我還真不知道,書中說的是2的31次方,顯然我的不是)多個Long例項!
總結:自動裝箱發生的太頻繁的話,嚴重消耗效能。
相關文章
- Java 自動裝箱效能Java
- Java 效能筆記:自動裝箱/拆箱Java筆記
- Java自動拆箱與裝箱Java
- Java中的自動裝箱與自動拆箱Java
- Java的自動裝箱和拆箱Java
- Java自動裝箱/拆箱 - Java那些事兒Java
- Java 效能要點:自動裝箱/ 拆箱 (Autoboxing / Unboxing)Java
- Java中的自動裝箱與拆箱Java
- 如何理解Java中的自動拆箱和自動裝箱?Java
- Java語法糖2:自動裝箱和自動拆箱Java
- Java基本型別自動裝箱的效能成本 -Coffee TalkJava型別
- Java學習之自動裝箱和自動拆箱原始碼分析Java原始碼
- 通過原始碼瞭解Java的自動裝箱拆箱原始碼Java
- 【java】JDK5的新特性→→自動裝箱和拆箱JavaJDK
- java中的內部類和自動拆裝箱Java
- java裝箱拆箱Java
- 夯實Java基礎系列2:Java自動拆裝箱裡隱藏的秘密Java
- 一文讀懂什麼是Java中的自動拆裝箱Java
- [譯]Kotlin中內聯類的自動裝箱和高效能探索(二)Kotlin
- [JAVA] Java物件導向之包裝類,拆箱、裝箱Java物件
- 蘋果iOS 8再曝嚴重漏洞 可導致ios裝置無限重啟蘋果iOS
- 阿里雲回應未及時上報 Log4j2 重大漏洞:早期未意識到嚴重性,將提升合規意識阿里
- Laravel 5.2 的一處嚴重效能問題Laravel
- 無意識的遞迴遞迴
- Integer 自動拆箱封箱
- iOS 8.3正式版曝嚴重漏洞:App Store無法使用指紋識別iOSAPP
- 深入理解Java之裝箱與拆箱Java
- 深入剖析Java中的裝箱和拆箱Java
- 諾丁漢大學:研究發現打哈欠會”傳染”是大腦無意識自動模仿
- win10自帶郵箱無法登入QQ郵箱Win10
- 豎裝顯示卡損失效能嗎?豎裝顯示卡的機箱優缺點知識科普
- 無人值守自動化效能測試平臺
- 裝箱演算法的效能測試演算法
- 夯實Java基礎系列2:Java基本資料型別,以及自動拆裝箱裡隱藏的秘密Java資料型別
- oracle 檢索最近10分鐘裡消耗IO最嚴重的前5條SQL語句OracleSQL
- 夯實Java基礎系列2:Java基本資料型別,以及自動拆裝箱裡隱藏的祕密Java資料型別
- 數百萬惡意簡訊肆虐,芬蘭釋出嚴重警報
- java空指標出現的情況:拆箱裝箱Java指標