It should be slight faster as it doesn't allocate a new string when nothing needs to be escaped. https://github.com/ruby/erb/blob/6a5729b7e291e30432f3955e443cc3e6c9215b60/ext/erb/escape/escape.c
@@ -5,7 +5,7 @@
<table>
<tr><th>id</th><th>message</th></tr>
<% records.each do |record| %>
- <tr><td><%= record.id %></td><td><%= CGI.escape_html(record.message) %></td></tr>
+ <tr><td><%= record.id %></td><td><%= ERB::Escape.html_escape(record.message) %></td></tr>
<% end %>
</table>
</body>
- <tr><td><%= record[:id] %></td><td><%= CGI.escape_html(record[:message]) %></td></tr>
+ <tr><td><%= record[:id] %></td><td><%= ERB::Escape.html_escape(record[:message]) %></td></tr>