[发明专利]在访问动态类型化阵列对象过程中的尺寸依赖类型有效

专利信息
申请号: 201480047213.8 申请日: 2014-08-25
公开(公告)号: CN105493040B 公开(公告)日: 2019-09-20
发明(设计)人: M·海森堡 申请(专利权)人: 苹果公司
主分类号: G06F8/30 分类号: G06F8/30;G06F8/41;G06F9/448;G06F9/451;G06F9/455;G06F12/0815
代理公司: 中国国际贸易促进委员会专利商标事务所 11038 代理人: 宿小猛
地址: 美国加*** 国省代码: 美国;US
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 访问 动态 类型 阵列 对象 过程 中的 尺寸 依赖
【说明书】:

本发明描述了用于针对动态类型化程序来提供对象模型中的平面阵列类型的方法和装置。可针对基于动态语言的程序来动态跟踪阵列对象是否为平面阵列类型。平面阵列类型的阵列对象的阵列元素可被存储在阵列对象的对象单元内的内联存储装置中。内联存储装置可被可用存储空间限定在相邻对象单元之间。可基于内联存储装置是否具有足够的存储空间来存储阵列的元素来检测阵列对象的平面阵列类型。平面阵列类型的阵列对象可允许在对象单元内访问的阵列对象的阵列元素而无需经由被存储在对象单元中的指针来进行附加存储器加载。

相关申请的交叉引用

专利申请涉及并要求于2013年8月30日由Filip Pizlo等人提交的名称为“RUNTIME ACCESS OF DYNAMIC OBJECTS”的美国临时专利申请61/872,386的权益,该专利申请以引用的方式全文并入本文。

技术领域

本发明通常涉及针对动态类型化数据的运行时访问。更具体地,本发明涉及优化执行基于动态语言的代码过程中的阵列数据访问。

背景技术

动态语言诸如JavaScript、Ruby、Python、Perl和PHP等正日益被认为是静态语言诸如C和C++的替代。动态语言带来很多益处,诸如程序员生产率和相对浅的学习曲线。然而,进一步采用包括JavaScript、Ruby、Python和其他语言的动态语言的障碍是缺少高性能共享存储器并发机制,诸如在静态语言中明显可用的线程和锁定或libdispatch。由于对象在动态语言中的工作方式,这一问题被认为是困难的,所以至今还未解决。

先前为解决该问题所作的尝试包括围绕每个对象访问添加锁定机制。尽管锁定机制可保证期望的并发语义,但是非常慢。锁定和解锁可按照低于正常堆访问的量级来执行,因此引入过高的开销。

另外,内联高速缓存(IC)通常用于基于JavaScript的代码的高性能具体实施。典型地,内联高速缓存包括自修改代码。然而,可在多个处理器上执行的并发自修改代码可能既困难又慢。因此,向用于基于JavaScript的代码的基于内联高速缓存的具体实施添加并发性可能造成不切实际的昂贵。

此外,JavaScript作为语言具有经由存储器中的16字节单元以及可选可变量的额外的存储器内联(即,紧接在前16字节之后)被表示为对象的元素的阵列的概念。如果基于JavaScript的程序被执行以向对象添加比可被包含在其内联属性存储装置中的更多的属性,则必须分配单独的外联存储器块以存储其附加属性。JavaScript阵列主要用于编索引的属性存储。关于对象的编索引属性的存在总是要求分配外联索引属性存储对象。

因此,用于执行基于动态语言的程序的现有具体实施往往缺乏效率、并发性和有效优化。

发明内容

从动态编程语言诸如JavaScript生成的代码可包括增强型对象模型以允许在运行时期间并发执行数据访问。除了对象的类型结构和数据有效载荷存储属性或字段值之外,索引结构可被引入到表示动态类型化对象的对象模型。索引结构的元素可作为用于访问对象的间接索引指向对应属性值处。

在一个实施例中,动态类型化程序代码(例如,实现某一算法)可被允许通过对象的索引结构经由附加间接索引来对对象的单个属性值并发执行每次访问操作而不会产生竞争状况。针对对象的单个属性值的每次访问(例如,加载/存储)操作可要求多个指令操作和/或原子操作。在并发执行期间,这些指令可被允许以非同步方式交织。

在其他实施例中,用于访问单个线程中的动态类型化对象的内联高速缓存初始化可被卸载到解译器而不会造成不必要的同步开销。可提供线程偏置机制来检测代码块是否在单个线程中执行。此外,可减少经由编译器诸如基线JIT编译器执行的内联高速缓存初始化的次数,以提高处理性能。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苹果公司,未经苹果公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201480047213.8/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top