188宝金博页面版

  • 图案背景
  • 纯色背景
视图
标记
批注
批注本地保存成功,开通会员云端永久保存 去开通
dingxiaosh..

上传于:2022-04-05

粉丝量:0

该文档贡献者很忙,什么也没留下。


  • 相关
  • 目录
  • 笔记
  • 书签

188宝金博页面版:更多相关文档

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文2073370.2073386

    星级: 1 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文2073304.2073346

    星级: 1 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文2073304.2073352

    星级: 1 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文264107.264189

    星级: 13 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文120782.120786

    星级: 10 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文120782.120788

    星级: 10 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文120694.120704

    星级: 9 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文120694.120706

    星级: 10 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文264107.264206

    星级: 11 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文264107.264212

    星级: 11 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文266399.266417

    星级: 15 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文266420.266435

    星级: 10 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文2030441.2030443

    星级: 8 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文2030441.2030460

    星级: 8 页

  • ACM ICPC Paper国际大学生程序设计竞赛获奖论文2030045.2030050

    星级: 10 页

暂无目录

点击鼠标右键菜单,创建目录

暂无笔记

选择文本,点击鼠标右键菜单,添加笔记

暂无书签

在左侧文档中,点击鼠标右键,添加书签

188宝金博页面版: ACM ICPC Paper国际大学生程序设计竞赛获奖论文2642937.2642992

下载积分: 4500

内容提示: A Dynamic Analysis to Support Object-Sharing CodeRefactoringsGirish Maskeri Rama?Infosys Limitedgirish_rama@infosys.comRaghavan KomondoorIndian Institute of Science, Bangaloreraghavan@csa.iisc.ernet.inABSTRACTCreation of large numbers of co-existing long-lived isomor-phic objects increases the memory footprint of applicationssignif i cantly. In this paper we propose a dynamic-analysisbased approach that detects allocation sites that create largenumbers of long-lived isomorphic objects, estimates quan-tita...

文档格式:PDF | 页数:11 | 浏览次数:1 | 上传日期:2022-04-05 11:14:04 | 文档星级:
A Dynamic Analysis to Support Object-Sharing CodeRefactoringsGirish Maskeri Rama∗Infosys Limitedgirish_rama@infosys.comRaghavan KomondoorIndian Institute of Science, Bangaloreraghavan@csa.iisc.ernet.inABSTRACTCreation of large numbers of co-existing long-lived isomor-phic objects increases the memory footprint of applicationssignif i cantly. In this paper we propose a dynamic-analysisbased approach that detects allocation sites that create largenumbers of long-lived isomorphic objects, estimates quan-titatively the memory savings to be obtained by sharingisomorphic objects created at these sites, and also checkswhether certain necessary conditions for safely employingobject sharing hold. We have implemented our approach asa tool, and have conducted experiments on several real-lifeJava benchmarks. The results from our experiments indicatethat in real benchmarks a signif i cant amount of heap mem-ory, ranging up to 37% in some benchmarks, can be saved byemploying object sharing. We have also validated the pre-cision of estimates from our tool by comparing these withactual savings obtained upon introducing object-sharing atselected sites in the real benchmarks.Categories and Subject DescriptorsD.2.7 [Software Engineering]: Distribution, Maintenance,and Enhancement; D.3.4 [Programming Languages]: Pro-cessorsKeywordsMemory optimization; object caching1. INTRODUCTIONThe advent of large system memories has not vetted theappetite for memory optimization tools for software. Forinstance, various researchers have noted [15, 16, 25, 24] thatsoftware commonly consumes unexpectedly high amountsof memory, frequently due to programming idioms that areused to make software more reliable, maintainable and un-derstandable. In the case of modern object-oriented systems∗ Currently pursuing part-time PhD in Indian Institute ofScience, Bangalore.Permission to make digital or hard copies of all or part of this work for personal orclassroom use is granted without fee provided that copies are not made or distributedfor prof i t or commercial advantage and that copies bear this notice and the full citationon the f i rst page. Copyrights for components of this work owned by others than theauthor(s) must be honored. Abstracting with credit is permitted. To copy otherwise, orrepublish, to post on servers or to redistribute to lists, requires prior specif i c permissionand/or a fee. Request permissions from permissions@acm.org.ASE’14, September 15-19, 2014, Vasteras, Sweden.Copyright is held by the owner/author(s). Publication rights licensed to ACM.ACM 978-1-4503-3013-8/14/09 ...$15.00.http://dx.doi.org/10.1145/2642937.2642992 .public CommonFont getFontProps () {. . .CommonFont commonFont =new CommonFont(fontFamily , fontSelectionStrategy ,fontStretch , fontStyle , fontVariant ,fontWeight , fontSize , fontSizeAdjust ) ;return commonFont ;}Listing 1: Creation of isomorphic objectsthis problem is partly due creation of large numbers of co-existing isomorphic objects. Intuitively, two objects are iso-morphic if they are of the same type, have identical values incorresponding primitive f i elds, and are such that correspond-ing reference f i elds themselves point to isomorphic objects.In other words, the portions of memory rooted at the twoobjects are isomorphic shape-wise as well as values-wise.1.1 MotivationTo illustrate this problem consider the example code inListing 1, adapted from the real program Apache FOP. Thiscode has been substantially simplif i ed for ease of presenta-tion. The getFontProps method in the code is used to cre-ate a CommonFont object (to encode display properties) foreach FO (Formatting Objects) node in the input FO docu-ment. Each CommonFont object (which we simply call fontobject from here on) occupies 64 bytes in memory. For largedocuments the number of such font objects created is verylarge. However, in practice, because the f i elds of the Com-monFont class can take on only a small number of distinctvalues, e.g., Arial or TimesRoman for fontFamily and 10ptor 12pt for fontSize, many of the font objects created areisomorphic to each other. For instance, with a 104-page realinput document that we supplied as input, although the pro-gram created 9079 font objects, 8943 (i.e., 98.5%) of theseobjects belonged to only four distinct equivalence classes byisomorphism. Furthermore, all font objects are long lived(i.e., are live nearly until the end of execution of the pro-gram). A signif i cant reduction in heap usage can thereforebe achieved if the code is refactored to de-duplicate or sharecommon font objects whenever possible instead of alwayscreating distinct but possibly isomorphic objects. Such arefactoring, which employs a cache to keep track of objectscreated so far and to share them, is shown in Listing 2. Wehave elided the equals and hashCode methods of the Com-monFont class from the listing, which ensure that a cache713

188宝金博页面版:关注我们

  • 新浪微博

关注188宝金博页面版公众号

188宝金博页面版
阅读
APP
阅读
返回
顶部
188宝金博页面版官网登录在线平台入口(2026已更新)—江苏协昌电子科技股份有限公司