Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/43.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
Iphone 哪个选项让我的性能更好:iOS中的变量声明还是隐式函数_Iphone_Ios_Memory Management - Fatal编程技术网

Iphone 哪个选项让我的性能更好:iOS中的变量声明还是隐式函数

Iphone 哪个选项让我的性能更好:iOS中的变量声明还是隐式函数,iphone,ios,memory-management,Iphone,Ios,Memory Management,并非总是代码越少越好,这是我学到的最后一课 所以我想到了这个问题 在内存管理、速度等方面,还有什么更好的呢 UIAlertView *message = [[UIAlertView alloc]initWithTitle:@"Notification" message:@"My message" de

并非总是代码越少越好,这是我学到的最后一课

所以我想到了这个问题

在内存管理、速度等方面,还有什么更好的呢

UIAlertView *message = [[UIAlertView alloc]initWithTitle:@"Notification" 
                                                 message:@"My message" 
                                                delegate:self 
                                       cancelButtonTitle:@"OK"
                                       otherButtonTitles:@"Cancelar",nil];
[message show];

这是一个非常短的差异(两行与一行相比),但当您使用更复杂的代码和函数减少更多的代码时,这可能会更加复杂


提前感谢您的回答

堆上分配的内存是相同的,即
UIAlertView
实例所需的内存

后者将在堆栈上为您保存一个变量声明,这对于您正在使用的上下文来说是绝对可以忽略的


不会有任何明显的速度提升,所以只要坚持好的编码风格,创建一个变量,在回读自己的代码时就不会让自己头疼。

虽然第二种解决方案占用的内存和时间会少一点,但通常情况下,代码最好是可读的,而不是优化的。在大多数情况下,代码是由一组人开发的,最好是每个阅读该代码的人都能快速、轻松地理解它在做什么。作为一般规则,除非证明有必要,否则不要进行优化(例如,它明显减慢了速度或导致使用了太多内存)。

速度不会有明显变化,而且由于它们都执行相同的操作,也不会节省内存

打个比方,读“它是个男孩!”或“它是个男孩!”有什么不需要思考的呢

不管两者之间的拼写差异如何,处理信息所需的时间大致相同,而且时间几乎为零

回答你的问题(或者我认为是你的问题)。这两者在内存节省方面几乎没有区别,并且不会节省任何处理时间


使代码更易于阅读也更好。尝试读取被破坏的代码可能比尝试处理如此微小的差异(如您的示例)浪费更多的时间。

我相信两者都做相同的事情,因此使用相同的内存量。。。即使他们没有这样做,从一个切换到另一个也几乎不会节省内存。至于速度,如果有差异(可能没有),你将无法察觉。如果你的问题得到了回答,确保你接受其中一个。否则,这看起来像是一个未完成的问答。谢谢大家的回答。现在很清楚,过程是相同的,即使它需要两行或三行以上。通常,代码最好是可读的,而不是优化+1。不管怎样,编译器通常可以优化您自己尝试做的大部分工作。
[[[UIAlertView alloc]initWithTitle:@"Notification" 
                           message:@"My message" 
                          delegate:self 
                 cancelButtonTitle:@"OK" 
                 otherButtonTitles:@"Cancelar",nil]show];