1

我想在 ILNumerics C# 中分配一个未初始化为任何值的数组。我知道我将覆盖数组中的每个条目,因此不需要对其进行初始化。这将有助于计算密集型任务。

我是否需要深入 ILMemoryPool 才能做到这一点?如果有一个提供此功能的标准数组构造函数会很好,但我一直找不到它。

谢谢,埃里克

4

1 回答 1

0

你是对的,内存必须来自内存池。但是有一个包装器 'ILMath.New(int)' 以某种方式简化了访问:

double[] mem = ILMath.New<double>(1000000);
ILArray<double> A = ILMath.array(mem, ILMath.size(1000,1000)); 

请记住,如果您正在使用内存中的内存,则ILArray<T>不需要手动跟踪它。一旦 ILArray 超出范围,它会自动释放并返回到池中。

相反,如果您需要 System.Array 进行其他直接计算,则 ILNumerics 内存管理无济于事,您需要事后手动将内存还给池:

ILMath.free(mem);  
于 2014-03-05T17:19:48.067 回答