3 ms·
I think that people building end-user software are less culpable in some regard. My comment is aimed more at people producing gems and libraries and frameworks
by cheald 13y ago
I think that people building end-user software are less culpable in some regard. My comment is aimed more at people producing gems and libraries and frameworks that then propagate through the Rails community. When they are slow, they cause a compounding effect that ripples down to the developer building end-user applications, who just assume that 400ms for a page is "normal", because that's how it's always been.
Ideally, in the Rails world, the people building client apps would only have to worry about the algorithmic complexity of their code, and the libraries should be operating efficiently under the covers. To that end, you're completely right in that you shouldn't have to worry about performance - the people writing the software you build on should have already have done that. But when they don't, that costs you time and money, and I think that's a shame.
- ScotterC 13y agoI think the main reason for this is that there's no 'convention' to profiling a gem. No one's built something that's super simple, off the shelf and easy to use. If someone did, and it got enough traction, it could be as much a part of the gem building process as bundler or jeweler is right now.
- cheald 13y agoruby-prof has been around forever. Combine it with kcachegrind and you have a very powerful toolset. I wrote about instrumenting Rails apps here: https://www.coffeepowered.net/2013/08/02/ruby-prof-for-rails/ https://www.coffeepowered.net/2013/08/02/ruby-prof-for-rails... The same concept applies to gems. You just construct a scenario that stresses your gem internals, run it with ruby-prof, pop open the resulting dump in kcachegrind or similar, and explore to find the hotspots. I did something like this for MongoMapper, and documented the process here: https://www.coffeepowered.net/2013/07/29/mongomapper-performance-improvement/ https://www.coffeepowered.net/2013/07/29/mongomapper-perform...