前沿拓展:
kb3156421
win10,干脆扔了吧 我已經受不了了 我換win8了 win10我是夠夠的了
問題回顧
描述的話不多說,直接上圖:
看到輸出結果了嗎?為什么第一次和第二次的時間相差如此之多?咱們一起琢磨琢磨,,因此需要更多的編譯,加載的時間
回過頭去看看類加載的日志,赫然發(fā)現(xiàn)了A**框架的引入:
[Loaded jdk.internal.org.objectweb.a**.ClassVisitor from F:Java_JDKJDK1.8jrelibrt.jar]
[Loaded jdk.internal.org.objectweb.a**.ClassWriter from F:Java_JDKJDK1.8jrelibrt.jar]
[Loaded jdk.internal.org.objectweb.a**.ByteVector from F:Java_JDKJDK1.8jrelibrt.jar]
[Loaded jdk.internal.org.objectweb.a**.Item from F:Java_JDKJDK1.8jrelibrt.jar]
[Loaded jdk.internal.org.objectweb.a**.Metho**isitor from F:Java_JDKJDK1.8jrelibrt.jar]
[Loaded jdk.internal.org.objectweb.a**.MethodWriter from F:Java_JDKJDK1.8jrelibrt.jar]
[Loaded jdk.internal.org.objectweb.a**.Type from F:Java_JDKJDK1.8jrelibrt.jar]
[Loaded jdk.internal.org.objectweb.a**.Label from F:Java_JDKJDK1.8jrelibrt.jar]
[Loaded jdk.internal.org.objectweb.a**.Frame from F:Java_JDKJDK1.8jrelibrt.jar]
[Loaded jdk.internal.org.objectweb.a**.AnnotationVisitor from F:Java_JDKJDK1.8jrelibrt.jar]
[Loaded jdk.internal.org.objectweb.a**.AnnotationWriter from F:Java_JDKJDK1.8jrelibrt.jar]結論導致 foreach 測試時數(shù)據(jù)不正常的罪魁禍首是:Lambda表達式Lambda表達式 在應用程序中首次使用時,需要額外加載A**框架,因此需要更多的編譯,加載的時間Lambda表達式的底層實現(xiàn)并非匿名內部類的語法糖,而是其優(yōu)化版foreach 的底層實現(xiàn)其實和增強 for循環(huán)沒有本質區(qū)別,一個是外部迭代器,一個是內部迭代器而已通過 foreach + Lambda 的寫法,效率并不低,只不過需要提前進行預熱(加載框架)
作者:Kerwin_鏈接:https://juejin.im/post/5efa93e2e51d4534634c6421
拓展知識:
kb3156421
Win10正式版系統(tǒng)版本號將升級為10586.318,更新編號為KB3156421。本次更新以修復問題和提升系統(tǒng)性能為主。 微軟官目前已經發(fā)現(xiàn)并做出提醒:“如果你安裝本次更新后,發(fā)現(xiàn)自己的PC出現(xiàn)反應慢的情況,那么你可能遇到了我們正在**處理的問題,在未來數(shù)周內我們將完成修復。關閉Cortana將緩解這個問題,我們十分期待大家能夠將自己的問題和測試結果反映在帖子下方,為我們提供信息來更快更好地解決這一問題。” 目前官方尚未補丁下載,我們可關閉Cortana來緩解這一問題。
原創(chuàng)文章,作者:九賢生活小編,如若轉載,請注明出處:http:///67885.html