簡體   English   中英

代碼更改后,Rails 開發服務器需要很長時間才能重新加載

[英]Rails dev server takes a long time to reload after codes changes

我發誓這在過去不是問題,我無法確定我認為這種情況何時發生了變化。 在我的本地開發環境中,如果我對我的模型/控制器進行任何更改,我的服務器至少需要 20-30 秒來重新加載和響應請求。 這是 Rails 5.2.3 和 Thin 1.7.2。 我不記得以前這么慢。 僅供參考,我已經有config.cache_classes = false了,這是明顯的罪魁禍首。

這里有什么想法嗎?

我已經為這個問題奮斗了一段時間,我似乎找到了兩個值得嘗試的解決方案。 我運行 Rails 7.0.4 和 Puma 6.0。

使用rack-mini-profiler調試后,我注意到Thread::Mutex#synchronize非常慢。 ~30 秒。 所以我認為減少 Puma 線程的數量可能會有所幫助。 它有所改善,但並沒有完全解決我的問題。

為了單線程運行 Puma,我將以下內容放入我的 Procfile 中:

RAILS_MIN_THREADS=0 RAILS_MAX_THREADS=1 bin/rails s -p 3000

我遇到的問題似乎與 Puma 6.0.0 中的這個錯誤更直接相關,如下所述: https://github.com/ElMassimo/vite_ruby/issues/299https://github.com/jumpstart- pro/jumpstart-pro-rails/issues/475

降級到 5.6.5 完全解決了這個問題,我能夠回到多線程 Puma。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM