2016 DTrace conference 小结
Leave a reply
DTrace
在查找内存泄露这个令人头疼的问题方面是一个特别好的工具。这不,在前两天的FreeBSD
邮件列表里,又利用DTrace
解决了内存泄露的一个bug
。命令很简单:
# dtrace -n 'dtmalloc::CAM_CCB: {printf("%s", execname); stack();}'
通过stack()
就可以看到哪里进行了malloc
。Patch
如下:
diff --git a/sys/cam/cam_periph.c b/sys/cam/cam_periph.c
index 85b2ff9..1f7be4f 100644
--- a/sys/cam/[......]
Jesús Cea Avión
(个人博客:https://blog.jcea.es/,为python
开发DTrace probe
的工程师)近日做了一个关于DTrace
和Python
的演讲,下载地址在这里:http://pan.baidu.com/s/1bo4IGYb,感兴趣的朋友可以看看。
[……]
Pedro Giffuni
日前将FreeBSD
系统的libdtrace
模块中的分配内存代码做了修改(commit ID
:https://svnweb.freebsd.org/base?view=revision&revision=296816):以前是malloc
一块内存,然后用bzero
将这块内存清0
;现在统一用calloc
函数来完成上述操作。Pedro Giffuni
本人的说法是“calloc(3) is faster and occasionally safer than malloc(3) + bzero(3).
”。下面就看illumos
社区是否会做同样的改动了。[……]
Jim Mauro
写过一个度量系统调用执行时间的DTrace
脚本(参考这里:Measuring the execution of each system call):
#!/usr/sbin/dtrace -qs
syscall:::entry
/pid == $target/
{
@count[probefunc] = count();
self->st[probefunc] = timestamp;
}
syscall:::return
/self->st[probefunc]/
{
this-&[......]