Tencent / OpenSourceTalent

143 stars 15 forks source link

2024腾讯犀牛鸟开源人才培养计划—Tencent KonaJDK #46

Open tencent-adm opened 1 year ago

tencent-adm commented 1 year ago

腾讯犀牛鸟开源人才培养计划

欢迎广大高校学子加入2024腾讯犀牛鸟开源人才培养计划!腾讯犀牛鸟开源人才培养计划面向全国高校学生发布实践及研学项目,由教育部计算机类专业教学指导委员会、教育部软件工程专业教学指导委员会、教育部电子信息类专业教学指导委员会作为联合指导单位,腾讯开源和腾讯高校合作联合主办,表现优异的高校学生将有机会获得腾讯颁发的荣誉证书、现金奖励以及腾讯特色礼包。

期待同学们在本次研学旅程中,和腾讯一起探索未知、学习技术,让开源伴你成长,收获满满一夏!

更多项目信息请看:腾讯开源活动官网腾讯开源研学基地

项目简介

Java长期霸榜编程语言第一,腾讯KonaJDK青出于OpenJDK,针对大数据,机器学习和云计算场景进行了独特的优化,在高性能及安全性方面多有建树。腾讯KonaJDK团队拥有多位OpenJDK Reviewer,Committer和Author,在国内JDK团队中首屈一指。而OpenJDK开源社区活跃且成熟,它的协作模式也是开源项目中的典范,无论对于初识的爱好者,还是长期的贡献者都十分友好。参与OpenJDK的开发,不仅可以领略世界级基础软件的设计理念与实现细节,还可以积累开源项目的贡献经验。

项目导师

张同宝,OpenJDK/Graalvm Contributor 江莎,OpenJDK Reviewer

导师寄语

张同宝:Java经历过这么多年的发展在不断的完善,OpenJDK社区最近也有很多特别令人激动的新特性。通过对于OpenJDK项目的深入研究,可以学习到包括CPU架构,操作系统,编译器,算法和数据结构等等各种各样的计算机领域的知识。 江莎:经过近三十年的发展,JDK积累的特性已经很多了,甚至可以说是繁杂。有些特性也因为不合时宜,不得不抛弃它们了。深入OpenJDK,了解其特性的演进过程,让我们认知新特性带来的危与机。

培养概览

1️⃣ 参与“腾讯开源基础课程” 完成考试可获得《腾讯开源研学结课证书》

2️⃣ 参与“腾讯开源issue实战” 完成任意issue即可获得专属《腾讯开源实战证书》+ 腾讯周边精美礼包一套。其中issue难度对应礼包大小

3️⃣ 参与“腾讯开源课题实战” 任务奖金从6K、8K到12K不等、腾讯犀牛鸟研学专属《优秀学生证书》、全球限量《腾讯开源贡献者证书》

如何贡献

参与“腾讯开源issue实战”

进入“研学基地”,参与“腾讯开源issue实战”,选择你感兴趣项目的 Issue 任务,认领和完成它。6月28日开放 issue ,学生可无门槛参与和认领

1、如果你愿意解决issue,请在腾讯开源研学基地「领取issue任务」 2、Fork 到个人的仓库下 3、在个人仓库解决完对应的任务后,提交 PR 至 Issue 所在仓库的 master 分支 4、PR提交后,项目导师将进行 code review, PR 被合并后即视为任务完成 5、如有任何疑问可以在评论区留言或者邮件至联络人

参与“腾讯开源课题实战”

时间安排:6月28日至7月28日为活动报名期,8月12日公布入围名单,8月12日至10月12日为课题实战期,通过筛选的学生即可参与此模块

初阶任务: 写一个测试用例,通过不同的GC参数(Serial GC,Parallel Scavenge,G1GC,ZGC,Shenandoah GC),通过打印GC日志完整的展示GC的各个阶段 由于很多JDK发行版(包括KonaJDK)不带Shenandoah GC发布,同学们需要自己从代码到构建一个包含Shenandoah GC的JDK版本(统一基于Tag:TencentKona-17.0.11) 目标:通过该任务让同学们熟悉JDK的编译和构建方法,包括如何打开和关闭某个GC的方法。以及通过一个测试用例,比较各个GC的特点。通过GC日志看到各个GC的不同阶段和GC暂停时间的差异

中阶任务: 专注于G1GC算法,写一个JDK的jtreg测试用例,使用一些现有的whitebox API(有需要的话可以自己扩展whitebox API)来实现一个典型的LRU cache,随机的增加LRU cache内容。运行一段时间之后统计old region的对象存活情况。

目标:通过该任务让同学们熟悉JDK测试特别是GC测试的书写和运行方式,并且通过该测试了解G1GC的运行原理和各个阶段的含义。通过其中老区的存活来了解G1GC中concurrent Mark和mixed GC的运行机理。

高阶任务: 利用任务二中的一些数据,分析目前情况下G1GC Adaptive IHOP的原理以及对于mixed GC的影响。根据相关数据,尝试优化一些mixed GC的参数的数值,使其能够根据Java进程的运行状态同样的进行动态调整。 背景: 目前G1GC触发老区的回收的阈值默认情况下是动态调整的,而老区的回收策略(包括old region存活对象阈值,老区数量的选择,以及mixed GC次数的选择)都是固定的静态值。 目标: 通过该任务让同学们实际并且进行G1GC的深度优化。解决一些社区目前的难题。

参考资料: Oracle技术文档: https://docs.oracle.com/en/java/javase/17/gctuning/garbage-collector-implementation.html Shenandoah GC:https://wiki.openjdk.org/display/shenandoah/Main G1GC的介绍文章以及其中的参考文献:https://tech.meituan.com/2016/09/23/g1.html Adaptive IHOP: https://bugs.openjdk.org/browse/JDK-8136677 Adaptive Mixed GC: https://bugs.openjdk.org/browse/JDK-8159697

联系导师

张同宝:tobytbzhang@tencent.com 江莎:johnsjiang@tencent.com