奇怪的 SDL 内存使用情况取决于每像素位数

发布于 2024-08-16 05:29:43 字数 162 浏览 5 评论 0原文

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

C++ 海湾合作委员会

感谢

I have a very simple SDL program that uses only 1MB of memory with 32 bits per pixel, 2.4MB with 24 bits per pixel, 1.9MB with 16 bits per pixel, and 1.4MB with 8 bits per pixel. what is with this strange memory usage? why does the most bits per pixel take up the least amount of memory?

C++
GCC

thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

落墨 2024-08-23 05:29:43

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

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

Perhaps internal conversion buffers. If your surface bpp doesn't match your hardware surface you may need to store the full buffer in memory, whereas SDL may be able to use that surface directly otherwise. This is just a guess offhand.

But looking at a process in top or task manager may not be the best way to get a handle on what's using memory. If you're on Linux you can try a tool such as valgrind to get a very good idea of where memory is going.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文