aboutsummaryrefslogtreecommitdiffstats
path: root/railties
Commit message (Collapse)AuthorAgeFilesLines
...
| * 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
* | Preparing for 4.2.0.beta2 releaseRafael Mendonça França2014-09-261-1/+1
| |
* | remove extra # in cssByron Bischoff2014-09-251-1/+1
| |
* | rails-html-sanitizer is now the defaultRafael Mendonça França2014-09-251-3/+0
| | | | | | | | Also add to upgrading guide a notice about the deprecated sanitizers
* | Remove unused codeRafael Mendonça França2014-09-252-23/+1
| |
* | :nail_care: the CSSRafael Mendonça França2014-09-251-7/+18
| |
* | Merge pull request #17024 from buddhamagnet/amend-welcome-pageRafael Mendonça França2014-09-252-14/+11
|\ \ | | | | | | Amend welcome page
| * | Improve welcome page css and table cell aignments.buddhamagnet2014-09-252-14/+11
| | |
* | | Use released rails-html-sanitizer and rails-deprecated_sanitizerGodfrey Chan2014-09-261-1/+1
| | |
* | | Use release web-consoleRafael Mendonça França2014-09-251-1/+1
| | |
* | | Remove --skip-action-view option from application generatorDan Olson2014-09-245-11/+9
| | |
* | | Fix loading fixtures in engine testsGrzesiek Kolodziejczyk2014-09-231-1/+1
|/ / | | | | | | | | | | | | fixture_path is a class attribute of ActiveSupport::TestCase, so ActiveSupport::TestCase.method_defined?(:fixture_path=) would always return false. This should fix #4971
* / Fix another false assertionsYuki Nishijima2014-09-211-1/+1
|/ | | | | | | | | | | | * The assertions in AS::Duration don't actually assert. * The assertion in Railtie will pass even when `eager_load_namespaces` doesn't include `AppTemplate::Application` if `Rails.application` is truthy. For more details, see here: * https://github.com/rails/rails/pull/16998 * https://github.com/rails/rails/pull/17000
* Merge pull request #16984 from chancancode/fix_16578Godfrey Chan2014-09-221-5/+1
|\ | | | | Document that the default for `rails server -b` has changed
| * Document that the default for `rails server -b` has changedGodfrey Chan2014-09-221-5/+1
| | | | | | | | Fixes #16578
* | Standardize on `Rails.application` [ci skip]Tamir Duberstein2014-09-192-2/+2
|/ | | | This seems to be the style settled on in most of the templates.
* Merge pull request #16936 from untidy-hair/plugin_test_db_migrate_pathRafael Mendonça França2014-09-183-3/+21
|\ | | | | | | | | | | | | Specify dummy app's db migrate path in plugin's test_helper.rb Conflicts: railties/CHANGELOG.md
| * Specify dummy app's db migrate path in plugin's test_helper.rbYukio Mizuta2014-09-163-3/+21
| |
* | inject Rack::Lock if config.eager_load is falseXavier Noria2014-09-183-3/+20
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | If code is not eager loaded constants are loaded on demand. Constant autoloading is not thread-safe, so if eager loading is not enabled multi-threading should not be allowed. This showed up in certain Capybara scenarios: Most Capybara drivers other than Rack::Test need a web server. In particular, drivers for JavaScript support. Capybara launches WEBrick in its own thread for those but that per se is fine, because the spec thread and the server thread are coordinated. Problem comes if the page being served in the spec makes Ajax calls. Those may hit WEBrick in parallel, and since WEBrick is multi-threaded and allow_concurrency? returns true in the test environment before this patch, threads are spawned to serve those parallel requests. On the other hand, since eager_load is false by default in the test environment, constants are not preloaded. So the suite is autoloading constants in a multi-threaded set. That's a receipt for paracetamol. The symptom is random obscure errors whose messages point somehow to constant autoloading. As a consequence of this fix for allow_concurrency? WEBrick in Capybara scenarios no longer runs in multi-threaded mode. Fixes #15089.
* Improve environment config templates consistency:Thibault Jouan2014-09-161-3/+4
| | | | | * Fix long lines; * Use simple quotes for string literals when interpolation is not used.
* Merge pull request #16914 from untidy-hair/fix_plugin_dummy_path_errorRafael Mendonça França2014-09-163-2/+10
|\ | | | | Use dynamic path for dummy app location in plugin's test_helper.rb
| * Use dynamic path for dummy app location in plugin's test_helper.rbYukio Mizuta2014-09-143-2/+10
| |
* | Add `test:jobs` taskyuuji.yaginuma2014-09-152-6/+17
|/
* Change ActiveJob test directory to "test/jobs"yuuji.yaginuma2014-09-131-1/+1
|
* Always define capture to remove the deprecation messageRafael Mendonça França2014-09-111-17/+15
|
* Define the configuration at Active SupportRafael Mendonça França2014-09-112-0/+2
|
* Set test order in ActiveSupport::TestCase of isolation/abstract_unitRafael Mendonça França2014-09-101-0/+2
|
* Set the test order to be random in the generated appRafael Mendonça França2014-09-101-0/+1
| | | | | | This will avoid the warning in our tests. We delete all the config/environments/ files in the test app so our default code will not work.
* Merge pull request #16839 from chancancode/default_test_orderRafael Mendonça França2014-09-102-1/+4
|\ | | | | | | Default to sorting user's test cases for now
| * Default to sorting user's test cases for nowGodfrey Chan2014-09-082-1/+4
| | | | | | | | | | | | | | | | | | | | | | Goals: 1. Default to :random for newly generated applications 2. Default to :sorted for existing applications with a warning 3. Only show the warning once 4. Only show the warning if the app actually uses AS::TestCase Fixes #16769
* | Tell the user which file is missing when config/database.yml was not foundAkira Matsuda2014-09-102-3/+13
| | | | | | | | | | | | Since cc03675d30b58e28f585720dad14e947a57ff5b the error message became like "Could not load database configuration. No such file -" which doesn't really tell what's actually missing.
* | Removed any default margin from body.Sahil Lavingia2014-09-091-1/+5
| |
* | Remove extra newline from ActiveJob test templateyuuji.yaginuma2014-09-091-1/+0
|/
* Dependencies: bump to jquery-rails 4.0.0.beta2Godfrey Chan2014-09-051-1/+1
|
* Use the released jquery-rails gemGodfrey Chan2014-09-051-2/+8
|
* world writable might be a bit too open...Peter Schröder2014-09-051-1/+2
|
* Change "For not..." to "Do not...".Kale Worsley2014-09-041-1/+1
|
* build fix, we have to reset the RACK_ENV as well.Yves Senn2014-09-041-2/+5
| | | | | This is a follow-up to ded17a4 to get the build passing on Travis. As Travis has `ENV["RACK_ENV"]` set to `test` we need to reset that as well.
* Merge pull request #16775 from kaspth/ship-secure-sanitizerRafael Mendonça França2014-09-031-41/+0
|\ | | | | Ship with rails-html-sanitizer instead.
| * Ship with rails-html-sanitizer instead.Kasper Timm Hansen2014-09-031-41/+0
| |
* | Merge pull request #16756 from huoxito/dont-mess-railties-default-orderRafael Mendonça França2014-09-032-8/+45
|\ \ | | | | | | Dont mess with default order engines load (4.1.6.rc1 regression)
| * | Dont mess with default order engines loadWashington Luiz2014-09-022-8/+45
| | | | | | | | | | | | | | | | | | | | | When copying migrations some engines might depend on schema from other engine so we can't blindly reverse all railties collection as that would affect the order they were originally loaded. This patch helps to only apply the order from engines specified in `railties_order`
* | | schema loading rake tasks maintain database connection for current env.Yves Senn2014-09-031-0/+26
| |/ |/| | | | | | | | | | | | | | | | | [Joshua Cody & Yves Senn] Closes #16757. Prior to this patch schema loading rake tasks had the potential to leak a connection to a different database. This had side-effects when rake tasks operating on the current connection (like `db:seed`) were chained.
* | Merge pull request #16724 from seuros/testcaseRafael Mendonça França2014-09-021-1/+2
|\ \ | | | | | | [ActiveJob] TestCase
| * | [ActiveJob] TestCaseAbdelkader Boudih2014-09-021-1/+0
| | |
| * | [ActiveJob] TestCaseAbdelkader Boudih2014-09-021-1/+3
| | |
* | | Leave all our tests as order_dependent! for nowMatthew Draper2014-09-021-0/+4
|/ / | | | | | | | | | | | | | | | | We're seeing too many failures to believe otherwise. This reverts commits bc116a55ca3dd9f63a1f1ca7ade3623885adcc57, cbde413df3839e06dd14e3c220e9800af91e83ab, bf0a67931dd8e58f6f878b9510ae818ae1f29a3a, and 2440933fe2c27b27bcafcd9019717800db2641aa.
* | Add test to assert the right sanitizer vendor is being usedRafael Mendonça França2014-09-011-0/+41
| |
* | Try with web-console masterRafael Mendonça França2014-09-011-1/+1
| |
* | Use jquery-rails masterRafael Mendonça França2014-09-011-1/+1
| |