约有 21 项符合查询结果, 以下是第 2 - 3项。
费时 < 1 秒。
主要是实在找不出放在哪个版面好. 也许这个论坛都不适合提这个问题.
多媒体软件, 全高清的文件多路同时转码.
目前的问题是客户主要分布在欧美,日本等国家, 电脑配置肯定比国内的好很多. 我们目前的尴尬是用户电脑配置再好也一样耗尽内存. 这个内存耗尽问题当然不仅仅是内存泄露.而是真的需要这么多内存. 所以现在必须从构架上考虑问题. 但是我们的软件是百万代码级别的. 真的不好下手.
Posted in WinDbg
by
Alex.xu
on 2009-07-31
我的程序已经完全超过 2G虚拟内存的限制了.
所以需要在window下实现类似于fork()函数的功能.尽量减少代码量实现多进程.来扩张虚拟内存空间.
linux下较简单. 但是window下好像不支持类似的技术.
请问各位有想法吗?
Posted in WinDbg
by
Alex.xu
on 2009-07-30
实在太感谢了, 分析的很透彻。
记得《软件调试》或者《高效排错》(有点不确定了)书上确实说过virtualAlloc API分配的内存很难追踪(不能使用栈回溯),因为不经过heap manager
估计我这边很多底层的codec使用了这种方式来分配内存的(追求速度)。
我再想想办法。
Posted in WinDbg
by
Alex.xu
on 2009-07-27
@Raymond, 非常感谢~~ 正在拜读你的大作呢
目前我的感觉还是泄露在一个directshow引擎库里面. 但是你说不在heap里面那就很难理解了.
因为模块映像.peb.teb.thread stack(虽然有很多线程)但是不可能会占用这个大的内存的 (1.9G虚拟内存哦~~).
@johnl, 谢谢你. 重现这个泄露问题的时候,我绝对没有打开全页堆模式. 随意不存在你说的那种可能性.
我现在最大的问题就是不知道我最大的内存消耗在哪里. heap里面实在是分析不出来.
下面的信息, 各位能不能帮我详细注释一下:
>!address
-------------------- Usage SUMMARY ...
Posted in WinDbg
by
Alex.xu
on 2009-07-27
自己顶一下.
其实还有一个关于堆的问题,我也是百思不解不得其解.
为什么使用了全页堆模式的情况下, !heap -s 输出不了任何的 heap 列表?
期待着张银奎先生出来帮我解释一下. 上次我帮公司开发人员做培训时这个case竟然怎么也不成功. 可能我太菜了. 不知道哪里没理解对.
Posted in WinDbg
by
Alex.xu
on 2009-07-23
可以, 可以注册一个全局的 exception filter. 这样如果你的程序无人处理unhandle exception的情况下它会截获到这个异常(全局的).你在里面通过自己写代码的方式自动生成dump. 这种方法不会影响你的程序的性能. 希望有用.
Posted in WinDbg
by
Alex.xu
on 2009-07-23
linux里面应该可以的。因为所有的进程是树形结构。可以遍历到init进程。然后再从init进程向下遍历所有的子进程。不知道试不试用与window下面。
Posted in WinDbg
by
Alex.xu
on 2009-07-23
问题如下:程序运行一段时间后,进程虚拟内存达到2G的上限。 我现在需要分析出来内存的分布情况。就是说哪些组件或者线程占用了较大的内存。
>!address
-------------------- Usage SUMMARY --------------------------
TotSize ( KB) Pct(Tots) Pct(Busy) Usage
3f04a000 ( 1032488) : 49.23% 52.57% : RegionUsageIsVAD
81c5000 ( 132884) : 06.34% 00.00% : RegionUsageFree
eef8000 ( 244704) : 11.67% 12.46% : ...
Posted in WinDbg
by
Alex.xu
on 2009-07-23
接着看上面的东西: Reserv 的sum是153600kb Commit 的sum是112928 kb
与上面的!address 输出结果相差甚远
-------------------- State SUMMARY --------------------------
TotSize ( KB) Pct(Tots) Usage
6c672000 ( 1776072) : 84.69% : MEM_COMMIT
81c5000 ( 132884) : 06.34% : MEM_FREE
b7b9000 ( 188132) : 08.97% : MEM_RESERVE
请问各位造成这种情况的原因是什么? !heap -s的信息感觉不全呢?
Posted in C/C++本地代码调试
by
Alex.xu
on 2009-07-23