[发明专利]在访问动态类型化对象过程中的并发内联高速缓存优化有效
申请号: | 201480047215.7 | 申请日: | 2014-08-22 |
公开(公告)号: | CN105493041B | 公开(公告)日: | 2019-04-09 |
发明(设计)人: | F·J·皮泽罗 | 申请(专利权)人: | 苹果公司 |
主分类号: | G06F9/455 | 分类号: | G06F9/455;G06F9/448;G06F8/41 |
代理公司: | 中国国际贸易促进委员会专利商标事务所 11038 | 代理人: | 宿小猛 |
地址: | 美国加*** | 国省代码: | 美国;US |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 访问 动态 类型 对象 过程 中的 并发 内联 高速缓存 优化 | ||
本发明描述了用于基于内联高速缓存代码来并发访问动态类型对象的方法和装置。单个线程中的内联高速缓存初始化可被卸载到解译器,而不会造成不必要的同步开销。可提供线程偏置机制来检测代码块是否在单个线程中执行。此外,可减少经由编译器诸如基线JIT编译器执行的内联高速缓存初始化的次数,以提高处理性能。
相关申请的交叉引用
本专利申请涉及并要求于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作为语言允许在已构造对象之后向那些对象添加元素。如果基于JavaScript的程序被执行以向对象添加比可被包含在其内联属性存储装置中的更多的属性,则必须分配单独的外联存储器块以存储其附加属性。JavaScript阵列主要用于编索引的属性存储。关于对象的编索引属性的存在总是要求分配外联索引属性存储对象。
因此,用于执行基于动态语言的程序的现有具体实施往往缺乏效率、并发性和有效优化。
发明内容
从动态编程语言诸如JavaScript生成的代码可包括增强型对象模型以允许在运行时期间并发执行数据访问。除了对象的类型结构和数据有效载荷存储属性或字段值之外,索引结构可被引入到表示动态类型化对象的对象模型。索引结构的元素可作为用于访问对象的间接索引指向对应属性值处。
在一个实施例中,动态类型化程序代码(例如,实现某一算法)可被允许通过对象的索引结构经由附加间接索引来对对象的单个属性值并发执行每次访问操作而不会产生竞争状况。针对对象的单个属性值的每次访问(例如,加载/存储)操作可要求多个指令操作和/或原子操作。在并发执行期间,这些指令可被允许以非同步方式交织。
在其他实施例中,用于访问单个线程中的动态类型化对象的内联高速缓存初始化可被卸载到解译器而不会造成不必要的同步开销。可提供线程偏置机制来检测代码块是否在单个线程中执行。此外,可减少经由编译器诸如基线JIT编译器执行的内联高速缓存初始化的次数,以提高处理性能。
代码块可为编译单元、一部分源代码、一个或多个源代码文件或其他可适用代码语句集(例如,代码规范的连续部分)。编译单元可指代被编译为并且被认为是一个逻辑单元的源代码。编译单元可包括一个或多个完整的源代码文件,但是还可为专用代码部分或文件的所选择的部分。编译单元内的声明和定义可确定函数和数据对象的范围。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于苹果公司,未经苹果公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201480047215.7/2.html,转载请声明来源钻瓜专利网。
- 上一篇:集体的过顶应用策略监管
- 下一篇:锁定机构