DTrace的变量类型
来源:互联网 发布:双11淘宝手表 编辑:程序博客网 时间:2024/05/16 07:59
要想写好DTrace脚本,了解何时选用何种类型变量是非常重要的。在这里,小编推荐DTrace大神Brendan Gregg的文章《DTrace variable types》(http://dtrace.org/blogs/brendan/2011/11/25/dtrace-variable-types/)。文章很短,值得每个人一读。小编总结了一下,就是选用变量类型的优先级是:
aggregation > clause local > thread local > scalar > associative array。
也就是说,能用aggregation存储变量最好,不行就考虑clause local,再不行就考虑thread local......以此类推。另外要注意,scalar和associative array不是multi-CPU safe的。
此外,小编还要补充以下2点:
(1)clause local变量的有效期就在probe的一次触发过程内,如果这个probe有多个clause{},那么clause local变量在这些个clause{}内都可以被访问,而且这些个clause{}是顺序执行的。大家可以参考下面这个例子(http://dtrace.org/guide/chapter3.html):
此外,如果clause local变量没有被初始化,它的值是随机的,取决于当时clause local变量所在的内存的值。关于这一点可以参考一篇帖子:http://thr3ads.net/dtrace-discuss/2007/05/381363-Clause-local-Variables-and-two-different-probes-is-this-variable-shared。
(2)在多个CPU同时访问associative array同一个key/value元组时,associative array不是multi-CPU safe的,但是如果可以保证不会出现多个CPU同时访问associative array同一个key/value元组时,associative array是multi-CPU safe的。这一点得到DTrace作者Adam的确认:http://www.listbox.com/member/archive/184261/2014/04/sort/time_rev/page/1/entry/3:15/20140410014249:EB3CCA90-C072-11E3-8189-9F9034AA57AC/。
如果你对DTrace感兴趣,欢迎关注DTrace公众号(微信号:chinadtrace),介绍关于DTrace的使用技巧,经验分享,话题讨论等等。也非常欢迎你转发给其它对DTrace感兴趣的朋友。
- DTrace的变量类型
- dtrace的使用
- DTrace
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- 一些有用的DTrace代码
- DTrace动态变量泄露(dynamic variable drops)问题
- Solaris10中新的Dtrace工具
- Windows Hook和Dtrace的区别
- Linux 下的调式诊断工具 DTrace
- 使用Dtrace检查recv()的返回值
- 变量的存储类型
- 变量的类型转换
- 变量类型的转换
- 变量的存储类型
- 复杂的变量类型
- IEEE征文,一共两个,一个是智能健康,一个是社会网络研究
- java转换带英文的日期字符串
- 如何给CCSprite添加自定义事件
- 在学习php时的一些小问题的记录
- 穷人也能玩摄影
- DTrace的变量类型
- 理解ASP.NET 2.0中的单点登录
- Android 动画之TranslateAnimation应用详解
- hdu 2191-wust9(多重背包典型)
- 写给考研学生:凭什么让好大学要你
- VMware虚拟机安装教程图解,虚拟机详细使用教程
- 用ASP.NET AJAX框架扩展HTML Map控件
- hadoop在ubuntu下的安装配置
- 判断IP地址是否合法