gpt4 book ai didi

c - 64 位应用程序的内存使用开销是多少?

转载 作者:IT王子 更新时间:2023-10-28 23:28:37 26 4
gpt4 key购买 nike

从我目前发现的情况来看,很明显,为 64 位架构编译的程序使用的指针 RAM 是 32 位替代程序的两倍 - https://superuser.com/questions/56540/32-bit-vs-64-bit-systems .

这是否意味着为 64 位编译的代码平均多使用两倍 RAM比 32 位版本?

我不知何故对此表示怀疑,但我想知道真正的开销是什么。我想像 shortbytechar 这样的小类型在 64 位架构中大小相同?我不太确定 byte 虽然。鉴于许多应用程序使用大字符串(如 Web 浏览器等),在大多数实现中主要由 char 数组组成,因此开销可能不会那么大。

所以即使像 intlong 这样的数字类型在 64 位上更大,它是否会对 RAM 的使用产生重大影响?

最佳答案

这取决于编程风格(和语言,但您指的是 C)。

  • 如果您大量使用指针(或者您在某些语言中有大量引用),则 RAM 消耗会增加。
  • 如果使用大量固定大小的数据,例如 doubleint32_t,RAM 消耗不会增加。
  • 对于 intlong 等类型,取决于架构; Linux 和 Windows 之间可能存在差异。 Here你看到你有的选择。简而言之,Windows 使用 LLP64,这意味着 long long 和指针是 64 位的,而 Linux 使用 LP64,其中 long 也是 64 位的。其他架构也可能使 int 甚至 short 为 64 位,但这些并不常见。
  • floatdouble 在所有情况下都应保持相同的大小。

所以你看到它很大程度上取决于数据类型的使用。

关于c - 64 位应用程序的内存使用开销是多少?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29139829/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com