Iphone 通过大量迭代加速For循环?目标C

Iphone 通过大量迭代加速For循环?目标C,iphone,objective-c,xcode,memory-management,for-loop,Iphone,Objective C,Xcode,Memory Management,For Loop,我的Open GL ES应用程序中有以下简单For循环: for (NSValue * value in pointerStorageArray) { NSLog(@"Freeing Malloced Data"); free(value); } 问题是pointerStorageArray包含大约40000个数据项(一个3D对象的所有数据),因此循环大约需要一分钟才能完成 有没有办法加快完成循环所需的时间 编辑 这个问题现在说明了连续18小时不编码的重要性。删除NSLog

我的Open GL ES应用程序中有以下简单For循环:

for (NSValue * value in pointerStorageArray) 
{
    NSLog(@"Freeing Malloced Data");

    free(value);
}
问题是pointerStorageArray包含大约40000个数据项(一个3D对象的所有数据),因此循环大约需要一分钟才能完成

有没有办法加快完成循环所需的时间

编辑


这个问题现在说明了连续18小时不编码的重要性。删除NSLog语句将其速度从5分钟提高到4秒;)

> P>如果减慢实际上是由重复调用<代码> For()/代码>引起的,那么你可以考虑分配几个更大的连续内存块,而不是40000个单独的内存块。
与往常一样,您应该找到一种方法来分析代码,以准确确定瓶颈在哪里。

如果没有
NSLog
功能,我希望它运行得更快。你能在没有留言的情况下试试吗?天哪,我是个白痴。非常感谢。现在只需5秒钟即可运行:)很高兴听到这句话(
:)
-这是一个很好的例子,说明了在开始优化之前始终要对代码进行概要分析。免费调用是一个瓶颈。我的C语言知识不是很好。问题是,正在从for循环调用a malloc语句,并分配(如您所说)40000个单独的内存块。你能给我指出如何合并它们的正确方向吗?理想情况下,你可以将所有资源从一个单独的池中分配出来,然后扔掉这个池。不过,我从来没有在iOS上这样做过,所以我不知道你会怎么做。