标签: memory-profiling

找出Python中对象使用了多少内存

你将如何找出一个对象使用了多少内存?我知道有可能找出代码块使用了多少,但不是实例化对象(在其生命中的任何时间),这就是我想要的.

python performance memory-profiling

195
推荐指数
5
解决办法
13万
查看次数

如何使用转储文件诊断内存泄漏?

我有一个.NET服务,其正常的私有工作集大约为80 MB.在最近的负载测试期间,进程达到3.5 GB内存使用量,导致整个机器的物理内存不足(使用4 GB中的3.9),并且在负载测试停止后很长时间内内存未释放.使用任务管理器,我获取了该进程的转储文件并在Visual Studio 2010 SP1中打开它,我可以开始调试它.

我如何诊断内存问题?我有dotTrace Memory 3.x,它是否支持转储文件的内存分析?如果没有,Visual Studio 2010 Premium的内存分析功能是否有帮助(我目前有专业版)?WinDbg可以帮忙吗?

更新:新的Visual Studio 2013 Ultimate现在可以使用转储文件本机诊断内存问题.有关详细信息,请参阅此博客文章.

.net memory-leaks crash-dumps visual-studio-2010 memory-profiling

68
推荐指数
3
解决办法
5万
查看次数

.NET内存分析工具

可能重复:
什么是一些好的.NET Profilers?

我正在寻找好的.NET CLR内存分析工具.

我的关键要求是它将与IIS和独立的CLR应用程序配合良好.理想情况下,我会看到分配了哪些对象,分配它们的位置以及它们的大小?

有没有人对您推荐的特定工具有任何良好的体验?

.net profiling memory-profiling

50
推荐指数
6
解决办法
5万
查看次数

是否有适用于Python3的工作内存分析器

在Python 2中有一些工具,但一切似乎都是旧的和过时的.

我发现了PySizer和Heapy但是一切似乎都是面向Python2的,需要付出很多努力来移植.

objgraph很有趣,但仍然不是一个完全工作的分析器

使用哪种工具?

python profiling memory-profiling memory-leak-detector python-3.x

33
推荐指数
1
解决办法
9116
查看次数

R中的内存分析 - 用于汇总的工具

R有一些内存分析工具,比如 Rprofmem(),Rprof()选项"memory.profiling=TRUE"tracemem().最后一个只能用于对象,因此可以跟踪复制对象的次数,但不提供基于函数的概述.Rprofmem应该能够做到这一点,但即使是最简单的函数调用的输出也会lm()提供超过500行的日志.我试图找出究竟Rprof("somefile.log",memory.profile=T)做了什么,但我不认为我真的明白了.

我能找到的最后一个是托马斯·拉姆利的这个消息,说道,我引述:

我还没有工具来总结输出.

这是在2006年也有一些不错摘要选择现在任何机会,主要是基于Rprofmem(),神秘的输出Rprof()memory.profile设置为TRUE或任何其他工具?

r memory-profiling r-faq

29
推荐指数
1
解决办法
2348
查看次数

Chrome Dev Toolbar的"时间轴"标签中的"文档计数"计数器是什么?

有人可以解释一下'文档计数'计数器在Chrome开发工具栏的时间轴标签中的含义是什么吗?

在我的应用程序中,我使用iframe并在其中一个页面中的一组页面中导航.目前,"文件计数"计数器显示了一系列值23-32,它代表什么样的?

提前致谢.

google-chrome memory-profiling web-developer-toolbar

25
推荐指数
1
解决办法
2522
查看次数

以编程方式获取Chrome中的内存使用量

如何以编程方式在Google Chrome中获取我的网站的内存使用量(JS和总数)?

我看过使用未记录的HeapProfiler从Chrome扩展程序中执行此操作(请参阅此处),但我无法找到从中获取数据的方法.

我想测量每个版本的内存消耗,所以这需要编程.

编辑:我想出了如何使HeapProfiler方法工作.每个addHeapSnapshotChunk事件都有一个JSON对象的块.

chrome.browserAction.onClicked.addListener(function(tab) {
  var heapData,
    debugId = {tabId:tab.id};
  chrome.debugger.attach(debugId, '1.0', function() {    
    chrome.debugger.sendCommand(debugId, 'Debugger.enable', {}, function() {
      function headerListener(source, name, data) {
        if(source.tabId == tab.id && name == 'HeapProfiler.addProfileHeader') {
          function chunkListener(source, name, data) {
            if(name == 'HeapProfiler.addHeapSnapshotChunk') {
              heapData += data.chunk;
            } else if(name == 'HeapProfiler.finishHeapSnapshot') {
              chrome.debugger.onEvent.removeListener(chunkListener);
              chrome.debugger.detach(debugId);
              //do something with data
              console.log('Collected ' + heapData.length + ' bytes of JSON data');
            }
          }
          chrome.debugger.onEvent.addListener(chunkListener);
          chrome.debugger.sendCommand(debugId, 'HeapProfiler.getHeapSnapshot', {uid:data.header.uid, type:data.header.typeId});
        } …
Run Code Online (Sandbox Code Playgroud)

javascript performance google-chrome memory-profiling google-chrome-devtools

25
推荐指数
2
解决办法
2万
查看次数

Shiny app的代码分析?

对于R Shiny Web应用程序,运行代码分析的哪些好方法可以显示处理时间最长的Shiny代码部分?

我有一个大而肥胖,复杂的Shiny应用程序,而且我想弄清楚在这个迷宫代码的哪个地方,我正在减慢我的Shiny应用程序.我已经试过Rprof和profr,但没有从他们那里得到太多的了解.

r memory-profiling shiny

22
推荐指数
2
解决办法
3415
查看次数

numpy的内存分析器

我有一个numpy脚本 - 根据top- 使用大约5GB的RAM:

  PID USER   PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND
16994 aix    25   0 5813m 5.2g 5.1g S  0.0 22.1  52:19.66 ipython
Run Code Online (Sandbox Code Playgroud)

是否有内存分析器可以让我了解占用大部分内存的对象?

我试过了heapy,但是guppy.hpy().heap()给了我这个:

Partition of a set of 90956 objects. Total size = 12511160 bytes.
 Index  Count   %     Size   % Cumulative  % Kind (class / dict of class)
     0  42464  47  4853112  39   4853112  39 str
     1  22147  24  1928768  15   6781880  54 tuple
     2 …
Run Code Online (Sandbox Code Playgroud)

python memory numpy memory-profiling

19
推荐指数
1
解决办法
1876
查看次数

将指针设置为nil以防止Golang中的内存泄漏

我正在学习Go,作为练习,我想实现一个链表.作为参考,我查看了Go官方代码(https://golang.org/src/container/list/list.go).与我相关的一件事是这些线:

   108  // remove removes e from its list, decrements l.len, and returns e.
   109  func (l *List) remove(e *Element) *Element {
   110      e.prev.next = e.next
   111      e.next.prev = e.prev
   112      e.next = nil // avoid memory leaks
   113      e.prev = nil // avoid memory leaks
   114      e.list = nil
   115      l.len--
   116      return e
   117  } 
Run Code Online (Sandbox Code Playgroud)

我很好奇在这种情况下如何设置指向nil的指针可以防止内存泄漏?如果可能的话,我想构建一个有这个缺陷的程序,并在使用pprof进行分析时看到它(我将使用list.go的修改版本,而不使用这个nil指针设置).


为了清楚回答:如果其中一个节点有一个指向它的外部指针,那么所有相邻的被删除节点将通过该指针进行有效引用,并且不会被删除. 在此输入图像描述

  1. 我们创建一个指向Node2的外部指针
  2. 我们从列表中删除节点2-4
  3. 在这一点上,您只能期望节点1,2和5处于活动状态,其余节点将进行GC编辑.但是,由于Node2仍指向Node3等,整个链仍未收集.

garbage-collection memory-leaks memory-management go memory-profiling

15
推荐指数
1
解决办法
2146
查看次数