【问题标题】:php 7.0 Strings can bigger than 2^31,How Big?php 7.0 字符串可以大于 2^31,多大?
【发布时间】:2015-12-02 16:57:21
【问题描述】:

我确实做了一些工作来理解这一点

Source

升级说明说

在 64 位版本中支持长度 >= 2^31 字节的字符串。

但我读到了这个link

以及使用size_t定义字符串长度的types.h源代码

我猜在 32 位版本上应该是 2^32,在 64 位版本上应该是 2^64

【问题讨论】:

  • 你如何处理 2^31 个字符? :o
  • 是的,2^31B=2GB,当我做一些 php 控制台 shell 时,我过去常常处理来自文本文件格式(如 json)的大字符串
  • 有点推测,但 2^64 是 18.4 EB,所以如果这是支持的最大值,那么您可以使用的数量将受到应用程序运行系统中 RAM 的限制在。因此,可能没有规定具体的限制,因为它会随着系统的变化而变化,并且随着时间的推移而变化,因为操作系统可以支持的最大 RAM 量。
  • 正确...所以,正如@gabe3886 所说,从今天开始,受到内存的限制。

标签: php string php-7


【解决方案1】:

现在实际上是 264-1,因为这就是 size_t,用于字符串长度的 C 类型,通常在 64 位系统上。

但是,实际上,您实际上无法制作那么大的字符串,因为尚未创建可以使用接近该内存量的任何计算机的计算机。

这个的意思是,如果你有一台具有 16GB RAM 的计算机,你可以想象如果你想创建一个 15GB 的字符串。不过,您不太可能需要这样做。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 2018-06-25
    相关资源
    最近更新 更多