【24h】

Type-preserving heap profiler for C++

机译:用于C ++的键入堆分析器

获取原文

摘要

Memory profilers are essential tools to understand the dynamic behaviour of complex modern programs. They help to reveal memory handling details: the wheres, the whens and the whats of memory allocations. Most heap profilers provide sufficient information about which part of the source code is responsible for the memory allocations by showing us the relevant call stacks. The sequence of allocations inform us about their order. However, in case of some strongly typed programming languages, like C++, the question what has been allocated is not trivial. Reporting the actual allocation size gives minimal or no information about the structure or type of the allocated objects. Though this information can be retrieved from the location and time of allocation, it cannot be easily automated, if at all. Therefore in large software systems programmers do not have an overall picture of which data structures are responsible for bottlenecks and have too few clues for pinpointing enhancement possibilities. In this paper we present a type-preserving heap profiler for C++. On top of the usual heap profiler features our allocation entries, including those of template constructs, contain exact type information about the allocated objects. We can extract information on individual memory operations as well as supply aggregated overview. Having such a type information in hand programmers can identify critical classes more easily and can perform optimizations based on evidence rather than speculations.
机译:内存分析器是了解复杂现代程序的动态行为的重要工具。他们有助于揭示记忆处理细节:内存划分的姓名,华人和内存分配的内容。大多数堆分析器提供足够的信息,通过向我们展示相关呼叫堆栈,提供了有关源代码的哪个部分负责内存分配的信息。分配序列通知我们他们的订单。但是,如果有一些强大类型的编程语言,如C ++,则会分配的问题并不琐碎。报告实际分配大小为分配对象的结构或类型提供最小或无信息。虽然可以从分配位置和时间检索此信息,但是如果根本可以轻松自动化。因此,在大型软件系统中,程序员没有整体图像,数据结构负责瓶颈,并且具有太少的线索来定位增强可能性。在本文中,我们为C ++提供了一种保留的堆分析器。在通常的堆分析器的顶部,具有我们的分配条目,包括模板构造的分配条目,包含有关分配对象的精确类型信息。我们可以提取有关各个内存操作的信息以及电源聚合概述。在手头程序员中具有这样的类型信息可以更容易地识别关键类,并且可以基于证据而不是猜测执行优化。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号