So I made the perhaps unwise move of twitter-kvetching about NYTProf and memory profiling [0] in which I said: "Perl needs better memory- use profiling. NYTProf is *amazing* but only addresses CPU usage."
Tim Bunce popped up (hurrah for twitter search functions) and in the best, most politest, most open-source sort of way, invited me to put up or shut up [1]: "@trochee Memory profiling of some kind is on the roadmap for NYTProf, but won't happen soon without help. Want to contribute?" and yes, I would like to contribute. I do love Devel::NYTProf, but AFAICT, there is no memory-use profiling. Followup conversations (also twittered!) suggested that I should post here to raise the question and spur Tim into laying out his plans for Devel::NYTProf memory-profiling support. WHAT: What I'd really like from a good memory profiler, is a *non-invasive* way of finding out the size (perhaps only the maximum size?) and duration (or at least if it was garbage-collected before termination) of any variable, whether lexically- or package-scoped. Ideally, objects could also report their entire size, but that might get complicated with things like singletons and inside-out objects. When I say non-invasive, I really mean "in the current spirit of Devel::NYTProf", in that NYTProf does non-invasive CPU/time profiling (can you imagine how much you'd have to litter your code with Benchmark calls to get the same kind of information?). In this respect, Devel::Size and Devel::Cycle are "invasive", because they require explicit markup of code one might be interested in. There are some good resources in packages like Devel::Size and Devel::Cycle that might be folded into such a project. Also, I found some preliminary work from Jonathan T. Rockaway [2] that looks like it might be worth giving a poke at. HOW MUCH: I'd like to help, with the caveat that I know very little about perlguts, but I'm a generally savvy programmer and problem-solver. But I do like tools, and NYTProf is one of my favorites! --Jeremy [0] http://twitter.com/trochee/status/3874077719 [1] http://twitter.com/timbunce/status/3884518663 [2] http://blog.jrock.us/articles/Memory%20Profiling%20part%201.pod --~--~---------~--~----~------------~-------~--~----~ You've received this message because you are subscribed to the Devel::NYTProf Development User group. Group hosted at: http://groups.google.com/group/develnytprof-dev Project hosted at: http://perl-devel-nytprof.googlecode.com CPAN distribution: http://search.cpan.org/dist/Devel-NYTProf To post, email: [email protected] To unsubscribe, email: [email protected] -~----------~----~----~----~------~----~------~--~---
