zoukankan      html  css  js  c++  java
  • Google Android系统中侵犯Oracle的专利说明

    今天看了info Q上关于Google公司和Oracle公司的专利诉讼

    其中Oracle公司的一项专利(其实是Sun公司申请的)6061520比较有意思,下面简要的介绍一下这一项专利。

    这项专利主要涉及到java语言中静态数组的初始化。这一项专利是关于在jvm虚拟机执行static方法中,对数组初始化复制的优化措施。专利中定义一个预加载器,这个预加载器通过模拟执行一个class文件的<clinit>方法(也就是static语句),把<clinit>方法中的指令进行优化,并发优化后的指令保存到.mclass文件中。jvm虚拟机在执行class文件的时候,如果发现有<clinit>方法,则执行.mclass文件中指令,jvm虚拟器需要识别这些优化后的指令。由于class文件中字节码指令都是jvm可识别的,预加载器就是加强了class文件的字节码指令,需要jvm对这些指令实现进行支持。

    下面这幅图描述了预加载器模拟执行class文件中的<clinit>方法,生成.mclass文件的过程

    对于移动设备,内存相对于pc机还是比较小的,通过对静态数组初始化指令进行优化,可以大大地减少字节码指令,从而减少加载到内存中的class文件大小。

    下面可以看一个演示,下面代码是静态初始化5个int类型数组的字节码:

     public static final int a[] = { 1, 2, 3, 4, 5 };

     0:   iconst_5
     1:   newarray int
     3:   dup
     4:   iconst_0
     5:   iconst_1
     6:   iastore
     7:   dup
     8:   iconst_1
     9:   iconst_2
     10:  iastore
     11:  dup
     12:  iconst_2
     13:  iconst_3
     14:  iastore
     15:  dup
     16:  iconst_3
     17:  iconst_4
     18:  iastore
     19:  dup
     20:  iconst_4
     21:  iconst_5
     22:  iastore
     23:  putstatic       #10; //Field a:[I
    

    对于一个简单的初始化指令,需要用很多字节码来完成,这个专利就对此进行了优化,优化后的指令格式如下

    CONSTANT_Array T_INT 4 1,2,3,4

    大大的减少了字节码的数量

    这个在内存资源极其紧张的移动设备上,还是可以节省很多内存空间的。

    专利的详细信息见 http://worldwide.espacenet.com/publicationDetails/biblio?FT=D&date=20000509&DB=worldwide.espacenet.com&locale=en_EP&CC=US&NR=6061520A&KC=A&ND=4

    作者:猫叔玩流量
    14年互联网技术、产品、运营经验,前支付宝技术专家,互金创业公司CTO,大令保事业部总经理。
    在互金领域有比较强的产品以及运营经验,尤其擅长用户增长、转化、运营上的经验,兼具技术、产品、运营思维。
    目前是云猫增长实验室 创始人

    云猫增长实验室是一家致力于帮助中小企业主、个人品牌提升流量运营能力的增长团队。
    团队成员来自阿里等国内知名互联网公司,曾在互联网金融、互联网保险、企业级SaaS等项目中负责用户增长,团队管理的工作,拥有丰富的一线流量增长经验与实操手段。

    欢迎关注我们,用技术驱动增长

    B站专栏:云猫增长实验室
    本人版权归作者和博客园所有,欢迎转载,转载请注明出处

  • 相关阅读:
    python面向对象__call__
    python的上下文管理协议
    python析构方法__del__
    next和iter可迭代协议
    __slots__ 用法
    定制自己的数据类型
    内置的Attr系列
    反射和自省
    isinstance和issubclass
    BLE 学习
  • 原文地址:https://www.cnblogs.com/aigongsi/p/2492636.html
Copyright © 2011-2022 走看看