顽皮狗 多线程分享_谁去过顽皮,谁去过尼斯? 圣诞老人为您提供Java 11建议!...
顽皮狗 多线程分享
有没有想过圣诞老人如何为世界各地的孩子们提供节日礼物? 有20亿个孩子,每个孩子都有自己的愿望清单,他会在24小时内完成。 这意味着平均每个孩子43微秒,他需要检查每个孩子是否顽皮或好。
您无需再怀疑了。 我会透露这个秘密。 他正在使用Java 11和具有超快执行速度的现代流ORM。
尽管Santa的后备数据库既旧又慢,但他仍可以使用标准Java流和JVM内存技术来分析数据(以微秒为单位)。 圣诞老人的数据库包含两个表。 Child
持有每一个孩子的世界, HolidayGift
指定可用于生产圣诞老人的车间的所有项目。 一个孩子只能有一个愿望,例如哈希规则。
以流查看数据库
Speedment是一种基于流的现代ORM,它能够将关系数据库表视为标准Java流。 众所周知,只有好孩子才能得到礼物,因此区分顽皮的人和乖的人是很重要的。 使用以下代码可以轻松完成此操作:
var niceChildren = children.stream().filter(Child.NICE.isTrue()).sorted(Child.COUNTRY.comparator()) .collect(Collectors.toList());
该流将产生一长串列表,其中仅包含一直很好的孩子。 为了使圣诞老人能够优化其送货路线,该列表按居住国家/地区排序。
参加儿童和假期礼物
该列表似乎不完整。 圣诞老人如何跟踪向谁发送的礼物? 现在
HolidayGift
表HolidayGift
上用场。 由于有些孩子向圣诞老人提供了他们的愿望清单,因此我们现在可以将两个表结合在一起,以构成一个包含所有好孩子及其相应礼物的完整列表。 包括没有任何希望的孩子很重要(他们会得到随机礼物),因此我们加入了左联盟。
var join = joinComponent.from(ChildManager.IDENTIFIER).where(Child.NICE.isTrue()).leftJoinOn(HolidayGift.GIFT_ID).equal(Child.GIFT_ID).build(Tuples::of);
Speedment正在使用构建器模式创建Join<T>
对象,然后可以反复使用该对象以创建具有类型元素的流
T
。 在这种情况下,它用于HolidayGift
Child
和HolidayGift
。 gift_id
只包括gift_id
并匹配在gift_id
字段中包含相同值的gift_id
。
这是圣诞老人交付所有包裹的方式:
join.stream().parallel() .forEach(SleighUtil::deliver);
可以看出,圣诞老人可以轻松运送所有由驯鹿携带的带有平行雪橇的包裹。
这会将流呈现为有效SQL查询,但不幸的是,它还不足以及时完成。
使用JVM中的内存加速
现在到有趣的部分。 Santa正在激活Speedment中的Java虚拟机内存加速组件,称为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);
此启动配置是对应用程序唯一需要的调整。 以上所有流构造均保持不变。 启动应用程序时,数据库的快照被拉入JVM,并以堆外方式存储。 由于数据是堆外存储的,因此不会影响垃圾回收,并且数据量仅受可用RAM的限制。 由于圣诞老人正在使用云服务,因此无法阻止它加载TB的数据,并且可以轻松扩展其RAM。 现在,该应用程序将更快地运行一个数量级,Santa能够及时交付所有软件包。
通过In-JVM-Memory加速运行自己的项目
如果您想尝试一下数据库应用程序的运行速度,可以在此处找到一个Initializer。 只需在所需的数据库类型(Oracle,MySQL,MariaDB,PostgreSQL,Microsoft SQL Server,DB2或AS400)中打勾,您就会获得一个POM和一个为您自动生成的应用程序模板。
如果您需要更多帮助来设置项目,请查看Speedment
GitHub页面或浏览用户指南 。
s
感谢Julia Gustafsson和Carina Dreifeldt共同撰写本文。
翻译自: https://www.javacodegeeks.com/2018/12/naughty-nice-santa-gives-java-11-advice.html
顽皮狗 多线程分享
顽皮狗 多线程分享_谁去过顽皮,谁去过尼斯? 圣诞老人为您提供Java 11建议!...相关推荐
- 谁去过顽皮,谁去过尼斯? 圣诞老人为您提供Java 11建议!
有没有想过圣诞老人如何为世界各地的孩子们送上节日礼物? 有20亿个孩子,每个孩子都有自己的愿望清单,他会在24小时内完成. 这意味着每个孩子平均需要43微秒,他需要检查每个孩子是否顽皮或好. 您无需再 ...
- 一文看懂“业务定制智能客服”的产品设计_团员分享_@苍狼剑歌
前言:本文作者是"AI产品经理大本营"团员@苍狼剑歌,现任某一线大厂AI产品经理.另外,文末还有2个"hanniman读者专属福利",1)优惠券 for 三节课 ...
- python爬虫学到什么地步找工作_爬虫学到什么水平可以去找工作?这是我给你的一个建议!...
分享下我的经验与教训 ( . ) 爬虫学到什么水平可以去找工作?这是我给你的一个建议!-1.jpg (14.32 KB, 下载次数: 0) 2018-7-27 13:15 上传 最近很多朋友问我,我在 ...
- 一文看懂“声纹识别VPR” | AI产品经理需要了解的AI技术概念_团员分享_@cony
前言:声纹识别是AI领域中一个看似很小.但其实有机会在近期落地,且比较有意思的细分方向:本文作者是"AI产品经理大本营"团员@cony ,她总结了AI产品经理"最必要& ...
- 一文了解“医疗影像+AI”发展现状_团员分享_@lazy_yy
前言:本文作者是咱们AI产品经理大本营成员@lazy_yy,他用最干练的文字,帮大家快速了解"医疗影像+AI"方向的基本信息.欢迎更多AI产品经理们也来加入干货输出队伍:) . 医 ...
- 如何规划一款AI硬件产品(以人脸识别考勤门锁为例)_团员分享_@ocean
前言:本文作者团员@ocean,分享了很多来自实战的内容,特别是人脸识别考勤门禁一体机的需求分析,以及人脸识别算法指标(准确率.召回率.误识率.拒识率.ROC曲线和识别速度),大家能直接借鉴到自己的工 ...
- 人脸识别产品设计,AI产品经理需要了解的实战干货都在这里了_团员分享_@阳春柏樰...
前言:本文作者团员@阳春柏樰,有2年半CV相关产品经验.本文,再加上本公众号曾分享过的文章<人脸识别 | AI产品经理需要了解的CV通识(二)>,就足够产品经理们入门人脸识别了,推荐大家收 ...
- 批次管理的质量跟踪案例分享_食品加工行业
批次管理的质量跟踪案例分享_食品加工行业 最近接触了一个食品行业的项目,针对食品行业有几大特点和行业的特殊性: 1.保质期的控制与管理 2.物料进行化学实验 3.原料采购时扣率 4.物料进行批次跟踪 ...
- 酷狗服务器显示失败怎么回事,酷狗音乐如何分享音乐失败怎么办 ?酷狗音乐分享音乐失败如何解决?...
对于喜欢听歌的伙伴而言,音乐是无国界的,在酷狗音乐里面可以随时播放国内外歌曲,觉得好听的歌曲还可以分享给好友听,但是最近有用户反映自己分享音乐出现失败显示,不知道如何解决的伙伴,可以在木蚂蚁看看哦! ...
最新文章
- CSS属性之字体(Font)
- MySQL注射绕过技巧(三)
- --------------springMVC的开篇,以及底层执行流程,配置视图解析器,静态资源的访问,流程图,工作原理...
- Java后端WebSocket的Tomcat实现(转载)
- 代码质量的几点新思考
- Shell命令-磁盘与文件系统之e2fsck、mkswap
- html5编程技术代码,编程技术—CSS技术
- Session History 属性和方法
- Kubernetes集群如何重启
- 关于软考的一些事,你知道吗?
- 如何安装SQL server2005的查询分析器(绝对原创)
- tomcat日志配置详解
- 金融计量学第一次实验:eviews做多元线性回归分析
- npm安装ionic相关设置
- python-爬取贴吧的时候表情的处理。
- macOS 开发 - 使用 ScreenSaverView 制作屏幕保护程序
- 【机器视觉】机器人及视觉检测系统在螺丝检测包装生产线上的应用
- excel使用vb选中指定单元格,到指定行的最后一行有数据的等行数的单元格区间(列等高复制)
- 图书馆馆藏书籍管理功能
- 从100套真题中提炼而出的100个经典句子
热门文章
- 牛客题霸 二分查找 C++题解/答案
- CF662C Binary Table(FWT_XOR卷积)
- YbtOJ#20089-[NOIP2020模拟赛B组Day10]平衡的树【贪心】
- P4026-[SHOI2008]循环的债务【dp】
- P6834-[Cnoi2020]梦原【数学期望,树状数组】
- jzoj3844-统计损失【树形dp,换根法】
- P2514-[HAOI2010]工厂选址【贪心】
- 【jzoj】2018/2/2 NOIP普及组——D组模拟赛
- 医院(jzoj 1611)
- Python基础案例(一)