Your SlideShare is downloading. ×
0
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
20082501 Leeds Pm
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

20082501 Leeds Pm

1,104

Published on

A presentation given to Leeds Perl Mongers on the subject of DTrace integration with Perl.

A presentation given to Leeds Perl Mongers on the subject of DTrace integration with Perl.

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,104
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
23
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  1. DTrace and Perl
  2. 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.
  3. Problem: Debugging a Live System
  4. Possible Approaches Userspace: • Ad-hoc logging • Log4perl • Debugger Kernel space: • strace • ltrace • truss
  5. Or use DTrace...
  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); }
  7. #!/usr/bin/perl use strict; use warnings; sub fib { my $n = shift; return 1 if $n < 2; return fib( $n - 1 ) + fib( $n - 2 ); } print fib( 12 );
  8. FILE SUB CALLS strict.pm bits 1 strict.pm import 1 warnings.pm import 1 fib.pl BEGIN 2 fib.pl fib 465
  9. DTrace is... •Fast •Unobtrusive •Safe
  10. Current Tools
  11. DTrace
  12. DTrace in Perl • In 5.11.0 now • Patch available for 5.10.0 • Can patch older Perls • See also Devel::DTrace
  13. Probes Available • Subroutine Entry • Subroutine Exit
  14. Probes Possible • Regex Compilation • eval / die • Anything you like...
  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 ====================================
  16. DTrace Limitations • Perl stack traces • Perl data • Limited Platforms • Probe Effect
  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
  18. It’s OK: Linux has SystemTap!
  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
  20. quot;That's the difference between a knockoff and the genuine article.quot; Adam Leventhal, DTrace developer, Sun
  21. Who made DTrace?
  22. Mike Bryan Adam Shapiro Cantrill Leventhal
  23. Andy Armstrong andy@hexten.net http://hexten.net/

×