哪个选项给了我更好的性能:iOS中的变量声明或隐式函数

时间:2013-08-08 00:21:09

标签: iphone ios memory-management

并不总是更少的代码更好,这是我上一课的学习

所以它来找我这个问题

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

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

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

这是一个非常短的差异(2行对1)但当你用更复杂的代码和函数减少更多的代码时,这可能会更加复杂

提前感谢答案

3 个答案:

答案 0 :(得分:4)

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

后者会在堆栈上保存一个变量声明,这对于你正在使用的上下文来说肯定是可以忽略的。

没有任何明显的速度改进,所以只需坚持良好的编码风格,制作一个变量,并在回读自己的代码时让自己头疼。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

速度没有可察觉的变化,因为它们都执行相同的动作,所以也没有节省内存。

举一个类比,什么需要更少的思考,阅读“这是一个男孩!”或者“这是一个男孩!”?

无论两者之间的拼写区别如何,你花费大约相同的时间来处理信息,而且时间几乎为零。

回答你的问题(或者我认为你的问题)。两者之间的内存节省几乎没有差别,并且您不会节省任何处理时间。

让代码更容易阅读也更好。尝试阅读破碎的代码可能会浪费更多的时间,而不是像处理这样微小的差异,就像在你的例子中一样。