1

我有一个非常简单的 SDL 程序,它只使用 1MB 的内存,每像素 32 位,每像素 24 位的 2.4MB,每像素 16 位的 1.9MB,每像素 8 位的 1.4MB。这种奇怪的内存使用是怎么回事?为什么每个像素最多的位占用最少的内存?

C++ GCC

谢谢

4

1 回答 1

2

也许是内部转换缓冲区。如果您的表面 bpp 与您的硬件表面不匹配,您可能需要将完整的缓冲区存储在内存中,而 SDL 可能能够直接使用该表面。这只是随手猜测。

但是在顶部或任务管理器中查看进程可能不是了解正在使用内存的内容的最佳方式。如果您使用的是 Linux,您可以尝试使用 valgrind 之类的工具来很好地了解内存的去向。

于 2009-12-25T05:43:28.533 回答