Quick Upload

Loading...
Flash Player 9 (or above) is needed to view slideshows. We have detected that you do not have it on your computer.To install it, go here
 
Post to Twitter Post to Twitter
Myspace Hi5 Friendster Xanga LiveJournal Facebook Blogger Tagged Typepad Freewebs BlackPlanet gigya icons
SlideShare is now available on LinkedIn. Add it to your LinkedIn profile.

20082501 Leeds Pm

From AndyA, 9 months ago Add as contact

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

290 views | 0 comments | 0 favorites | 4 downloads | 0 embeds (Stats)

Categories

Technology

Groups/Events

Embed in your blog options close
Embed (wordpress.com) Exclude related slideshows Embed in your blog

More Info

This slideshow is Public
Total Views: 290 on Slideshare: 290 from embeds: 0
Flagged as inappropriate Flag as inappropriate

Flag as inappropriate

Select your reason for flagging this slideshow as inappropriate.

If needed, use the feedback form to let us know more details.

Slideshow Transcript

  1. Slide 1: DTrace and Perl
  2. Slide 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. Slide 3: Problem: Debugging a Live System
  4. Slide 4: Possible Approaches Userspace: • Ad-hoc logging • Log4perl • Debugger Kernel space: • strace • ltrace • truss
  5. Slide 5: Or use DTrace...
  6. Slide 6: #!/usr/sbin/dtrace -Zs # pl_subcalls.d #pragma D option quiet dtrace:::BEGIN { printf(\"Tracing... Hit Ctrl-C to end.\\n\"); } perl*:::sub-entry { @subs[basename(copyinstr(arg1)), copyinstr(arg0)] = count(); } dtrace:::END { printf(\" %-32s %-32s %8s\\n\", \"FILE\", \"SUB\", \"CALLS\"); printa(\" %-32s %-32s %@8d\\n\", @subs); }
  7. Slide 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. Slide 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. Slide 9: DTrace is... •Fast •Unobtrusive •Safe
  10. Slide 10: Current Tools
  11. Slide 11: DTrace
  12. Slide 12: DTrace in Perl • In 5.11.0 now • Patch available for 5.10.0 • Can patch older Perls • See also Devel::DTrace
  13. Slide 13: Probes Available • Subroutine Entry • Subroutine Exit
  14. Slide 14: Probes Possible • Regex Compilation • eval / die • Anything you like...
  15. Slide 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. Slide 16: DTrace Limitations • Perl stack traces • Perl data • Limited Platforms • Probe Effect
  17. Slide 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. Slide 18: It’s OK: Linux has SystemTap!
  19. Slide 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. Slide 20: \"That's the difference between a knockoff and the genuine article.\" Adam Leventhal, DTrace developer, Sun
  21. Slide 21: Who made DTrace?
  22. Slide 24: Mike Bryan Adam Shapiro Cantrill Leventhal
  23. Slide 25: Andy Armstrong andy@hexten.net http://hexten.net/