日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

谁去过顽皮,谁去过尼斯? 圣诞老人为您提供Java 11建议!

發(fā)布時間:2023/12/3 java 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 谁去过顽皮,谁去过尼斯? 圣诞老人为您提供Java 11建议! 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

有沒有想過圣誕老人如何為世界各地的孩子們送上節(jié)日禮物? 有20億個孩子,每個孩子都有自己的愿望清單,他會在24小時內(nèi)完成。 這意味著每個孩子平均需要43微秒,他需要檢查每個孩子是否頑皮或好。

您無需再懷疑了。 我會透露這個秘密。 他正在使用Java 11和具有超快執(zhí)行速度的現(xiàn)代流ORM。

盡管Santa的后備數(shù)據(jù)庫既舊又慢,但他仍可以使用標(biāo)準(zhǔn)Java流和JVM內(nèi)存技術(shù)來分析數(shù)據(jù)(微秒)。 圣誕老人的數(shù)據(jù)庫包含兩個表。 Child持有每一個孩子的世界, HolidayGift指定可用于生產(chǎn)圣誕老人的車間的所有項目。 一個孩子只能有一個愿望,例如哈希規(guī)則。

以流查看數(shù)據(jù)庫

Speedment是一種基于流的現(xiàn)代ORM,它能夠?qū)㈥P(guān)系數(shù)據(jù)庫表視為標(biāo)準(zhǔn)Java流。 眾所周知,只有好孩子才能得到禮物,因此區(qū)分頑皮的孩子和善良的孩子很重要。 使用以下代碼可以輕松完成此操作:

var niceChildren = children.stream().filter(Child.NICE.isTrue()).sorted(Child.COUNTRY.comparator()) .collect(Collectors.toList());

該流將產(chǎn)生一長串列表,其中僅包含一直很好的孩子。 為了使圣誕老人能夠優(yōu)化其送貨路線,該列表按居住國家/地區(qū)排序。

參加兒童和假期禮物

該列表似乎不完整。 圣誕老人如何跟蹤向誰送的禮物? 現(xiàn)在
HolidayGift表HolidayGift上用場。 由于有些孩子向圣誕老人提供了他們的愿望清單,因此我們現(xiàn)在可以將兩個表合并在一起,以構(gòu)成一個包含所有好孩子及其禮物的完整列表。 包括沒有任何希望的孩子是很重要的(他們會得到隨機的禮物),因此我們加入了左聯(lián)盟。

var join = joinComponent.from(ChildManager.IDENTIFIER).where(Child.NICE.isTrue()).leftJoinOn(HolidayGift.GIFT_ID).equal(Child.GIFT_ID).build(Tuples::of);

Speedment正在使用構(gòu)建器模式創(chuàng)建Join<T>對象,然后可以反復(fù)使用該對象以創(chuàng)建具有類型元素的流
T 。 在這種情況下,它用于HolidayGift Child和HolidayGift 。 該gift_id僅包括gift_id并且匹配在gift_id字段中包含相同值的gift_id 。

這是圣誕老人交付所有包裹的方式:

join.stream().parallel() .forEach(SleighUtil::deliver);

可以看出,圣誕老人可以輕松運送所有由馴鹿攜帶的帶有平行雪橇的包裹。

這將使流呈現(xiàn)為有效的SQL查詢,但不幸的是,它還不足以及時完成。

使用JVM中的內(nèi)存加速

現(xiàn)在到有趣的部分。 Santa正在激活Speedment中的JVM內(nèi)存中加速組件,稱為DataStore。 這可以通過以下方式完成:

var santasWorkshop = new ApplicationBuilder().withPassword("north-pole")// Activate DataStore.withBundle(DataStoreBundle.class).build();// Load a snapshot of the database into off-heap memorysantasWorkshop.get(DataStoreComponent.class).ifPresent(DataStoreComponent::load);

此啟動配置是對應(yīng)用程序唯一需要的調(diào)整。 以上所有流構(gòu)造均保持不變。 啟動應(yīng)用程序時,數(shù)據(jù)庫的快照被拉入JVM,并以堆外方式存儲。 由于數(shù)據(jù)是堆外存儲的,因此不會影響垃圾回收,并且數(shù)據(jù)量僅受可用RAM的限制。 由于圣誕老人正在使用云服務(wù),因此無法阻止它加載TB的數(shù)據(jù),并且可以輕松擴展其RAM。 現(xiàn)在,該應(yīng)用程序?qū)⒏斓剡\行一個數(shù)量級,Santa能夠及時交付所有軟件包。

使用In-JVM-Memory加速運行您自己的項目

如果您想親自嘗試數(shù)據(jù)庫應(yīng)用程序的速度,可以在此處找到一個Initializer。 只需輸入所需的數(shù)據(jù)庫類型(Oracle,MySQL,MariaDB,PostgreSQL,Microsoft SQL Server,DB2或AS400),您就會得到一個POM和一個為您自動生成的應(yīng)用程序模板。

如果您需要更多幫助來設(shè)置項目,請查看Speedment
GitHub頁面或瀏覽用戶指南 。

s

感謝Julia Gustafsson和Carina Dreifeldt共同撰寫本文。

翻譯自: https://www.javacodegeeks.com/2018/12/naughty-nice-santa-gives-java-11-advice.html

總結(jié)

以上是生活随笔為你收集整理的谁去过顽皮,谁去过尼斯? 圣诞老人为您提供Java 11建议!的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。