【问题标题】:How much memory uses an array with one high-index element?多少内存使用具有一个高索引元素的数组?
【发布时间】:2017-07-08 07:57:41
【问题描述】:

运行此代码会占用大约 4_000_000 字节的内存吗?

my uint32 @array;
@array[1_000_000] = 1;

【问题讨论】:

  • 如果你想要任何保证,你需要塑造你的数组,例如my uint32 @array[1_000_001]

标签: arrays memory raku


【解决方案1】:

如果您分配元素 1_000_000 并且每个元素是 4 个字节,那将是 4_000_004 个字节的内存。所以严格来说,答案是“不”:-)

但不那么迂腐:原生数组保证在内存中连续布局,因此这样的分配至少会分配一个 4 x 1_000_001 = 4_000_004 字节的内存块。正如 Christoph 在他的评论中所说,如果你想确保它是它所分配的全部,你需要使它成为一个成形的原生数组。您还将获得上限检查作为奖励。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-12-16
    • 2021-11-24
    • 1970-01-01
    • 2011-10-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    相关资源
    最近更新 更多