benchmark

作者: 寻雨的人 | 来源:发表于2016-12-12 16:38 被阅读25次

函数性能测试工具

经常,我们在设计一个架构或者技术方案的时候,需要应用到某个容器或者算法,这个时候,我们往往会考虑其性能对架构或技术方案的影响。因此,我们有必要好好验证一下。

dispatch的角落,被放置着这样一个工具,你可以通过它对某段代码执行若干次并得到执行一次的平均时间,听起来是不是很有用?

函数声明

extern uint64_t dispatch_benchmark(size_tcount, void(^block)(void));

应用举例

NSObject*object = [NSObject new];

uint64_tt_0 =dispatch_benchmark(1, ^{

@autoreleasepool{

NSMutableArray*mutableArray = [NSMutableArray array];

for(size_ti =0; i <10000; i++) {

[mutableArray addObject:object];

}

}

});

NSLog(@"[[NSMutableArray array] addObject:] Avg. Runtime: %llu ns", t_0);

2016-12-12 16:27:18.763963 JSCallOCOperationDemo[7860:292800] [[NSMutableArray arrayWithCapacity] addObject:] Avg. Runtime: 420784 ns


确实很高效!那,如果我们不知道有这么个私有工具怎么办?

常规做法

NSMutableArray*mutableArray = [NSMutableArray array];

CFTimeInterval startTime = CACurrentMediaTime();

{

for(size_ti =0; i <10000; i++) {

[mutableArray addObject:object];

}

CFTimeInterval endTime =CACurrentMediaTime();

NSLog(@"Total Runtime: %g s", endTime - startTime);

}

相关文章

  • 使用JMH进行性能测试

    一、背景 在benchmark的世界里头,分为广义的benchmark和狭义的benchmark(即microbe...

  • java基准测试之JMH

    什么是Benchmark? Benchmark是一个评价方式,在整个计算机领域有着长期的应用。Benchmark在...

  • rapidxml库的使用示例

    xml benchmark 参考 XML Benchmark Results 10.10.2009 的结果 初步选...

  • Redis-性能测试

    /root/redis-5.0.0/src/redis-benchmark 1、redis-benchmark -...

  • 04. Test之benchmark

    benchmark函数一般以Benchmark开头 benchmark的case一般会跑b.N次,而且每次执行都会...

  • benchmark

    函数性能测试工具 经常,我们在设计一个架构或者技术方案的时候,需要应用到某个容器或者算法,这个时候,我们往往会考虑...

  • Benchmark

    Benchmark基准 基准测试是指通过设计科学的测试方法、测试工具和测试系统,实现对一类测试对象的某项性能指标进...

  • IM 消息的数据库操作性能测试

    1.参考demo⾥里里⾯面的benchmark模块⾥里里⾯面的WCDB-Benchmark.xcodeproj⼯工...

  • redis 性能测试

    1、使用redis-benchmark工具 redis-benchmark 工具是 redis 自带性能测试工具,...

  • JMH微基准测试快速入门

    前言JMH是一个微基准测试框架,什么是微基准测试? Micro benchmark is a benchmark ...

网友评论

      本文标题:benchmark

      本文链接:https://www.haomeiwen.com/subject/oawmmttx.html