zoukankan      html  css  js  c++  java
  • 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》 与诸君共勉
  • 相关阅读:
    ActionScript 条件编译
    FLASH通讯小结
    关于ob_start()
    剖析PHP中的输出缓冲
    Ext.app.controller的refs
    php多线程解决之stream_socket_client
    谷歌的JQuery库
    PHP计划任务之关闭浏览器后仍然继续执行的函数
    关于php调用可执行程序,在后台运行而不让页面等待
    把预定义的字符串转化为html标签
  • 原文地址:https://www.cnblogs.com/luyu1993/p/5781892.html
Copyright © 2011-2022 走看看