确定PCL中的最大可寻址内存

时间:2015-04-20 21:36:34

标签: .net math memory portable-class-library

在.NET库(Deveel Math)中我实现了对大十进制数字的数学运算,对于一个特定的操作(x ^ 10),我安全地检查这是否会导致通过最大可寻址内存,通过检查当前Process

long byteArraySize = 1 + (long)(exp / 2.4082399653118496);
if (byteArraySize > System.Diagnostics.Process.GetCurrentProcess().PeakVirtualMemorySize64)
            // power of ten too big
            throw new ArithmeticException();

我试图将此库移植到PCL模型(可移植类库),但该配置文件不支持System.Diagnostics.Process类,因此我无法确定峰值内存。

你知道其他选择吗?

更新 回应一条评论:我已经尝试应用一个捕获OutOfMemoryException捕获解决方案的解决方案,但这种情况在执行过程中发生,只在计算几分钟后才终止进程。 更清楚的是,这个库是Google项目的直接端口,即使在原始代码中,也会应用此陷阱来防止此类情况。此外,此案例经过明确测试,以评估在流程继续之前抛出异常。

0 个答案:

没有答案