由于此商品库存有限,请在下单后15分钟之内支付完成,手慢无哦!
100%刮中券,最高50元无敌券,券有效期7天
活动自2017年6月2日上线,敬请关注云钻刮券活动规则更新。
如活动受政府机关指令需要停止举办的,或活动遭受严重网络攻击需暂停举办的,或者系统故障导致的其它意外问题,苏宁无需为此承担赔偿或者进行补偿。
醉染图书GraalVM与Java静态编译 原理与应用9787111696391
¥ ×1
序
前言
部 从解释执行到静态编译:Java的编译发展之路
章 Java静态编译技术的诞生2
1.1 Java程序的运行生命周期3
1.1.1 初始化4
1.1.2 程序预热5
1.2 冷启动问题8
1.3 初识Java静态编译技术11
1.3.1 什么是Java静态编译11
1.3.2 静态编译的优势12
1.3.3 静态编译的局限13
1.4 小结15
第2章 Java静态编译的业界实现16
2.1 Oracle GraalVM16
2.1.1 GraalVM是什么17
2.1.2 GraalVM静态编译优点19
2.1.3 GraalVM静态编译缺点20
2.1.4 GraalVM发展分析21
2.2 华为方舟编译器22
. 小结24
第3章 GraalVM整体结构25
3.1 子项目与组件25
3.2 GraalVM编译系统工具mx29
3.3 在E中打开GraalVM32
3.4 小结33
第4章 从Java程序到本地代码:静态编译应用流程34
4.1 获取GraalVM JDK35
4.1.1 下载发布版35
4.1.2 下载Docker镜像37
4.2 从源码编译37
4.2.1 编译准备37
4.2.2 编译38
4.3 获取依赖库40
4.4 预执行目标应用程序41
4.5 静态编译目标应用程序43
4.5.1 命令行模式编译43
4.5.2 配置文件模式45
4.5.3 Maven插件模式46
4.5.4 Gradle插件模式47
4.6 静态编译Java程序实例48
4.6.1 静态编译HelloWorld49
4.6.2 静态编译Spring Boot应用实例50
4.7 小结52
第二部分 静态编译实现原理
第5章 Substrate VM静态编译框架54
5.1 静态编译启动器55
5.2 静态编译实现流程57
5.2.1 类载入59
5.2.2 准备60
5.. 静态分析61
5.2.4 全局构建63
5.2.5 编译64
5.2.6 生成image65
5.2.7 写文件65
5.3 Substrate VM运行时支持67
5.3.1 内存管理67
5.3.2 系统信号处理机制69
5.4 小结70
第6章 Feature机制71
6.1 Feature机制概览71
6.2 Feature管理73
6.2.1 注册与调用Feature73
6.2.2 Feature依赖74
6.3 Feature影响编译流程75
6.3.1 Feature函数的入参回调75
6.3.2 访问ImageSingletons单例库76
6.4 GraalFeature实现静态编译优化77
6.4.1 GraalVM编译器基础知识77
6.4.2 扩展lowering79
6.4.3 注册图的扩展插件79
6.5 Feature接口函数80
6.6 小结82
第7章 编译时替换机制83
7.1 替换机制在Substrate VM中的应用84
7.2 基于注解的替换85
7.2.1 替换类85
7.2.2 替换枚举类型87
7.. 替换函数88
7.2.4 替换构造函数89
7.2.5 替换类中的域90
7.2.6 替换类的静态初始化函数92
7.3 实现原理93
7.3.1 替换机制责任链93
7.3.2 确定待替换元素集合96
7.3.3 自定义替换内容98
7.4 小结98
第8章 类提前初始化优化100
8.1 Java中的类初始化100
8.2 编译时的类初始化101
8.2.1 类提前初始化的能分析102
8.2.2 类提前初始化的安全分析103
8.3 优化实现原理106
8.3.1 早期阶段分析107
8.3.2 中期阶段分析109
8.3.3 后期阶段分析111
8.4 手动设置类初始化时机112
8.5 小结113
第9章 反的实现与优化114
9.1 反在传统Java中的实现115
9.2 基于配置的支持119
9.2.1 反配置文件119
9.2.2 配置局限121
9.3 Substrate VM的反实现122
9.3.1 解析配置并注册反信息1
9.3.2 反函数常量折叠优化124
9.3.3 函数反调用过程优化125
9.4 类似动态特的支持126
9.4.1 JNI调用127
9.4.2 动态代理127
9.4.3 资源访问128
9.4.4 序列化特129
9.5 小结129
0章 序列化131
10.1 序列化特的JDK原生实现131
10.1.1 序列化/反序列化基本流程132
10.1.2 序列化中的静态编译不友好特133
10.2 静态编译的序列化实现136
10.2.1 解决动态类加载问题136
10.2.2 解决new抽象类问题138
10.. 静态初始化函数检查139
10.3 局限139
10.4 小结141
1章 跨语言编程:用Java语言编写共享库142
11.1 样例项目cinterfacetutorial 143
11.2 共享库的Java实现源码解析145
11.2.1 声明共享库上下文145
11.2.2 实现C基本数据结构146
11.. 实现C的结构体继承149
11.2.4 暴露共享库API149
11.2.5 直接调用C函数152
11.2.6 共享库函数的返回值153
11.3 静态编译JNI共享库153
11.3.1 JNemo项目组织结构153
11.3.2 JNI库API函数的声明155
11.3.3 JNI函数编程基本过程156
11.3.4 JNI函数参数传入String157
11.3.5 自定义JNI函数指针类型158
11.3.6 调用Java函数159
11.4 小结160
2章 CLibrary机制161
12.1 isolate161
12.1.1 错误的多线程调用:简单复用isolate162
12.1.2 正确的多线程调用:为每个线程新建isolate163
12.1.3 正确的多线程调用:映线程与isolate164
12.2 WordBase接口系统165
1. 注解系统167
1..1 @CContext注解167
1..2 @CEntryPoint注解172
1.. @InvokeCFunctionPointer注解173
12.4 正确释放内存173
12.5 小结175
第三部分 静态编译实战
3章 静态编译Serverless应用到阿里云函数计算平台178
13.1 阿里云函数计算平台178
13.2 静态编译基于Micronaut的Spring-Boot示例项目179
13.3 部署到阿里云180
13.4 能比较180
13.5 小结182
4章 native-image-agent的实现183
14.1 native-image-agent与JVMTI183
14.2 实现静态编译的JVMTI Agent185
14.3 native-image-agent的可用选项188
14.4 小结190
5章 调试191
15.1 编译debug版本的native image191
15.2 使用GDB调试native image193
15.2.1 启动GDB194
15.2.2 增加函数断点194
15.. GDB TUI分屏界面195
15.2.4 单步调试197
15.2.5 查看Java对象的值197
15.3 小结199
林子熠,博士,集团技术专家,曾任华为技术有限公司高级软件开发。专注于Java静态编译方向,主要负责Java静态编译技术在生态中的应用,并以落地实践中发现的问题为切入点,向GraalVM社区贡献了多项重要特,是GraalVM社区建设的积极参与者;曾作为核心人员,负责将华为方舟编译器前端的Java字节码和ArtDex字节码转换为方舟中间语言的开发工作;曾受邀作为上海JUG2019报告嘉宾和北京Con2020报告嘉宾,介绍GraalVM静态编译技术;曾在编译器领域国际很好学术会议CGO 2021的Graal专项论坛中报告对Java序列化特的静态编译支持实现。
(1)多名专家联袂:北京大学计算机科学技术系主任胡振江教授、阿里云基础软件舵主蔡景现(多隆)、华为方舟编译器总架构师叶寒栋、GraalVM核心开发人员郑雨迪联袂。(2)阿里资深专家撰写:作者林子熠阿里静态编译研究团队的核心成员,曾任华为高级,一直从事静态编译技术的研究与落地。(3)Java应用能提升制胜法宝:通过静态编译技术实现Java应用冷启动,实现能质的飞跃。(4)落地指导:深入原理,给出具体应用与调试技术,指导读者做好平稳落地工作。
亲,大宗购物请点击企业用户渠道>小苏的服务会更贴心!
亲,很抱歉,您购买的宝贝销售异常火爆让小苏措手不及,请稍后再试~
非常抱歉,您前期未参加预订活动,
无法支付尾款哦!
抱歉,您暂无任性付资格