MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Niesamowicie długi czas ładowania RSpec na OS X

Bundler

Wygląda na to, że mam problem z ładowaniem Bundlera. Zalecam wykonanie kilku dodatkowych pomiarów. Czy używasz 1 gemset na projekt, czy przechowujesz wszystko w 1 gemset (to prawda, jeśli nie używasz żadnego)? Jeśli masz dużo klejnotów w 1 katalogu (tj. 1 zestaw klejnotów dla wszystkich), w końcu znacznie spowolni to pakowanie, ponieważ musi przejść więcej ścieżek, aby wykonać swoje zadanie.

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

Jeśli gem list -q | wc -l zgłasza dość dużą wartość (mam 237 i wszystko wydaje mi się normalne), być może musisz podzielić zainstalowane klejnoty na osobny zestaw klejnotów na projekt.

Wykonaj więcej pomiarów z time polecenie, poszukaj real wartość, to całkowita suma.

Najpierw usuń swój bundled_rspec wrapper, nie jest potrzebny z najnowszym RVM wersje.

Następnie zmierz ładowanie rspec z pakietem i bez niego:

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`

Jeśli time rspec -v daje duże liczby nawet dla projektu ze stosunkowo małym plikiem Gemfile, jest to problem z pakietem.

Szyny

Kolejnym wąskim gardłem są zwykle same Railsy. Spróbuj zmierzyć jeden test, który nie ładuje Railsów (np. po prostu spec_helper ), a następnie przetestuj z rails (np. z rails_helper ).

Jak tylko zaczniesz widzieć dużą różnicę w liczbach, będziesz wiedział, gdzie masz problem.

Wiosna

Jako szybkie rozwiązanie poprawiające wydajność szyn jest użycie spring klejnot . Jeśli używasz Rails 4.1+, Spring jest już włączony.

Aby włączyć Spring dla rspec dodaj do swojego Gemfile

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

i uruchom

$ bundle install
$ spring binstub --all

Ostatnie polecenie wygeneruje opakowania dla wszystkich plików binarnych obsługiwanych przez sprężynę w bin twojego projektu folder (zajrzyj tam i nie zapomnij ich zatwierdzić). Następnie powinieneś uruchomić rspec z bin/rspec . Pierwsze uruchomienie będzie nadal wolne, ale wszystkie kolejne uruchomienia powinny być wystarczająco szybkie, ponieważ Railsy będą już załadowane.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. menu mean.js nie działa Publicznie

  2. Nie można uruchomić mongos

  3. Czy mongo może zwrócić dokumenty z pustymi/brakującymi polami na końcu w kolejności asc?

  4. W jaki sposób dane w bazie danych MongoDB są przechowywane na dysku?

  5. mongodb filtruje dokumenty z długością, szerokością geograficzną i określoną odległością