gpt4 book ai didi

c - 在 iPhone 上进行大量的 malloc 和 free 操作是否很慢?

转载 作者:行者123 更新时间:2023-12-03 20:22:28 24 4
gpt4 key购买 nike

我有一个点数据数组(用于粒子),它的大小不断变化。为了适应不断变化的大小,我使用如下代码来创建大约 60 Hz 的正确大小的缓冲区。

 free(points);
points = malloc(sizeof(point3D) * pointCount);

这是可以接受的还是有其他方法可以做到这一点?这是否会导致我的应用程序变慢或导致内存抖动?当我在模拟器中的仪器下运行它时,它看起来并不是特别糟糕,但我知道模拟器与设备不同。

编辑:在撰写本文时,如果没有开发人员许可证,则无法在设备上进行测试。我没有许可证,无法在设备上进行配置。

最佳答案

分配内存相对于某些事物来说很快,而相对于另一些事物来说则很慢。 Objective-C 程序平均每秒执行的分配次数超过 60 次。对于几百万字节的分配,malloc+free should take less than a thousand of a second 。与算术运算相比,这很慢。但与其他事情相比,它很快。

在你的情况下它是否足够快是一个需要测试的问题。当然可以在 iPhone 上进行 60 Hz 内存分配 - 处理器以 600 MHz 运行。

不过,这看起来确实是重用内存的一个不错的选择。跟踪池的大小并在需要更多时分配更多。不分配内存总是比分配内存更快。

关于c - 在 iPhone 上进行大量的 malloc 和 free 操作是否很慢?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3705240/

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