我想在ILNumerics C#中分配一个未初始化为任何值的数组。我知道我将写入数组中的每个条目,因此不需要初始化。这将有助于计算密集型任务。
我是否需要深入了解ILMemoryPool才能执行此操作?拥有一个提供此功能的标准数组构造函数并且我无法找到它会很好。
谢谢, 埃里克
答案 0 :(得分: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);