RVM Railsexpress рдкреИрдЪ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд░реЗрд▓реНрд╕ рд▓реЙрдиреНрдЪ рдкрд░ рд░реВрдмреА рдХреЛ рдЧрддрд┐ рджреЗрдВ

рдпрд╣ рд▓реЗрдЦ рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рд╣реИ рдЬреЛ рд░реЗрд▓ рдХреЗ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреЛ рдЧрддрд┐ рджреЗрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рд╕рд╛рде рд╣реА рд╕рд╛рде рд░реВрдмреА рджреБрднрд╛рд╖рд┐рдпрд╛ рдХреЛ рдЧрддрд┐ рджреЗрддреЗ рд╣реИрдВред
рдЖрд░рд╡реАрдПрдо (рд░реВрдмреА рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рдмрдВрдзрдХ) рдХреЛ рдХреИрд╕реЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдП, рдЗрд╕ рдкрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд▓реЗрдЦ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦреЗ рдЬрд╛ рдЪреБрдХреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЗрд╕ рдмрд┐рдВрджреБ рдкрд░ рдЕрдзрд┐рдХрд╛рд░ рдорд┐рд▓реЗрдЧрд╛ред
рд░реВрдмреА 1.9.3-p362 рдХреЗ рд▓рд┐рдП RailsExpress рдкреИрдЪ рд╕реВрдЪреА
(рд▓реЗрдЦрди рдХреЗ рд╕рдордп рдпрд╣ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рд╣реИ)
Applying patch railsexpress/01-fix-make-clean.patch Applying patch railsexpress/02-railsbench-gc.patch Applying patch railsexpress/03-display-more-detailed-stack-trace.patch Applying patch railsexpress/04-fork-support-for-gc-logging.patch Applying patch railsexpress/05-track-live-dataset-size.patch Applying patch railsexpress/06-webrick_204_304_keep_alive_fix.patch Applying patch railsexpress/07-export-a-few-more-symbols-for-ruby-prof.patch Applying patch railsexpress/08-thread-variables.patch Applying patch railsexpress/09-faster-loading.patch Applying patch railsexpress/10-falcon-st-opt.patch Applying patch railsexpress/11-falcon-sparse-array.patch Applying patch railsexpress/12-falcon-array-queue.patch 


1. рд╣рдо рдЖрд░рд╡реАрдПрдо рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд░реВрдмреА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣реЛрдо рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ .rvmrc рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБред
 $ nano -e $HOME/.rvmrc 

рдФрд░ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдЖрд░рд╡реАрдПрдо рдХреЛ рдмрддрд╛рдПрдВ рдХрд┐ рд░реВрдмреА рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреМрди рд╕реЗ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИрдВред
 CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer" rvm_configure_env=(CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer") 

рдпрд╣рд╛рдБ, -march = рджреЗрд╢реА рдкреИрд░рд╛рдореАрдЯрд░ рдХрдВрдкрд╛рдЗрд▓рд░ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рдЙрд╕ рдкреНрд░реЛрд╕реЗрд╕рд░ рджреНрд╡рд╛рд░рд╛ рд╕рдорд░реНрдерд┐рдд рдХреНрд╖рдорддрд╛рдУрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЛрд╕реЗрд╕рд░ рдХрд╛ рд╕рдЯреАрдХ рдкреНрд░рдХрд╛рд░ рдЬрд╛рдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, -march = prescott рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

рдкрд░рд┐рд╡рд░реНрддрди рд╕рд╣реЗрдЬреЗрдВ: [ctrl + X], рдлрд┐рд░ [Y] - рдиреИрдиреЛ рд╕реЗ рдмрд╛рд╣рд░ рдирд┐рдХрд▓рдиреЗ рдФрд░ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдПред

2. рдЖрд░рд╡реАрдПрдо рдореЗрдВ рд░реВрдмреА рдХреЗ рдЙрдкрд▓рдмреНрдз рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪрд┐рдпреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдирд╛

 $ rvm get head 


3. Railsexpress рдкреИрдЪ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдорд╛рдгрд┐рдХ рдХреЛ рд╕реНрдерд╛рдкрд┐рдд / рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ

рд░реВрдмреА рд╕рдВрд╕реНрдХрд░рдг 1.9.3-p362 рдХреЗ рд▓рд┐рдП
 $ rvm reinstall 1.9.3-p362 --patch railsexpress -n railsexpress -j 3 $ rvm list $ rvm use ruby-1.9.3-p362-railsexpress --default 

рдпрджрд┐ рдЖрдкрдХреЛ рд╣рдореЗрд╢рд╛ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ p362 рдХреЗ рдмрдЬрд╛рдп рдЖрдкрдХреЛ рд╕рд┐рд░ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ,
рд▓реЗрдХрд┐рди рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдкреИрдЪ рджреЗрд░ рд╕реЗ рджрд┐рдЦрд╛рдИ рджреЗрддреЗ рд╣реИрдВ, рдпрд╣ рдзреНрдпрд╛рди рдореЗрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдПред

4. рдмреЛрдирд╕

 export RUBY_HEAP_MIN_SLOTS=1000000 export RUBY_HEAP_FREE_MIN=500000 export RUBY_HEAP_SLOTS_INCREMENT=1000000 export RUBY_HEAP_SLOTS_GROWTH_FACTOR=1 export RUBY_GC_MALLOC_LIMIT=100000000 


5. рд╣рдо рдЧрддрд┐ рдХреЛ рдорд╛рдкрддреЗ рд╣реИрдВ

рд░реЗрд▓ рдкреНрд░рдХреНрд╖реЗрдкрдг рдХреА рдЧрддрд┐ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдорд╛рдкреА рдЬрд╛ рд╕рдХрддреА рд╣реИ:
 $ time bundle exec rake routes 

рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ:
рдХреЛ
real 0m42.547s
user 0m36.502s
sys 0m2.248s

рдХреЗ рдмрд╛рдж
real 0m17.200s
user 0m15.089s
sys 0m1.072s


рдпрд╣рд╛рдВ рдЖрдк рдкреИрдЪ рдкрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА https://github.com/skaes/rvm-patchsets рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ

Source: https://habr.com/ru/post/In165627/


All Articles