ios 内联函数 inline ---分解LFLiveKit
/*内联函数:用 inline 关键字修饰的函数。内联函数不是在函数调用时发生控制转移,类似于《宏》在编译时将函数体替换每一个调用的代码位置。相较于普通函数:1、普通函数(没有inline修饰)汇编时会出现Call指令,而调用Call指令需要2、函数之间的调用实则内存地址之间的调用,当函数调用执行完毕后会返回到原来执行函数的地址,所有函数调用有一定的时间开销。内联函数减少了调用开销,提高了效率(执行速度较普通函数快一些)3、集成了宏的优点(函数支持用宏代码替换)相较于宏:1、避免了宏需要的预编译,inline修饰的函数也是函数,不需要预编译2、可以使用当前类的私有成员@private及保护成员@protected3、在调用一个内联函数时会对参数进行校验,保证调用正确。看一个问题分两面:1、内联函数只是我们向编译器提供的申请,编译器不一定采用inline的形式调用2、内联函数无法承载大量、复杂代码,否则有可能抵消高效率的好处3、内联函数你不允许使用循环语句和开关 (for、while等)4、内联函数必须定义在调用之前*/inline static NSString *formatedSpeed(float bytes, float elapsed_milli) {if (elapsed_milli <= 0) {return @"N/A";}if (bytes <= 0) {return @"0 KB/s";}float bytes_per_sec = ((float)bytes) * 1000.f / elapsed_milli;if (bytes_per_sec >= 1000 * 1000) {return [NSString stringWithFormat:@"%.2f MB/s", ((float)bytes_per_sec) / 1000 / 1000];} else if (bytes_per_sec >= 1000) {return [NSString stringWithFormat:@"%.1f KB/s", ((float)bytes_per_sec) / 1000];} else {return [NSString stringWithFormat:@"%ld B/s", (long)bytes_per_sec];} }
NSLog(@"debugInfo uploadSpeed: %@", formatedSpeed(debugInfo.currentBandwidth, debugInfo.elapsedMilli));
参考:
https://www.jianshu.com/p/d557b0831c6a
https://www.cnblogs.com/iosshare/archive/2016/05/11/5483330.html
转载于:https://www.cnblogs.com/madaha/p/9789858.html
ios 内联函数 inline ---分解LFLiveKit相关推荐
- ios内联函数 inline
ios内联函数 inline 缘由 由于在学习使用UIScrollVew开发的过程中,碰到下面这个属性(设置内边距): @property(nonatomic) UIEdgeInsets scroll ...
- 内联函数inline
结论在文章末尾处! 在C++中,为了解决一些频繁调用的小函数大量消耗栈空间(栈内存)的问题,特别的引入了inline修饰符,表示为内联函数. 内联函数的处理方式是在函数的调用点直接代码展开.在计算机系 ...
- C++中的内联函数inline
1.Cpp中的内联函数 内联函数是通常与类一起使用.如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方.对内联函数进行任何修改,都需要重新编译函数的所有客户端,因 ...
- C++中的内联函数inline总结
C++中的内联函数inline总结 标签: c++编译器vector编程汇编windows 2011-08-26 21:46 13982人阅读 评论(8) 收藏 举报 分类: c/c++进行时(28) ...
- C++内联函数(inline function)
c++从c中继承的一个重要特征就是效率.假如c++的效率明显低于c的效率,那么就会有很大的一批程序员不去使用c++了. 在c中我们经常把一些短并且执行频繁的计算写成宏,而不是函数,这样做的理由是为了执 ...
- [C++] 内联函数inline 以及 auto关键字 -- C++入门(4)
本篇文章主要包括内联函数和auto关键字.其中,内敛函数包括概念,特性等:auto关键字的使用规则,使用场景等. 目录 1.内敛函数 1.1问题引入: 1.2内联函数的概念 1.3内敛函数的特性 2. ...
- 内联函数(Inline Function )
目录 什么是内联函数(Inline Function) 如何将函数编写为内联函数(how to make function inline) 例: 为什么使用内联函数(Why to use inline ...
- c语言什么是内联函数,C语言中内联函数inline的使用方法
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 来源一:比特网 来源二:东方锐智 在C++中,为了解决一些频繁调用的小涵数大量消耗栈空间或者是叫栈内存的问题,特别的引入了inline修饰符,表示为内联涵 ...
- C++ | 内联函数 inline
什么是内联函数? 在函数说明之前冠以关键字"inline",该函数就被声明为内联函数,又称为内置函数 内联函数的作用? 消除函数调用时的系统开销,提高运行速度. 应用注意事项 1. ...
最新文章
- BitmapFactory.Options.inSampleSize 的使用方法
- django 自定义日志配置
- 测试自己像什么动物软件叫什么,【测试】你最像哪种动物?
- 【Linux:开源操作系统】
- JEPaas代码_((列表)输入字段值而计算
- html type=text/css,type=text/css 有什么用啊 ?
- Web开发入门疑问收集(不定期更新)
- Jeewx-Boot 1.2 小程序官网模块发布,免费开源的微信管家平台
- 10分钟快速搭建多方视频会议系统
- 计算机桌面的文件拒绝访问,win10系统桌面文件无法重命名提示访问被拒绝的设置办法...
- Python监控服务器显卡使用情况程序
- 一文读懂Soul上市:注册用户破亿,上市是福还是祸?
- 有了它,将大大丰富VR内容,3D VR摄像机Vuze VR开启预定
- 技术人从职场中脱颖而出的成长秘诀
- 技术人员的赚钱之道-9:极思极恐,技术人员需了解的“穷人”思维与“富人”思维的差别
- python3 字典遍历操作
- 如何建立ODBC数据源
- [QT_040]Qt学习之通用对话框:QColorDialog、QFontDialog、QInputDialog
- TCP/IP 之 蓟辽督师
- CCS+C6678LE开发记录08:以太网接口测试示例之代码研究