标签: memory-profiling

使用VADump跟踪内存使用情况 - OpenProcess失败c0000034

在阅读了最新一期MSDN杂志上一篇文章后,我想尝试使用VADump来分解我编写的一些应用程序的内存使用情况.

我电脑上唯一的可执行文件副本位于:

c:\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\winnt\vadump.exe

无论我给VADump提供什么参数组合,它都会返回错误:

OpenProcess Failed c0000034

谷歌搜索出现了一些其他人有同样问题,但这些帖子都没有我能找到的解决方案(甚至回复!).

本机运行的是安装了VS2005和VS2008的WinXP SP2.

VADump看起来是一个非常有用的工具,我真的很想尝试一下.希望这可以在办公室中的另一台PC上运行,但我仍然想让它在我的工作上运行.

有任何想法吗?

memory profiling memory-profiling

2
推荐指数
1
解决办法
6125
查看次数

试图理解python内存分析器

我使用的内存分析器模块来获取我的Python代码后的内存使用这个答案。但是,我无法解释%memitmagic的输出(或使用@profile模块中的装饰器的输出或mprof run就此而言)。

例如,

%memit range(10000) 
Run Code Online (Sandbox Code Playgroud)

给我 peak memory: 97.41 MiB, increment: 0.24 MiB

尽管,

%memit xrange(10000)
Run Code Online (Sandbox Code Playgroud)

显示peak memory: 97.46 MiB, increment: 0.00 MiB。我确实理解xrange返回一个xrange typerange()返回一个列表之间的区别。我在这里使用它们只是为了演示这两个场景。

我的问题是

  1. 是什么peak memoryincrement实际上意味着什么呢?
  2. 我应该从这个输出报告什么作为脚本(或函数)的总内存使用量?

python memory-profiling

2
推荐指数
1
解决办法
5689
查看次数

如何分析在云代工厂上运行的 spring boot webapp 的内存?

我有一个在内部云代工厂空间上运行的 Spring Boot 应用程序。我想监视此 Web 应用程序的堆栈和堆内存,以查找源自代码的 StackOverflow 异常。

分析应用程序的最佳方法是什么。

java memory-profiling cloud-foundry spring-boot

2
推荐指数
1
解决办法
1415
查看次数

类中的内存使用 - 将double转换为float并没有像预期的那样减少内存使用量

我正在初始化数百万个以下类型的类

template<class T>
struct node
{
  //some functions
private:
  T m_data_1;
  T m_data_2;
  T m_data_3;

  node* m_parent_1;
  node* m_parent_2;
  node* m_child;
}
Run Code Online (Sandbox Code Playgroud)

模板的目的是使用户能够选择floatdouble精确,其想法是by node<float>将占用更少的内存(RAM).

但是,当我切换doublefloat我的程序的内存占用时,并没有像我期望的那样减少.我有两个问题,

  1. 是否有可能编译器/操作系统保留的空间超过了我的浮动所需的空间(甚至可以将它们存储为双精度).如果是这样,我该如何阻止这种情况发生 - 我在使用g ++的64位机器上使用linux.

  2. 有没有一个工具可以让我确定所有不同类使用的内存量?(即某种内存分析) - 确保内存不会被我想到的其他地方搞砸.

c++ memory-management memory-profiling

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

确定Python的实际内存使用情况

我目前正在尝试调试我的Python程序的内存使用情况(在Windows上使用CPython 2.7).但不幸的是,我甚至找不到任何方法来可靠地测量它当前使用的内存量.

我一直在使用任务管理器/资源监视器来测量进程内存,但这似乎只对确定峰值内存消耗有用.通常,即使相关对象被垃圾回收,Python也不会减少提交或工作集.

有没有办法找出Python实际使用了多少内存,或者失败了,以迫使它释放未使用的内存?我不想使用任何需要重新编译插补器的东西.

证明它没有释放未使用的内存的行为示例:

(after some calculations)   # 290k
gc.collect()                # still 290k
x = range(9999999)          # 444k
del x                       # 405k
gc.collect()                # 40k
Run Code Online (Sandbox Code Playgroud)

python windows memory-profiling

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

一个用于分析 Python 代码峰值内存使用情况的模块

目前,我尝试使用 memory_profiler 模块来获取使用的内存,如下面的代码:

from memory_profiler import memory_usage
memories=[]
def get_memory(mem,ended):
  if ended:
    highest_mem=max(mem)
    print highest_mem
  else:
  memories.append(mem)

def f1():
  #do something
  ended=False
  get_memory(memory_usage(),ended)
  return #something
def f2():
  #do something
  ended=False
  get_memory(memory_usage(),ended)
  return #something

#main
f1()
f2()
ended=True
get_memory(memory_usage(),ended) #code end

>>>#output
# output 
# highest memory 
Run Code Online (Sandbox Code Playgroud)

但是,它没有成功执行。当end=True 时卡住,发送memory_usage() 的值,结束get_memory 函数。它也没有显示任何错误。,只是等待了很长时间,然后我强制停止执行。任何人都知道更好的方法或解决方案?

python memory-profiling python-2.7 python-3.x

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