• Java底层学习


    内存分页引入MMU(内存管理单元),利用虚拟地址替代物理地址,MMU将虚拟地址映射为物理地址,引入TLB(页表寄存器缓冲),对页面进行缓存从而提升性能
    http://kenwublog.com/tune-large-page-for-jvm-optimization

    偏向锁可以跳过同步,但是只针对单线程
    http://kenwublog.com/theory-of-java-biased-locking

    java调试体系结构
    1.java虚拟机工具接口(jvmti) 控制当前虚拟机运行状态
    2.java调试线协议(jdwp) 定义命令传输的格式
    3.java调试接口(jdi) 接收调试命令

    Instrumentation 的基本功能和用法
    1.编写premain函数
    2.jar文件打包
    3. java -javaagent:jar 文件的位置 [= 传入 premain 的参数 ]

    ClassFileTransformer可以将class当作字节流替换对应class

    agentmain可以在main方法之后启动
    instrumentation可以动态改变native代码

    BTrace可以动态跟踪代码运行

    编译器的基本结构
    源代码=》词法分析(Token流)=》语法分析(抽象语法树)=》语义分析(注解抽象语法树)。。。

    javac分析和代码生成
    1.属性标注与检查
    2.数据流分析
    3.泛型转换
    4.解语法糖
    5.生成class文件

    javac源码对应
    词法分析:com.sun.tools.javac.parser.Scanner
    语法分析:com.sun.tools.javac.parser.Parser
    将符号输入到符号表:com.sun.tools.javac.comp.Enter
    注解处理:com.sun.tools.javac.processing.JavacProcessingEnvironment
    标注:com.sun.tools.javac.comp.Attr
    检查:com.sun.tools.javac.comp.Check
    数据流分析:com.sun.tools.javac.comp.Flow
    转换类型:com.sun.tools.javac.comp.TransType
    接触语法糖:com.sun.tools.javac.comp.Lower
    生成class文件:com.sun.tools.javac.jvm.Gen

    Class文件信息
    1.结构
    2.元数据
    3.方法信息

    java -Xint 指定以纯解释模式执行
    java -Xcomp指定以纯编译模式执行
    java -Xmixed混合模式,默认

    JVM优化之压缩普通对象指针(CompressedOops)
    通常64位JVM消耗的内存会比32位的大1.5倍,这是因为对象指针在64位架构下,长度会翻倍(更宽的寻址)。
    JVM支持了 -XX:+UseCompressedOops 压缩指针

    热点编译

    JIT编译器通过计数器来触发执行,某方法被调用若干次后(次数可指定)JIT对该方法实现本地方法编译,提升性能,另外可以设定衰减机制,累积仅指定时间内有效
    profiling:解释器收集性能剖析信息

    内联和性能优化有关,但要慎用

    JIT即时编译时,首先将字节码翻译程平台无关的高级中间表示(HIR),然后由代码选择器将HIR转换为平台相关的低级中间表示(LIR),最后发射为可执行的本地代码

    静态单赋值(SSA,Static Single-Assignment):在编译器里用到,是一种高效的数据流分析技术

    c1visualizer:将C1编译器在编译各阶段的数据结构可规化展现出来的工具
    https://c1visualizer.dev.java.net/

  • 相关阅读:
    leetcode刷题29
    leetcode刷题28
    leetcode刷题27
    leetcode刷题23
    leetcode刷题22
    leetcode刷题21
    leetcode刷题20
    Unity中通过DoTween实现转盘效果
    U3D工作注意事项,不要再犯!
    Unity中String字符串的优化
  • 原文地址:https://www.cnblogs.com/blogszixin/p/3291501.html
Copyright © 2020-2023  润新知