On 26 November 2012 15:36, Jonathon Horsman <span dir="ltr"><<a href="mailto:jonathon@arctickiwi.com" target="_blank">jonathon@arctickiwi.com</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div class="gmail_extra"><div class="gmail_quote"><div class="im"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

Are you rendering a lot of partials?  There's quite a bit of overhead<br>

in setting up each partial, it can sometimes be worth flattening them<br>
out.<br></blockquote><div><br></div></div><div>This is an interesting one, I thought this too but timing before and after flattening shows that rendering partials is actually faster.</div><div><br></div><div>So I have</div>

<div>
<br></div><div><i>= render :partial => "share", :collection => @shares</i></div><div><br></div><div>renders about 500ms faster than this:</div><div><br></div><div><i>- @shares.each do |share|</i></div><div>


<i> <!-- inline row HAML -></i></div></div></div></blockquote><div><br></div><div>Yep, using "render :collection" isn't actually too bad, since (IIRC) Rails can prepare the partial once & reuse it.  If you were to swap it for the apparently identical - </div>

<div><br></div><div>- @shares.each do |share|</div><div>   = render :partial=>"share", :object=>share</div><div><br></div><div>- then Rails does have to recompile each time, which can be pretty slow.</div>

<div><br></div></div>