From a72ed6278bf177bb76ad9788c8a11fcb3a65eb01 Mon Sep 17 00:00:00 2001 From: Sam Saffron Date: Sat, 26 Jan 2019 07:25:37 +0200 Subject: [PATCH] DEV: include comment explaining monkey patch The monkey patch here is very surprising, make a comment explaining why it is used in the code. see: https://github.com/rails/rails/issues/35059 for upstream tracking --- lib/freedom_patches/performance_fixes.rb | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/lib/freedom_patches/performance_fixes.rb b/lib/freedom_patches/performance_fixes.rb index 393391009e..ca0807f7ca 100644 --- a/lib/freedom_patches/performance_fixes.rb +++ b/lib/freedom_patches/performance_fixes.rb @@ -1,6 +1,16 @@ # perf fixes, review for each rails upgrade. -# we call this a lot +# This speeds up calls to present? and blank? on model instances +# Eg: Topic.new.blank? (which is always false) and so on. +# +# Per: https://gist.github.com/SamSaffron/c8bbc8c7b6bf3b0148760c887df18b55 +# Comparison: +# fast present: 25253295.0 i/s +# fast present 2: 24623199.7 i/s - same-ish: difference falls within error +# slow present: 335003.0 i/s - 75.38x slower +# slow present 2: 275212.8 i/s - 91.76x slower +# +# raised with rails at: https://github.com/rails/rails/issues/35059 class ActiveRecord::Base def present? true