返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:
本店所有商品

  • 全新GraalVM与Java静态编译 原理与应用林子熠9787111696391
  • 正版
    • 作者: 林子熠著 | 林子熠编 | 林子熠译 | 林子熠绘
    • 出版社: 机械工业出版社
    • 出版时间:2022-01-01
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    萌萌哒图书专营店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品参数
    • 作者: 林子熠著| 林子熠编| 林子熠译| 林子熠绘
    • 出版社:机械工业出版社
    • 出版时间:2022-01-01
    • 版次:1
    • 印次:1
    • 页数:212
    • 开本:16开
    • ISBN:9787111696391
    • 版权提供:机械工业出版社
    • 作者:林子熠
    • 著:林子熠
    • 装帧:平装
    • 印次:1
    • 定价:89.00
    • ISBN:9787111696391
    • 出版社:机械工业出版社
    • 开本:16开
    • 印刷时间:暂无
    • 语种:暂无
    • 出版时间:2022-01-01
    • 页数:212
    • 外部编号:1202556332
    • 版次: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)落地指导:深入原理,给出具体应用与调试技术,指导读者做好平稳落地工作。

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购