Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
BruteForce的Objective-C代码块效率_Objective C_Objective C Blocks - Fatal编程技术网

BruteForce的Objective-C代码块效率

BruteForce的Objective-C代码块效率,objective-c,objective-c-blocks,Objective C,Objective C Blocks,就CPU和内存使用而言,Objective-C中的C风格编码块的效率如何?我正在为Objective-C创建一个bruteforcing库,我需要尽可能地优化它。在bruteforcer的每次迭代中都会调用所使用的代码块。与函数式语言一样,创建块(闭包)可能需要在堆上进行分配(复制块时肯定会发生这种情况,如果只在内部框架中使用块,编译器可能会避免这种情况) 任何情况下,如果这种情况发生在你的循环之外,你只需付出一次代价。调用块应该花费与调用C++实例对象上的虚拟方法相同的代价(因为这是大致相同的

就CPU和内存使用而言,Objective-C中的C风格编码块的效率如何?我正在为Objective-C创建一个bruteforcing库,我需要尽可能地优化它。在bruteforcer的每次迭代中都会调用所使用的代码块。

与函数式语言一样,创建块(闭包)可能需要在堆上进行分配(复制块时肯定会发生这种情况,如果只在内部框架中使用块,编译器可能会避免这种情况)

任何情况下,如果这种情况发生在你的循环之外,你只需付出一次代价。调用块应该花费与调用C++实例对象上的虚拟方法相同的代价(因为这是大致相同的任务

“足够有效”,我想说的是。在担心编译器产生的正确程序集之前,可能有许多其他优化,比如使用GCD。(那些捕获变量的)总是在堆栈上分配,而不是在堆上。它们仅在复制时移动到堆中。非闭包块是静态分配的。