【24h】

Object combining

机译:对象合并

获取原文

摘要

Object combining tries to put objects together that have roughly the same life times in order to reduce strain on the memory manager and to reduce the number of pointer indirections during a program's execution. Object combining works by appending the fields of one object to another, allowing allocation and freeing of multiple objects with a single heap (de)allocation. Unlike object inlining, which will only optimize objects where one has a (unique) pointer to another, our optimization also works if there is no such relation. Object inlining also directly replaces the pointer by the inlined object's fields. Object combining leaves the pointer in place to allow more combining. Elimination of the pointer accesses is implemented in a separate compiler optimization pass.Unlike previous object inlining systems, reference field overwrites are allowed and handled, resulting in much more aggressive optimization. Our object combining heuristics also allow unrelated objects to be combined, for example those allocated inside a loop; recursive data structures (linked lists, trees) can be allocated several at a time and objects that are always used together can be combined.The main focus of object combining in this paper is on reducing object (de)allocation overhead, by reducing both garbage collection work and the number of object allocations. Reduction of memory management overhead causes execution time to be reduced by up to 35%. Indirection removal further reduces execution time by up to 6%.
机译:对象组合试图将具有大致相同寿命的对象放在一起,以减少对内存管理器的压力并减少程序执行期间的指针间接调用次数。对象合并的工作原理是将一个对象的字段附加到另一个对象的字段,从而允许通过单个堆(取消)分配来分配和释放多个对象。与对象内联不同,后者仅对一个具有指向另一个的(唯一)指针的对象进行优化,如果没有这种关系,我们的优化也将起作用。对象内联还可以直接用内联对象的字段替换指针。对象合并将指针留在原处以允许更多合并。指针访问的消除是在单独的编译器优化过程中实现的,与以前的对象内联系统不同,允许并处理了引用字段覆盖,从而带来了更积极的优化。我们的对象组合启发式方法还允许组合无关的对象,例如在循环中分配的对象;可以一次分配多个递归数据结构(链表,树),并且可以将始终一起使用的对象进行组合。本文中对象组合的主要重点是通过减少两个垃圾来减少对象(取消)分配的开销。收集工作和对象分配的数量。减少内存管理开销可使执行时间最多减少35%。间接删除进一步减少了高达6%的执行时间。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号