sql >> Database teknologi >  >> NoSQL >> MongoDB

RSpec-indlæsningstid utrolig lang på OS X

Bundler

Det ligner et problem med indlæsning af bundler for mig. Jeg vil anbefale at lave nogle flere målinger. Bruger du 1 smykkesæt pr. projekt eller opbevarer du alt i 1 smykkesæt (det er sandt, hvis du ikke bruger nogen)? Hvis du har masser af ædelstene i 1 bibliotek (dvs. 1 ædelsten for alle), vil det i sidste ende sænke bundleren meget, da den skal krydse flere stier for at udføre sit arbejde.

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

Hvis gem list -q | wc -l rapporterer ret stor værdi (jeg har 237 og alt virker normalt for mig), måske skal du opdele installerede ædelstene i en separat ædelsten pr. projekt.

Foretag nogle flere målinger med time kommando, se efter den real værdi, det er den samlede sum.

Fjern først din bundled_rspec wrapper, det er ikke nødvendigt med seneste RVM versioner.

Mål derefter din rspec-belastning med og uden 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`

Hvis time rspec -v giver dig store tal selv for projekter med relativt små Gemfile, det er et bundterproblem.

Skinner

Næste flaskehals er normalt Rails selv. Prøv at måle en test, der ikke indlæser Rails (dvs. bare spec_helper ) og test derefter med rails (dvs. med rails_helper ).

Så snart du begynder at se stor forskel i tal, vil du vide, hvor du har et problem.

Forår

Som en hurtig løsning til at forbedre skinnernes ydeevne er brugen af ​​spring perle . Hvis du bruger Rails 4.1+, er fjeder allerede aktiveret.

For at aktivere Spring for rspec tilføje til din Gemfile

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

og kør

$ bundle install
$ spring binstub --all

Sidste kommando vil generere wrappers for alle fjederunderstøttede binære filer i dit projekts bin mappe (tag et kig der og glem ikke at begå dem). Derefter skal du køre rspec med bin/rspec . Første kørsel vil stadig være langsom, men alle efterfølgende kørsler bør være hurtige nok, da skinner allerede vil være indlæst.




  1. Opretholdelse af rækkefølgen af ​​http-anmodninger inden for en for-løkke i javascript

  2. MongoDB:Sådan bruges et skema som underdokument til forskellige samlinger defineret i forskellige filer

  3. Hvordan kan jeg designe skema til nedenstående produkt ved hjælp af mongoose?

  4. Kan ikke destrukturere egenskaben "bruger" af "udefineret" eller "nul"