Weitere ähnliche Inhalte Ähnlich wie 20082501 Leeds Pm (20) Kürzlich hochgeladen (20) 20082501 Leeds Pm2. What is DTrace?
DTrace is a comprehensive dynamic tracing
framework for Solaris™ and Mac OS X™.
DTrace provides a powerful infrastructure to
permit administrators, developers, and
service personnel to concisely answer
arbitrary questions about the behaviour of
the operating system and user programs. 4. Possible Approaches
Userspace:
• Ad-hoc logging
• Log4perl
• Debugger
Kernel space:
• strace
• ltrace
• truss 6. #!/usr/sbin/dtrace -Zs
# pl_subcalls.d
#pragma D option quiet
dtrace:::BEGIN
{
printf(quot;Tracing... Hit Ctrl-C to end.nquot;);
}
perl*:::sub-entry
{
@subs[basename(copyinstr(arg1)), copyinstr(arg0)] = count();
}
dtrace:::END
{
printf(quot; %-32s %-32s %8snquot;, quot;FILEquot;, quot;SUBquot;, quot;CALLSquot;);
printa(quot; %-32s %-32s %@8dnquot;, @subs);
} 8. FILE SUB CALLS
strict.pm bits 1
strict.pm import 1
warnings.pm import 1
fib.pl BEGIN 2
fib.pl fib 465 12. DTrace in Perl
• In 5.11.0 now
• Patch available for 5.10.0
• Can patch older Perls
• See also Devel::DTrace 15. DTrace in Perl is fast
===========================( subs )=
standard | dtrace | ratio
====================================
2.64732909 | 2.55084610 | 0.96355459
2.59817791 | 2.54752493 | 0.98050442
2.62265491 | 2.53197598 | 0.96542476
2.60479188 | 2.54577494 | 0.97734293
2.58312511 | 2.54531789 | 0.98536377
====================================
dtrace | standard | ratio
====================================
2.55562115 | 2.61360312 | 0.97781531
2.51933718 | 2.59808207 | 0.96969115
2.51130199 | 2.61182499 | 0.96151235
2.55779004 | 2.62898207 | 0.97292031
2.54250908 | 2.60577297 | 0.97572164
==================================== 17. Where is DTrace?
DTrace runs on:
Solaris (including OpenSolaris)
Mac OS (10.5 on)
DTrace could, but doesn’t, run on:
Linux
FreeBSD
Windows 19. dtrace for Linux
or something
similar
(LIKE SYSTEMTAP?)
- jdub
(NO, LIKE dtrace)
- VLAD
(like systemtap,
but not crap)
Seen on a whiteboard at OSCON 24. Mike Bryan Adam
Shapiro Cantrill Leventhal