aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails/backtrace_cleaner.rb
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Merge pull request #29540 from kirs/rubocop-frozen-string"Matthew Draper2017-07-021-1/+0
| | | | | This reverts commit 3420a14590c0e6915d8b6c242887f74adb4120f9, reversing changes made to afb66a5a598ce4ac74ad84b125a5abf046dcf5aa.
* Enforce frozen string in RubocopKir Shatrov2017-07-011-0/+1
|
* Update backtrace cleaner to use `Regexp#match?`Bart de Water2017-02-131-1/+1
|
* applies new string literal convention in railties/libXavier Noria2016-08-061-4/+4
| | | | | The current code base is not uniform. After some discussion, we have chosen to go with double quotes by default.
* Fixes #25219Vipul A M2016-07-011-1/+1
| | | | Add handling of cleaning up backtrace from IRB console in case of errors
* Move object allocation out of loopRichard Schneeman2014-09-271-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Right now BenchmarkCleaner allocates hundreds of strings on every request with an exception. This patch moves those strings to be generated at boot once and re-used. ## Bench Methods I took a modified form of CodeTriage https://github.com/schneems/codetriage-ko1-test-app/blob/master/perf.rake and ran given rake tasks with and without the patch to BacktraceCleaner. I made an endpoint results in exception ``` def index raise “foo" end ``` The gem `memory_profiler` was used to capture objects allocated for a single request. Then `benchmark/ips` was used to test the speed of the patch. You will see that we use less objects and the code becomes measurably faster with this patch. ## With patch: Memory for one request: ``` Total allocated 7441 Total retained 37 ``` Requests per second: ``` Calculating ------------------------------------- ips 4 i/100ms ------------------------------------------------- ips 43.0 (±4.7%) i/s - 216 in 5.037733s ``` ## Without patch: Memory used for one request: ``` Total allocated 11599 Total retained 35 ``` Requests per second: ``` Calculating ------------------------------------- ips 3 i/100ms ------------------------------------------------- ips 39.4 (±7.6%) i/s - 198 in 5.052783s ``` ## Analysis The patch is faster: ``` (43.0 - 39.4 ) / 39.4 * 100 # => 9 # % ~ speed bump ``` It also allocates less objects: ``` 11599 - 7441 # => 4158 ``` These strings are allocated on __EVERY SINGLE REQUEST__. This patch saves us 4158 objects __PER REQUEST__ with exception. Faster errors == Faster applications
* Gem cont presence checking has been removedRoman V. Babenko2012-05-021-2/+0
|
* Unnecessary uniqueness & force mapping has been removed at ↵Roman V. Babenko2012-04-031-1/+1
| | | | BacktraceCleaner#add_gem_filters
* Remove unneeded codeRafael Mendonça França2012-01-061-13/+0
|
* in regexps, the dot in a character class is not a metacharacterXavier Noria2010-10-151-1/+1
|
* Make backtrace_cleaner work as expected. Prior to this patch, the Full Trace ↵José Valim2010-05-031-12/+11
| | | | rarely showed the full trace. Also, increase performance considerably.
* It seems the test directory backtrace line is output with a / before it, ↵Ryan Bigg2010-04-051-1/+1
| | | | | | thereby previously making it not match the regex. Support APP_DIRS that have backtrace lines maybe beginning with /. [#4277 state:resolved] Signed-off-by: José Valim <jose.valim@gmail.com>
* Remove backtrace cleaner specific to Bundler. Bundler just uses Gem.dir and ↵Carl Lerche2010-02-111-11/+0
| | | | Gem.path now.
* Use backtrace cleaner for dev mode exception pageJoshua Peek2010-01-161-15/+16
|
* Exclude gem backtrace filter if rubygems is not loadedJoshua Peek2009-10-201-2/+2
|
* Remove config.gem in favor of using the bundler. This makes config/boot.rb ↵Carl Lerche2009-10-161-4/+0
| | | | | | obsolete. The bundler library is at: http://github.com/wycats/bundler/ and is a rubygem.
* Deprecate RAILS_ROOT in favor of Rails.root (which proxies to the ↵Carl Lerche2009-10-161-2/+2
| | | | application's object root)
* Add gem filter for default gem path since it maybe different than the set of ↵Joshua Peek2009-09-261-1/+1
| | | | gem paths
* Rejig active support dependencies to behave better with the boot processJeremy Kemper2009-04-281-0/+3
|
* Correctly clean backtraces from vendor/gems and gems in alternate install ↵Matt Jones2009-03-091-4/+16
| | | | | | locations Signed-off-by: David Heinemeier Hansson <david@loudthinking.com>
* Make sure that Rails frameworks are silenced when running in gem mode tooDavid Heinemeier Hansson2009-03-051-0/+3
|
* Only silence backtrace from plugin lib dirsJeremy Kemper2008-12-301-1/+2
|
* Clean trailing / after rails root from backtracesJeremy Kemper2008-12-301-1/+1
|
* Added gem backtrace pretty priting (Juan Lupión) [#1497 state:committed]David Heinemeier Hansson2008-12-151-0/+3
|
* Silence server backtrace in rescue templates and log files. Also remove some ↵Joshua Peek2008-12-051-2/+4
| | | | noise from missing template errors.
* Include Rack in the server noiseDavid Heinemeier Hansson2008-11-291-2/+2
|
* Strip out the ./ part of the test path so the backtrace align perfectlyDavid Heinemeier Hansson2008-11-241-0/+1
|
* Accept a prefix argument to filter_backtrace_with_cleaning [#1456 ↵Manfred Stienstra2008-11-241-6/+4
| | | | | | | | | state:committed] Add a prefix argument to filter_backtrace_with_cleaning so it has the same arity as test/unit's filter_backtrace. Signed-off-by: David Heinemeier Hansson <david@loudthinking.com>
* Added ActiveSupport::BacktraceCleaner and Rails::BacktraceCleaner for ↵David Heinemeier Hansson2008-11-221-0/+34
cutting down on backtrace noise (inspired by the Thoughtbot Quiet Backtrace plugin) [DHH]