• JVM读书笔记PART3


    一、早期(编译器)优化

    语法糖

    c#和java的泛型截然不同看似相同,c#是真实的泛型 编译运行一直存在 List<string> 和List<int> 就完全是两个类

    而Java中 是伪泛型采用类型擦除的方法实现泛型    List<Integer> List<String> 运行期就是同一个类

     

    编译期错误,无法识别两个方法。

    语法糖:自动拆箱、装箱 可变参数 遍历循环

    条件编译

    二、晚期(运行期)优化

    二者各有优势:

    分层编译策略:

    有两种进行热点探测的方式:

    1.基于采样的热点探测 不精准容易受到线程阻塞影响判断

    2.基于计数器的热点探测 较为精准但是有些麻烦  一般采用这种

    回边计数器

    达到阙值之后 会在后台编译代码

    C1简单快速三段式编译

    C2会执行所有的经典优化

    ps

    栈溢出错误 递归调用方法 

    1.公共子表达式

    优化后

    2.数组范围检查消除

    3.方法内联

     

     

    很多情况下虚拟机的内联都是一种激进优化

    4.逃逸分析

    三、JAVA与C++编译器的对比

    才能这种东西 本来就是靠自己挖掘创造的 我也不是什么天才 我只是比任何人都拼命工作 一步一个脚印走过来了 等我回头一看 背后没有一个身影 那帮懒惰的人在山脚念叨着 谁叫那家伙是天才 开什么玩笑 我最讨厌悠哉悠哉长大的慢性子 比我有时间 有精力 感情丰富的人 为什么比我懒惰 那就给我啊 要把这些东西都浪费掉的话 就通通给我 我还有很多很多想创造的东西 给我啊--------摘自《legal high II》 与诸君共勉
  • 相关阅读:
    最短路径 Floyd && spfa
    queue 优先队列
    POJ Wormholes 最短路径 ballman_ ford 有负环
    上帝造题五分钟
    算法提高 新建Microsoft Word文档
    算法训练 最短路
    Ubuntu14 Could not open file /var/lib/dpkg/status
    MongoDB权威指南<2> 1-1 MongoDB 介绍
    SaltStack Char03 实践案例
    ELK Stack
  • 原文地址:https://www.cnblogs.com/luyu1993/p/5781892.html
Copyright © 2020-2023  润新知