我正在将 Windows 7 库移植到嵌入式平台。为了做到这一点,我的雇主问我移植系统后需要多少内存(和 CPU,但现在让我们专注于内存)——这样他就可以根据我的需要调整电路板的大小。
我在互联网上看了一下,似乎没有太多关于这个问题的信息,因此我的问题是:
为了粗略了解闪存中代码的内存占用量(仅代码没有内存用于数据),我在互联网上读到我应该对我使用的所有 dll 的大小求和。似乎所有编译器和平台都为代码足迹提供了不同的大小,但总体而言,代码(不含数据)的大小通常非常接近。你确认吗?
为了处理仅数据所需的内存(堆+堆栈但没有代码),我查看了任务管理器(和进程资源管理器)。我使用的数据总量似乎在“峰值工作集”中指定。不过我有几个问题:
2.a. “工作集”是否包括堆+堆栈内存还是仅对应于堆?
2.b。“工作集”是否也包括代码的大小?(因为我在 Windows 7 上,代码也存储在 RAM 中,而不是像嵌入式系统那样存储在闪存中),还是只对应于数据?
2.c。似乎“峰值工作集”反映了从程序启动时实际在 RAM 中的最大物理内存量,但它没有反映程序之后可能占用的大小(如果我碰巧在运行时分配内存 -这会很糟糕;) - 峰值会继续增加)。你确认吗?
2.d。因此,您是否还确认如果我不在运行时分配内存,“峰值工作集”应该大致是我的嵌入式系统需要的最大 RAM 大小?由于系统技术的差异,最大的尺寸差异......
谢谢,
安托万。