sql >> Databáze >  >> NoSQL >> MongoDB

Doba načítání RSpec je na OS X neuvěřitelně dlouhá

Bundler

Vypadá to na problém s načítáním balíku. Doporučuji provést další měření. Používáte 1 gemset na projekt nebo ukládáte vše do 1 gemsetu (je to pravda, pokud žádný nepoužíváte)? Pokud máte v 1 adresáři hodně drahokamů (tj. 1 sadu drahokamů pro všechny), nakonec to svazek hodně zpomalí, protože potřebuje projít více cest, aby splnil svou úlohu.

bundle | wc -l # how many gems bundler uses in your current project
gem list -q | wc -l # how many gems in your gemset 

Pokud gem list -q | wc -l hlásí poměrně velkou hodnotu (mám 237 a vše se mi zdá normální), možná budete muset rozdělit nainstalované drahokamy do samostatné sady drahokamů na projekt.

Proveďte další měření pomocí time hledejte real hodnota, je to celkový součet.

Nejprve odstraňte bundled_rspec wrapper, není potřeba s nejnovější RVM verze.

Poté změřte zatížení rspec s a bez Bundler:

time rspec -v # with implicit bundler loading, rubygems-bundler gem is in use
time NOEXEC_DISABLE=1 rspec -v # without bundler, disable rubygems-bundler gem for this call`

Pokud time rspec -v vám dává velká čísla i pro projekt s relativně malým souborem Gemfile, je to problém svazku.

Koľaje

Dalším úzkým hrdlem je obvykle samotný Rails. Zkuste změřit jeden test, který nenačte Rails (tj. pouze spec_helper ) a poté otestujte pomocí kolejí (tj. pomocí rails_helper). ).

Jakmile začnete vidět velký rozdíl v číslech, budete vědět, kde máte problém.

Jaro

Jako rychlé řešení pro zlepšení výkonu kolejnic je použití spring drahokam . Pokud používáte Rails 4.1+ Spring je již povolen.

Chcete-li povolit Spring pro rspec přidat do svého Gemfile

gem 'spring-commands-rspec', group: :development

a spusťte

$ bundle install
$ spring binstub --all

Poslední příkaz vygeneruje obaly pro všechny binární soubory podporované pružinou v bin vašeho projektu složku (podívejte se tam a nezapomeňte je odevzdat). Poté byste měli spustit rspec pomocí bin/rspec . První jízda bude stále pomalá, ale všechny následující jízdy by měly být dostatečně rychlé, protože Rails již budou načteny.




  1. Jak poznám, že byl smazán dokument s atributem vypršení platnosti?

  2. Zapisuje MongoDB $set pouze pole nebo celý dokument?

  3. jak strukturovat složený index v mongodb

  4. mongodb cluster s koncovým bodem ELB jako dns