我认为这个问题与中所描述的有关
this article
:
有趣的工作集和int32
我终于在.NET框架中发现了一个诚实的bug。
... 这个
整数(32位有符号整数)。好的,那么
整数是2147483647——非常接近总数
进程在其工作集中可以拥有的内存量。
与分析服务打交道——这东西可能会占用内存。所以呢
现在发生的事情是,当我投票的工作集,我得到一个负
数字,一个非常大的负数。通常,在
... 问题是溢位。
整数的第一位是符号位。0为正,1为负。
所以,当值从(二进制)变为
100000000000000000000000值从2147483647到
-2147483647.
好吧,所以我还是要解决这个问题。以下是我的想法(用C#):
long lWorkingSet = 0;
if (process.WorkingSet >= 0)
lWorkingSet = processWorkingSet;
else
lWorkingSet = ((long)int.MaxValue*2)+process.WorkingSet;
希望这能暂时解决问题。
knows
这个问题。我还得弄清楚他们要怎么解决这个问题
Win64…此技巧将不再有效。
http://msdn2.microsoft.com/library/0aayt1d0(en-us,vs.80).aspx
会有一个Process.WorkingSet64变量,它们是
不过,从正切的角度来说,我认为这是不可能的
进程接近3gb限制,因为运行时将