java - spring是不是相比其他框架要慢一些?
問題描述
用springMVC開發(fā)了一個(gè)在線考試系統(tǒng)。后臺(tái)用了Spring+SpringMvc,其他還用了SpringSecure。
除了服務(wù)器,其他客戶端載入一個(gè)頁面,看了下時(shí)間大約在70ms左右,不含載入后用post請(qǐng)求的一堆數(shù)據(jù)。重復(fù)刷新或者去其他頁面也都是要等70ms左右才能加載完頁面。頁面靜態(tài)資源緩存已開。
這個(gè)70ms左右的時(shí)間有辦法減少嗎?謝謝!
問題解答
回答1:每個(gè)請(qǐng)求耗時(shí)70毫秒,那每秒1個(gè)CPU核心只能處理1000/70=14個(gè)請(qǐng)求,4個(gè)CPU核心也才能處理56個(gè)請(qǐng)求,說實(shí)話,已經(jīng)挺慢的了.再做個(gè)對(duì)比,Ubuntu(i5-3230M)上用PHP7+OPcache跑WordPress,1個(gè)CPU核心處理1個(gè)WordPress首頁請(qǐng)求(無緩存需要查數(shù)據(jù)庫),耗時(shí)也才28毫秒,要知道WordPress是一個(gè)性能不好的PHP程序.所以,我覺得,每個(gè)請(qǐng)求至少得做到耗時(shí)10毫秒以下,才能稱得上快吧,畢竟Nginx顯示一個(gè)網(wǎng)站根目錄的目錄列表,耗時(shí)只有1毫秒.
其實(shí)70ms對(duì)網(wǎng)頁應(yīng)用來說不算太慢的。
如果你覺得影響用戶體驗(yàn)的話,跟純HttpServlet比較下。影響頁面加載時(shí)間的因素很多,長的延時(shí)未必是由Spring MVC造成的,跟容器、瀏覽器的因素都有關(guān)系。
回答3:和你寫的代碼也有一定的關(guān)系。。。
回答4:還是得具體看code和實(shí)際情況,如果完全是那個(gè)請(qǐng)求響應(yīng)速度過慢。一般小型系統(tǒng)最好優(yōu)化的地方,就是加一個(gè)緩存,減少數(shù)據(jù)庫請(qǐng)求,數(shù)據(jù)直接從內(nèi)存中取。這樣會(huì)快很多!
回答5:建議你看下這個(gè) : https://my.oschina.net/xiangg...
回答6:這個(gè)主要和Spring進(jìn)行視圖渲染的機(jī)制有關(guān)。可以參考:http://www.cnblogs.com/davidw...
回答7:這么說吧,直接使用 Servlet 寫簡單頁面可能很快,但是當(dāng)你自己啃哧啃哧的把所有功能做完后,很可能發(fā)現(xiàn)甚至不如 SpringMVC 快,而你自己做的很多功能其實(shí)都是 SpringMVC 等框架已經(jīng)有了的。
回答8:我覺得不算慢了
回答9:70ms 還是算快了吧,這點(diǎn)時(shí)間對(duì)于用戶來說完全沒有感覺。
回答10:前后端分離,然后 GET請(qǐng)求做緩存。當(dāng)然 70ms已經(jīng)很快了。
相關(guān)文章:
1. android - 請(qǐng)問一下 類似QQ音樂底部播放 在每個(gè)頁面都顯示 是怎么做的?2. thinkPHP5中獲取數(shù)據(jù)庫數(shù)據(jù)后默認(rèn)選中下拉框的值,傳遞到后臺(tái)消失不見。有圖有代碼,希望有人幫忙3. mysql主從 - 請(qǐng)教下mysql 主動(dòng)-被動(dòng)模式的雙主配置 和 主從配置在應(yīng)用上有什么區(qū)別?4. 求救一下,用新版的phpstudy,數(shù)據(jù)庫過段時(shí)間會(huì)消失是什么情況?5. python小白 關(guān)于類里面的方法獲取變量失敗的問題6. Python2中code.co_kwonlyargcount的等效寫法7. django - Python error: [Errno 99] Cannot assign requested address8. python小白,關(guān)于函數(shù)問題9. [python2]local variable referenced before assignment問題10. python - vscode 如何在控制臺(tái)輸入
