RR 383: “Rbspy: A New(ish) Ruby Profiler!” with Julia Evans episode artwork

EPISODE · Oct 9, 2018 · 49 MIN

RR 383: “Rbspy: A New(ish) Ruby Profiler!” with Julia Evans

from Ruby Rogues · host Charles M Wood

Panel: - https://twitter.com/cmaxw?lang=en- https://www.linkedin.com/in/kobaltz- David Richards Special Guests: Julia EvansIn this episode of Ruby Rogues, the panel talks with Julia Evans who is a software engineer at Stripe and lives in Montreal, Quebec, Canada. The panel talks with Julia about her tool Ruby Spy among other topics. Check it out!Show Topics:1:34 – Julia gives her background.1:52 – Chuck: You’ve been on the show before. Listeners, go check it out!2:30 – What is Ruby Spy?2:09 – Julia: I wanted to know WHY my computer was doing what it was doing. I felt that it was my right, so I wrote that program.3:20 – Julia: This does have these profiling tools in Java. I thought it was unfair that Java had better tools than Ruby. I figured Ruby should have it, too.3:44 – Chuck talks about tools and Ruby Spy.4:05 – Julia recommends it.Julia: You had to install the gem in order to use it.4:30 – Chuck: some people say that it has affected their performance.4:42 – Julia: Ruby Spy is a separate process.Julia continues this conversation and goes in-depth of what Ruby Spy is, etc.5:27 – When would you use something like this, and what kind of data would get you back to debug the slow points.5:43 – Julia: When you run Ruby Spy it will...6:20 – Chuck: Does it give you method names?6:25 – Julia: Yes, 20% in this method or...6:37 – I can see how that would be helpful on certain aspects. Being able to narrow down the 1,000 methods where you cab get your biggest bang for your buck.7:05 – Julia comments.7:35 – Chuck: I know people pay for Relic...7:56 – Chuck: When it tells you which method is taking a long time, will it look at the stack and THIS method is insufficient b/c this other method is insufficient? How does it do that?8:35 – Julia answers the questions.8:58 – Chuck: I’d imagine that it could keep anything in memory. Did you have to do a bunch of work where THAT means THAT?9:20 – Julia answers.Julia: The differences weren’t that big between the different versions.9:54 – Julia goes through the different ways the versions are different.11:56 – Panelist asks a question.Is this meant for Ruby Scripts?12:10 – Julia: It doesn’t care – as long as you are using the Ruby Interpreter.12:25 – Chuck: Sometimes my performance issues is Ruby, and sometimes it’s the database. For Ruby it will sit there and wait for IO. Is that a blind spot that you will have in Ruby Spy?12:54 – Julia: Great question. There are 2 ways to do profiling.Julia explains these two ways. 13:54 – Wall Clock Time.14:04 – Chuck: Your computer has a speed and however long it takes to run one cycle. It is similar, but...14:26 – I guess as long as it’s relative – I was looking at these graphs you wrote.14:51 – Julia.14:56 – Panelist: That has been my issue. Changing context into a profiler...15:27 – Julia.15:38 – Chuck: Do you have to run it through something...?15:49 – Julia.15:53 – Chuck: Is that the most effective way to look at the data through Ruby Spy?16:07 – Julia: I twill show you the output as it is profiling. 2 visualizations: flame graph and...16:45 – Chuck.16:49 – Julia: It is the only visualization that I know of.17:00 – Chuck: I don’t know.17:05 – Julia: You have spent this amount of % to...How much time was spent in this function or that function?I feel that the flame graph is much more helpful than a list of percentages.17:33 – Chuck: What are you looking at in the flame graph?17:37 – Guest: Basically what time was spent in that function. You look at what is big, and then you figure out if that is something to optimize or not. You go to the docs and...18:36 – Jackal.18:40 – Main problem that I would run into is the information OVERLOAD.Now you have the action controllers and all these other components that aren’t normally visual.Panelist asks a question to Julia.19:29 – Julia: It does give you everything. If you have a real serious problem often the answer will really jump out at you. What I would say – if something is really slow it is right there.20:08 – Chuck: You will see the name of the method?20:15 – Chuck: Any other information it will give you?20:22 – Julia: The line number.20:28 – Chuck asks another question.20:41 – Chuck: Success stories?20:45 – Julia: Yes, I do. GitHub – success stories.Julia gives us one of her success stories. This user said that it helped them by 30%.21:28 – I can’t imagine using a Rail app that is over 10 years old. So much as changed! A lot of the documentation would be harder to find.22:00 – Julia gives another example of a success story.22:10 – When it goes to production – my brain turns off and get jittery. Figure out what happens in production and I wouldn’t want to guess for an app that couldn’t be down. This is what is happening right here and right now.22:46 – Chuck: How do they get it out into production...22:57 – Julia: Through GitHub that you can download. If you are on a Mac and your developing you can do it through Home Brew.23:17 – Chuck and Julia go back and forth.23:27 – Panelist: You don’t need to have it all the time, but a good tool.23:44 – Julia: I want people to use it but not all the time; only when they need it.23:58 – Panelist: I think on a lot of these scripts...Rails Panel – Panelist mentions this. 25:02 – Panelist asks her a question.25:12 – Pie Spy is something else that someone wrote.25:28 – Julia: Ruby Spy came first, and Pie Spy is inspired Ruby Spy. He did a good job building that.25:50 – Advertisement – Code Badges26:35 – People still use PHP?26:42 – Julia: Yep!26:47 – Chuck talks about his neighbor and how he raves about this feature or that feature.27:07 – In PHP’s defense it has come a long way. I think they are at version 7 or version 8. Sounds like they did a lot of new things with the language.27:31 – Julia: Instead of that or this language is better – what TOOLS can we use? I hear Ruby users make fun of Java, but Java has great tools. What can we learn from that language rather than bashing the other languages?28:13 – Chuck chimes-in.Dot.net.28:58 – Chuck: Let’s talk about that with the opensource.29:09 – Julia talks about the opensource project.30:30 – Julia: I asked my manager at Stripe to do this sabbatical in advance. I worked on it for 3 months. I got a check from Segment.31:05 – Panelist adds in his comments and asks a question.31:26 – Julia never used it.31:32 – I have done a lot with Ruby Motion in the past. I am curious how that would work with Ruby Spy?32:18 – IOS is pretty locked down, so I don’t think that would fly.32:36 – Chuck talks about Ruby Motion and how he thinks Ruby Spy would / wouldn’t fit.32:56 – What is funny about that, Chuck, is that you can ALT click...34:07 – Chuck mentions another app.34:17 – Julia.34:40 – Chuck.35:03 – Chuck: What else are you doing with Ruby Spy that is new?35:05 – Julia: Not much.It’s fun to see people come in to make contributions.35:33 – Panelist: Here is a suggestion, some kind of web server that you could...35:57 – Great idea.36:04 – Chuck: It wouldn’t be hard to embed it.36:12 – Julia: Sharing it between...so we don’t have to build the same thing twice.36:33 – Chuck and Julia go back-and-forth about Ruby Spy and Pie Spy,37:23 – Julia: Pearl was my first language, and I still love it.37:32 – Chuck: I guess I can’t knock it because I really haven’t tried it.37:48 – Ruby was inspired by Pearl so there’s that.37:57 – Chuck: How do people start using your tool? What is your advice?38:01 – Julia: Yeah just try it and see. Install it through Home Brew if you have a Mac.38:25 – Chuck: Picks!38:32 – Advertisement – Get a Coder Job.39:07 – Picks!Links:- https://devchat.tv/get-a-coder-job/- http://www.rubymotion.com- https://rubyonrails.org- https://github.com/tmm1/stackprof- https://rbspy.github.io- https://github.com/dejan/rails_panel- https://twitter.com/b0rk- https://jvns.ca- https://github.com/jvns- https://www.linkedin.com/in/jvans/?originalSubdomain=caSponsors:- https://sentry.io/welcome/- https://www.digitalocean.com/- https://devchat.tv/get-a-coder-job/Picks:Dave- https://www.amazon.com/Larin-RBV-5-5-Multi-Function-Vise/dp/B00EQ4ZUYW- https://www.hisense-usa.com/appliances/refrigerators-freezers/fe703Charles- https://phoenixframework.org/- https://vuejs.org/- https://devchat.tv/views-on-vue/- Side Projects-Become a supporter of this podcast: https://www.spreaker.com/podcast/ruby-rogues--6102073/support.

Panel: - https://twitter.com/cmaxw?lang=en- https://www.linkedin.com/in/kobaltz- David Richards Special Guests: Julia EvansIn this episode of Ruby Rogues, the panel talks with Julia Evans who is a software engineer at Stripe and lives in Montreal, Quebec, Canada. The panel talks with Julia about her tool Ruby Spy among other topics. Check it out!Show Topics:1:34 – Julia gives her background.1:52 – Chuck: You’ve been on the show before. Listeners, go check it out!2:30 – What is Ruby Spy?2:09 – Julia: I wanted to know WHY my computer was doing what it was doing. I felt that it was my right, so I wrote that program.3:20 – Julia: This does have these profiling tools in Java. I thought it was unfair that Java had better tools than Ruby. I figured Ruby should have it, too.3:44 – Chuck talks about tools and Ruby Spy.4:05 – Julia recommends it.Julia: You had to install the gem in order to use it.4:30 – Chuck: some people say that it has affected their performance.4:42 – Julia: Ruby Spy is a separate process.Julia continues this conversation and goes in-depth of what Ruby Spy is, etc.5:27 – When would you use something like this, and what kind of data would get you back to debug the slow points.5:43 – Julia: When you run Ruby Spy it will...6:20 – Chuck: Does it give you method names?6:25 – Julia: Yes, 20% in this method or...6:37 – I can see how that would be helpful on certain aspects. Being able to narrow down the 1,000 methods where you cab get your biggest bang for your buck.7:05 – Julia comments.7:35 – Chuck: I know people pay for Relic...7:56 – Chuck: When it tells you which method is taking a long time, will it look at the stack and THIS method is insufficient b/c this other method is insufficient? How does it do that?8:35 – Julia answers the questions.8:58 – Chuck: I’d imagine that it could keep anything in memory. Did you have to do a bunch of work where THAT means THAT?9:20 – Julia answers.Julia: The differences weren’t that big between the different versions.9:54 – Julia goes through the different ways the versions are different.11:56 – Panelist asks a question.Is this meant for Ruby Scripts?12:10 – Julia: It doesn’t care – as long as you are using the Ruby Interpreter.12:25 – Chuck: Sometimes my performance issues is Ruby, and sometimes it’s the database. For Ruby it will sit there and wait for IO. Is that a blind spot that you will have in Ruby Spy?12:54 – Julia: Great question. There are 2 ways to do profiling.Julia explains these two ways. 13:54 – Wall Clock Time.14:04 – Chuck: Your computer has a speed and however long it takes to run one cycle. It is similar, but...14:26 – I guess as long as it’s relative – I was looking at these graphs you wrote.14:51 – Julia.14:56 – Panelist: That has been my issue. Changing context into a profiler...15:27 – Julia.15:38 – Chuck: Do you have to run it through something...?15:49 – Julia.15:53 – Chuck: Is that the most effective way to look at the data through Ruby Spy?16:07 – Julia: I twill show you the output as it is profiling. 2 visualizations: flame graph and...16:45 – Chuck.16:49 – Julia: It is the only visualization that I know of.17:00 – Chuck: I don’t know.17:05 – Julia: You have spent this amount of % to...How much time was spent in this function or that function?I feel that the flame graph is much more helpful than a list of percentages.17:33 – Chuck: What are you looking at in the flame graph?17:37 – Guest: Basically what time was spent in that function. You look at what is big, and then you figure out if that is something to optimize or not. You go to the docs and...18:36 – Jackal.18:40 – Main problem that I would run into is the information OVERLOAD.Now you have the action controllers and all these other components that aren’t normally visual.Panelist asks a question to Julia.19:29 – Julia: It does give you everything....

NOW PLAYING

RR 383: “Rbspy: A New(ish) Ruby Profiler!” with Julia Evans

0:00 49:33

No transcript for this episode yet

We transcribe on demand. Request one and we'll notify you when it's ready — usually under 10 minutes.

JFK The Enduring Secret Jeff Crudele An in depth tutorial and discussion around the assassination of John F. Kennedy, (JFK) the country's 35th president who was brutally murdered in Dallas Texas on November 22, 1963. The series comprehensively explores the major facts, themes, and events leading up to the assassination in Dealey Plaza and the equally gripping stories surrounding the subsequent investigation. We review key elements of the Warren Commission Report , and the role of the CIA and FBI. We explore the possible involvement of the Mafia in the murder and the review of that topic by the government's House Select Committee on Assassinations in the 1970's. We explore the Jim Garrison investigation and the work of other key figures such as Mark Lane and others. Learn more about Lee Harvey Oswald the suspected killer and Jack Ruby the distraught Dallas night club owner with underworld ties and the man that killed Oswald as a national TV audience was watching. Stay with us as we take you through the facts and theorie Explicit 暗黑森林 The Dark Forest 榮忠豪/Ruby 盧春如/Joanna Wang 王若琳 社會總是希望人人都活在明亮。但一旦人的黑暗面露出的時候,社會會怎麼反應? 人性的黑暗總是被壓抑的而不被允許顯露, 但若這些邪惡的行為無法被壓下來 會有什麼事情發生? 本播客想透過真實殺人案件與其他暗黑的故事來探索人的黑暗面,但就像暗黑的森林,在黑暗的樹枝之中還是看得到光芒,提醒人們黑暗之處還是有希望的存在。 除了只關注故事的黑暗,『暗黑森林』也會專注在人們對於彼此的關懷,同情,與自我保護的重要性。來吧!跟著主持人 榮忠豪/Joanna 王若琳/Ruby 盧春如 一起走進 「暗黑森林」 Powered by Firstory Hosting Explicit Rogues Gallery 27th Letter Productions Kristen, M.J., and Chris investigate pop culture's most memorable villains, antiheroes, and misunderstood monsters to find out how they make being bad look so good. New episodes every other Thursday. Explicit Ruby Ryder – Pegging Paradise Ruby Ryder Your guide for pegging, anal sex, and bdsm Explicit

Frequently Asked Questions

How long is this episode of Ruby Rogues?

This episode is 49 minutes long.

When was this Ruby Rogues episode published?

This episode was published on October 9, 2018.

What is this episode about?

Panel: - https://twitter.com/cmaxw?lang=en- https://www.linkedin.com/in/kobaltz- David Richards Special Guests: Julia EvansIn this episode of Ruby Rogues, the panel talks with Julia Evans who is a software engineer at Stripe and lives in Montreal,...

Can I download this Ruby Rogues episode?

Yes, you can download this episode by clicking the download button on the episode player, or subscribe to the podcast in your preferred podcast app for automatic downloads.
URL copied to clipboard!