Commit Graph

18 Commits

Author SHA1 Message Date
Sam Saffron
cbaad631a4
PERF: add FORCE_BOOTSNAP env var
Bootsnap is designed to work in production per:
https://github.com/Shopify/bootsnap

Over the years we have seen very few issues with it, none of which
were corruption.

This allows us to enable bootsnap in production

Having bootsnap enabled means that we can speed up deploys by
about 5 seconds per server. It also means a lot less waiting for
various production rake tasks and so on.
2020-06-03 15:18:47 +10:00
Daniel Waterworth
feda7e1ddf DEV: Remove logging when redis is terminated
This hasn't proved useful, just noisy.
2019-06-21 10:31:48 +01:00
Daniel Waterworth
e18ce56f4b DEV: Add a new way to run specs in parallel with better output (#7778)
* DEV: Add a new way to run specs in parallel with better output

This commit:

 1. adds a new executable, `bin/interleaved_rspec` which works much like
    `rspec`, but runs the tests in parallel.

 2. adds a rake task, `rake interleaved:spec` which runs the whole test
    suite.

 3. makes autospec use this new wrapper by default. You can disable this
    by running `PARALLEL_SPEC=0 rake autospec`.

It works much like the `parallel_tests` gem (and relies on it), but
makes each subprocess use a machine-readable formatter and parses this
output in order to provide a better overall summary.

(It's called interleaved, because parallel was taken and naming is
hard).

* Make popen3 invocation safer

* Use FileUtils instead of shelling out

* DRY up reporter

* Moved summary logic into Reporter

* s/interleaved/turbo/g

* Move Reporter into its own file

* Moved run into its own class

* Moved Runner into its own file

* Move JsonRowsFormatter under TurboTests

* Join on threads at the end

* Acted on feedback from eviltrout
2019-06-21 10:59:01 +10:00
Sam Saffron
30990006a9 DEV: enable frozen string literal on all files
This reduces chances of errors where consumers of strings mutate inputs
and reduces memory usage of the app.

Test suite passes now, but there may be some stuff left, so we will run
a few sites on a branch prior to merging
2019-05-13 09:31:32 +08:00
David Taylor
b375dcb14a DEV: Introduce parallel rspec testing
Adds the parallel_tests gem, and redis/postgres configuration for running rspec tests in parallel. To use:

```
rake parallel:rake[db:create]
rake parallel:rake[db:migrate]
rake parallel:spec
```

This brings the test suite from 12m20s to 3m11s on my macOS machine
2019-04-01 11:06:47 -04:00
Régis Hanol
3c9c95ac83 Update Rubocop to 0.60 2018-12-04 10:48:16 +01:00
Sam
c234a14f0d Make bootsnap MRI only for now 2018-02-26 10:29:25 +11:00
Sam
73a492f721 minor changes to discourse bench
Ruby master is not compatible with bootsnap atm
2018-02-20 14:41:21 +11:00
Guo Xiang Tan
5012d46cbd Add rubocop to our build. (#5004) 2017-07-28 10:20:09 +09:00
Sam
076f079d17 bootsnap upgrade
see: https://github.com/Shopify/bootsnap/pull/43#issuecomment-304281474
2017-05-26 09:37:18 -04:00
Sam
bb32364642 don't cache yaml perhaps bootsnap has an issue with it 2017-05-12 11:49:12 -04:00
Sam
704101253d add bootsnap to speed up test and dev 2017-05-11 13:51:38 -04:00
Sam Saffron
587653ad73 remove bootsnap till we sort out linux 2017-04-25 14:55:18 -07:00
Sam Saffron
1ae67a21f5 FEATURE: add support for bootsnap in dev
To use bootsnap which speeds up rails boot add

BOOTSNAP=1 to your env
2017-04-25 10:15:12 -07:00
Guo Xiang Tan
09b92dd345
Bump minimum Ruby version to 2.3. 2016-06-10 11:40:42 +08:00
Lourens Naudé
2f75078758 Do not assume all interpreter versions support allocation tracing 2014-12-07 23:28:38 +00:00
Lourens Naudé
fb60daa867 Introduce support for dumping Rails process heap at the end of a benchmark run 2014-12-07 22:55:37 +00:00
Robin Ward
21b5628528 Initial release of Discourse 2013-02-05 14:16:51 -05:00