jjzjj

memory-profiling

全部标签

c# - ICorProfilerCallback2 : CLR profiler does not log all Leave calls

我正在尝试编写一个记录进程中所有.Net方法调用的分析器。目标是使其具有高性能,并在内存中保留最后5-10分钟(固定缓冲区,循环覆盖旧信息),直到用户触发将该信息写入磁盘。预期用途是追踪很少重现的性能问题。我从https://github.com/appneta/SimpleCLRProfiler的SimpleCLRProfiler项目开始.分析器使用.Net分析的ICorProfilerCallback2回调接口(interface)。我让它在我的环境中编译和工作(Win8.1、.Net4.5、VS2012)。但是,我注意到有时记录了Enter调用的Leave调用会丢失。Consol

c - GetProcessMemoryInfo PROCESS_MEMORY_COUNTERS_EX.PrivateUsage 始终为 0

我正在使用GetProcessMemoryInfo函数通过其PID确定进程内存使用情况。使用常规PROCESS_MEMORY_COUNTERS一切正常,但我需要PrivateUsage成员,它仅存在于扩展结构PROCESS_MEMORY_COUNTERS_EX中。有几个文档促使我强制将扩展类型转换为基本类型,否则我的示例将无法编译。我仍然能够从基本成员获取值,例如PeakWorkingSetSize,但PrivateUsage始终为0。我什至尝试重新定义PSAPI_VERSION-仍然没有。无法使用PSAPI_VERSION这是我的例子。#include#include#include

Windows 上的 C++ : function to get allocated memory?

我使用C++编写代码,在Windows7上使用VisualStudio2008。我的应用程序有内存泄漏,我可以通过系统监视器看到它。我需要在代码中发现它。是否存在返回分配给调用进程的内存量的函数? 最佳答案 有一个MSVC特定的memleak检测解决方案//enablememoryleaksdetection#if!defined(NDEBUG)HANDLEhLogFile=CreateFile("log.txt",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTR

c++ - C++ 中的 Memory Tracker 在 vector 初始化期间进入无限循环

我正在尝试通过重载new和delete运算符在C++中编写内存跟踪器。但它会进入循环并一次又一次地调用new。以下是我的代码。#ifndefMEMORY_TRACKER_H_#defineMEMORY_TRACKER_H_#pragmawarning(disable:4290)#pragmacomment(lib,"Dbghelp.lib")#include#include#include#include#include#include#includestaticconstintMAX_TRACES=62;staticconstintMAX_LENGTH=256;staticconst

c# - 查询 "Memory"的 LINQ

是否LINQ有办法在查询时“记住”它以前的查询结果吗?考虑以下情况:publicclassFoo{publicintId{get;set;}publicICollectionBars{get;set;}}publicclassBar{publicintId{get;set;}}现在,如果两个或更多Foo具有相同的Bar集合(无论顺序是什么),它们被认为是相似Foo.例子:foo1.Bars=newList(){bar1,bar2};foo2.Bars=newList(){bar2,bar1};foo3.Bars=newList(){bar3,bar1,bar2};在上面的例子中,foo

c# - VS2013 : Memory profiler doesn't show anything on a specific project

我想使用visualstudio2013ultimate的内存分析器来分析WPF应用程序。但似乎有一个问题:运行探查器后没有可用/显示的数据。我使用Windows8.1x64我收到这个错误:DA0002:ItappearsthatthefilewascollectedwithoutproperlysettingtheenvironmentvariableswithVSPerfCLREnv.cmd.Symbolsformanagedbinariesmaynotresolve.奇怪的是:CPU分析适用于此项目,而内存分析似乎适用于其他项目(我创建了一个带有空窗口的新WPF项目并在那里测试了

c# - WPF GarbageCollection 中的高级调试建议

情况我们正在运行一个大型WPF应用程序,该应用程序在相当长的一段时间内不会释放内存。这不是真正的内存泄漏,因为内存最终会被释放。我知道通常情况下,这不会被视为问题。不幸的是,它与WPF命令基础结构一起成为性能问题。有关更详细的说明,请参见下文。调查结果我们有执行典型用例的自动化测试。有些情况下工作正常并及时释放内存。其他人则占用内存,直到客户端最小化、打开新窗口或发生触发Gen2收集的其他一些情况。•通过ANTS,我们看到对象没有GCRoot,但有很多对其他需要终结的对象的引用。•WinDbg不显示任何准备好完成的对象。•运行多个GC.Collect(),GC.WaitForPendi

Solidity中的calldata,storage,memory

目录calldatamemorystorage三者之间的转换storage作为参数,赋值到memory(1)(2)(3)storage作为参数,赋值给storagememory作为参数,赋值给memorymemory作为参数,赋值给storagecalldata官方文档对calldata的描述:Calldataisanon-modifiable,non-persistentareawherefunctionargumentsarestored,andbehavesmostlylikememory.翻译:Calldata是一个不可修改的、非持久化的区域,函数参数存储在这里,其行为主要类似于内存。

c# - 随机错误 : Attempted to read or write protected memory

我们有一个使用WCF服务的C#.Net应用程序。该应用程序部署在我们的生产服务器中的Windows服务应用程序下。该模块的一部分负责为worker今天要工作的较小区域创建形状文件((*.shp,*.dbf),并将它们发送到PDA。为了编写形状文件,我们使用第三方dll,NetTopologySuiteGisSharpBlog.NetTopologySuite.IO.ShapefileWriter它也在C#中。(我不确定它引用的任何dll是否使用非托管代码。)该系统可能会正常工作一段时间,比如一周。然后突然我们得到一个异常说Attemptedtoreadorwriteprotectedm

C# 字典 : faster access but less memory footprint

我需要一些关于以最小内存占用和最大访问性能进行存储和访问的最佳方式的建议。例如。对于每辆车,我想存储型号和名称。我有以下几点想法:选项1:Dictionary>values=newDictionary>();Dictionarylist=newDictionary();list.Add("2001","JettaS");list.Add("2002","JettaSE");list.Add("2002","JettaLE");values.Add("VolksWagen",list);选项2:Dictionary>>values2=newDictionary>>();List>list