Objective c 演示函数返回值和函数不返回任何值的性能差异,这两种函数的代码相同

Objective c 演示函数返回值和函数不返回任何值的性能差异,这两种函数的代码相同,objective-c,function,Objective C,Function,出于好奇,我在目标C中做了一个实验: 在开始实验之前,我的假设是函数返回值应该比没有返回值的函数花费更多的时间(纳秒) 编写了两个具有相同编号和相同代码但一个返回值和另一个不返回值的函数 -(void)methodNotReturningTheValue { //Some Codes + @"" } -(NSString*)methodReturningTheValue { //Some Codes return @""; } 调用函数前后的时间

出于好奇,我在目标C中做了一个实验:

  • 在开始实验之前,我的假设是函数返回值应该比没有返回值的函数花费更多的时间(纳秒)

  • 编写了两个具有相同编号和相同代码但一个返回值和另一个不返回值的函数

        -(void)methodNotReturningTheValue
    {
         //Some Codes  + @""
    }
    
    -(NSString*)methodReturningTheValue
    {
       //Some Codes 
        return @"";    
    }
    
  • 调用函数前后的时间以纳秒为单位。结果如下: 例如:

  • 调用MethodNotReturning之前的时间值:1411033150.946451

    调用MethodReturning之前的时间值:1411033150.946978

    方法返回的时间差(前后)值:0.000527

    调用MethodReturning之前的时间值:1411033150.947947

    调用MethodReturning之前的时间值:1411033150.948464

    方法返回的时间差(前后)值:0.000517

  • 结果不一致。有时methodreturningvalue消耗的时间更大,有时methodNotReturning消耗的时间更大。可能是[[NSDate date]时间间隔自1970年起的工作波动;不允许实验计算函数返回和不返回值所消耗的时间

  • 我是否听起来不相关,或者是否有任何方向或解决方案来解决这一好奇心: 我的问题:如何用任何语言演示函数返回值和不返回(Void)的函数之间的性能差异


  • 谢谢大家!

    方法返回的值存储在寄存器中(至少在ARM和