我将处理大约3.2亿个数据点,用于高分辨率波形。每个数据点需要两个浮点数(XY坐标),总共占用8个字节。
为了一次性分配这些内存,我计划使用如下的结构体:
为了一次性分配这些内存,我计划使用如下的结构体:
public struct Point
{
public float X; //4-bytes
public float Y; //4-bytes.
}
由于结构体是值类型,我假设它仅使用每个变量所需的内存量,以及CLR(公共语言运行时)使用的一些小型固定量。
有没有办法在应用程序运行时计算出一个结构体将使用多少内存?也就是说,如果我知道以下信息:
- 结构体中有多少个变量。
- 每个变量使用多少字节。
- 在某个时间点上有多少个结构体实例。
GC
类具有一些内存测量工具。 - j-pplot(xs, ys)
而不是plot(xys)
,机器学习库等等也是如此。对我来说,AoS更合乎逻辑,因为每个点都是一件事情,但它并不会使速度更快。 - Frames Catherine White