【发布时间】:2023-04-09 18:45:01
【问题描述】:
我有一个非常简单的 SDL 程序,它仅使用 1MB 内存,每像素 32 位,2.4MB 每像素 24 位,1.9MB 每像素 16 位,1.4MB 每像素 8 位。这种奇怪的内存使用是怎么回事?为什么每个像素的位数最多占用的内存最少?
C++ 海合会
谢谢
【问题讨论】:
-
程序以不同的速度运行,每个像素的位数不同
标签: c++ gcc sdl bits-per-pixel
我有一个非常简单的 SDL 程序,它仅使用 1MB 内存,每像素 32 位,2.4MB 每像素 24 位,1.9MB 每像素 16 位,1.4MB 每像素 8 位。这种奇怪的内存使用是怎么回事?为什么每个像素的位数最多占用的内存最少?
C++ 海合会
谢谢
【问题讨论】:
标签: c++ gcc sdl bits-per-pixel
可能是内部转换缓冲区。如果您的表面 bpp 与您的硬件表面不匹配,您可能需要将完整的缓冲区存储在内存中,而 SDL 可能能够直接使用该表面。这只是一个猜测。
但是在顶部或任务管理器中查看进程可能不是了解正在使用内存的内容的最佳方式。如果您使用的是 Linux,则可以尝试使用 valgrind 等工具来很好地了解内存的去向。
【讨论】: