<cite id="ffb66"></cite><cite id="ffb66"><track id="ffb66"></track></cite>
      <legend id="ffb66"><li id="ffb66"></li></legend>
      色婷婷久,激情色播,久久久无码专区,亚洲中文字幕av,国产成人A片,av无码免费,精品久久国产,99视频精品3
      網易首頁 > 網易號 > 正文 申請入駐

      搞了次性能優化,結果出乎意料!

      0
      分享至

      大家好,我是程序員魚皮。

      之前我帶大家做的 項目 ,用戶可以在線制作、分享、使用代碼生成器~


      這次的系列教程中,我專門用了 4 個小時的直播,給大家帶來了一場極致的 性能優化 “盛宴”。

      很多同學由于沒有實習或工作經歷,可能沒有接觸過性能優化,但這卻是能區分程序員水平的重要技能。

      為什么這么說?

      舉個例子:

      • 優秀的程序員,能用 1 臺機器滿足 10000 個用戶的使用需求,如果滿足不了,首先想到的是繼續去優化。

      • 而一般的程序員,用 1 臺機器可能只能滿足 1000 個用戶的使用需求,如果滿足不了,就要加機器、加資源。現實往往是沒有資源給你加。

      怎么區分一個程序員有沒有性能優化經驗呢?

      就先問大家一個問題吧:一臺部署了 Tomcat 的服務器,每秒最多能處理多少個請求?

      下面給大家簡單分享下我直播中的性能優化過程,答案也將在最后揭曉。

      性能優化實踐

      要優化的是一個后端查詢接口,功能是查詢出主頁要展示的分頁數據列表,邏輯很簡單,就是數據庫分頁查詢而已。

      如下圖:


      首先我們往數據庫里插入 10 萬條數據,然后打開瀏覽器控制臺,觀察 10 次請求的響應耗時,平均是 700 毫秒:


      1)首先,我嘗試優化了數據查詢的 SQL 語句,讓它只查詢需要返回給前端的數據,減少數據量。

      優化后的接口平均耗時是 500 多毫秒,大概響應時長縮短了 1 / 4:


      使用 JMeter 進行壓力測試,每秒啟動 1000 個線程,總共啟動 1 萬個線程發送請求,在異常率 0% 的前提下,測試結果得到的 qps 為 20,這顯然不是一個很好的成績。


      2)進一步優化,使用性能更高的 Redis 分布式緩存。將分頁查詢結果作為 JSON 字符串寫入緩存,再次查詢的時候直接讀取就行。

      結果響應時長直接縮短到了平均 20 毫秒!縮短了 25 倍!

      第一個請求是加載緩存的,所以較慢。

      有緩存的情況下,壓力測試得到的 qps 是 114.6,提升了 5 倍多!


      可見緩存還是猛啊,讀多寫少、更新頻率低、訪問頻率高的數據,非常適合使用緩存。

      還能進一步優化么?

      3)當然能!使用比分布式緩存更快的本地緩存,直接從當前服務器內存讀取數據,更快~

      用瀏覽器控制臺測試響應時長,幾乎沒有變化(因為我測試過程中,Redis 也是本地啟動的):


      進行壓力測試,發現 qps 略有提升,大概 10% 左右吧:


      本地緩存按道理來說已經是最快的讀取方式了,難道這就已經優化到極限了么?

      當然沒有!

      4)雖然 I / O 難以繼續優化了,但我們可以優化程序的計算邏輯、節約 CPU 資源。

      比如我修改緩存的數據類型,不再寫入 JSON 格式的緩存了,直接用 JDK 原生的序列化方式去保存對象,這樣讀取的時候也不需要把 JSON 轉為對象。

      優化這個邏輯后,響應時長大幅度減少!平均 8 毫秒左右:


      沒想到吧,看似不起眼的 JSON 轉換操作,這么影響性能?

      壓力測試的結果更恐怖了,吞吐量接近 16000,直接提升了 100 多倍!


      真是不測不知道,一測嚇一跳。

      問題來了,還能繼續優化么?

      當然可以!

      5)除了業務邏輯層,我們還可以優化請求層。比如修改 Tomcat 服務器的配置,增大工作線程數和最大線程連接數。

      稍微改 2 行配置,吞吐量就提高了 1 / 5 左右,接近 19000!相比最開始的 qps 20 提升了近千倍!


      這。。這次到極限了么?

      我怎么知道啊!肯定還是需要自己測試這個極限到底在哪里!

      如何測試呢?

      6)我們可以編寫一個沒有任何業務邏輯,直接返回 "ok" 字符串的空接口。

      每秒啟動 10 萬個線程來測試,得到的 qps 為 36000+,又提高了整整一倍!


      ok,沒有任何邏輯的接口 qps 是這個數,那么你再怎么優化業務邏輯,性能的極限也不會超過這個值。

      那么,還有辦法繼續優化么?

      當然可以!

      7)因為這只是 Tomcat 服務器 + Spring MVC 框架的極限,如果我們用別的技術呢?


      這里我就拋磚引玉,大家感興趣的話,可以找個項目中的查詢接口、用我上面提到的方法優化下。


      回到最開始的問題 “一臺部署了 Tomcat 的服務器,每秒最多能處理多少個請求?”

      其實這個答案是 無解 ,因為缺少了最重要的測試條件、測試環境和測試基準,比如是在幾核幾 G、帶寬多少的機器上測試呢?不同的測試環境,測試結果肯定不同。性能優化效果一定要以實際測試結果為準,下次遇到這種問題的時候,別被面試官唬住了哦~

      以上就是本期分享,時間有限文章就只能講這么多了,大家如果對這個項目、這次的性能優化完整教程感興趣,歡迎 學習。

      這個項目視頻教程接近 40 小時,文字教程十幾萬字,我付出了大量的頭發精力,也保證絕對是一個很能打的項目~



      點擊下方關注魚皮,獲取免費編程學習路線、簡歷模板、面試題解、AI 知識庫、項目教程、交流群。

      一些對大家有用的資源:
      100+ 編程學習路線 / 實戰項目 / 求職指導
      100+ 簡歷模板
      300+ 企業面試題庫 mianshiya.com
      500+ AI 資源大全
      1 對 1 模擬面試
      動畫學算法教程

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網易號”用戶上傳并發布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      竹筍大量上市!醫生反復強調:血壓高患者吃竹筍,牢記這幾點

      竹筍大量上市!醫生反復強調:血壓高患者吃竹筍,牢記這幾點

      白宸侃片
      2026-04-07 16:45:42
      威少37歲了,他能像詹姆斯那樣,拿下3萬分+1萬板+1萬助嗎?

      威少37歲了,他能像詹姆斯那樣,拿下3萬分+1萬板+1萬助嗎?

      大西體育
      2026-04-07 21:37:20
      火力全開!上海北部"北大門"即將全面打通

      火力全開!上海北部"北大門"即將全面打通

      新浪財經
      2026-04-07 19:27:08
      WTI原油價格跌幅擴大至15%

      WTI原油價格跌幅擴大至15%

      界面新聞
      2026-04-08 07:07:50
      河南美女老師被抓,臥室發現一本日記,里面所寫內容令人崩潰

      河南美女老師被抓,臥室發現一本日記,里面所寫內容令人崩潰

      可兒故事匯
      2024-10-19 18:41:40
      收“海峽過路費”?全球最大受害者,不是日本韓國,竟是中國沙特

      收“海峽過路費”?全球最大受害者,不是日本韓國,竟是中國沙特

      民間平淡生活
      2026-04-08 03:56:05
      7000 萬碾壓祖比門迪!阿森納密談皇馬中場,他才是中場真核

      7000 萬碾壓祖比門迪!阿森納密談皇馬中場,他才是中場真核

      瀾歸序
      2026-04-08 04:24:55
      解放軍報通告全球:5500枚核彈原料已備好,日本擁核在即

      解放軍報通告全球:5500枚核彈原料已備好,日本擁核在即

      時光在作祟
      2026-04-06 11:36:40
      一覺醒來,特朗普躺進醫院?48小時最后通牒,淪為國際大笑話

      一覺醒來,特朗普躺進醫院?48小時最后通牒,淪為國際大笑話

      至今
      2026-04-08 06:03:21
      美國宇航員代表人類首次肉眼看見月球背面:六小時里他們在找什么

      美國宇航員代表人類首次肉眼看見月球背面:六小時里他們在找什么

      楠楠自語
      2026-04-06 02:37:49
      22歲女學生被拐到深山鄉村里,看到買她那戶人家時,人販子傻眼了

      22歲女學生被拐到深山鄉村里,看到買她那戶人家時,人販子傻眼了

      卡西莫多的故事
      2025-12-07 10:41:11
      零緩沖,全國一刀切!6月1日起,車主自己去車管所“橫著走”!

      零緩沖,全國一刀切!6月1日起,車主自己去車管所“橫著走”!

      西莫的藝術宮殿
      2026-04-08 03:16:59
      急眼了!以色列終于捅了一個大簍子!

      急眼了!以色列終于捅了一個大簍子!

      財經要參
      2026-04-07 22:03:22
      陳麗華去世僅2天,遺產分配曝光!4個字,讓子女和遲重瑞恐難獲得

      陳麗華去世僅2天,遺產分配曝光!4個字,讓子女和遲重瑞恐難獲得

      愛寫的櫻桃
      2026-04-07 18:18:05
      張本美和奪冠,三十多年前何智麗的回旋鏢打回中國乒乓球隊

      張本美和奪冠,三十多年前何智麗的回旋鏢打回中國乒乓球隊

      羅納爾說個球
      2026-03-17 21:33:29
      Claude Code 更新后“翻車”,思考深度驟降67%,“無法再信任其處理復雜工程任務”!

      Claude Code 更新后“翻車”,思考深度驟降67%,“無法再信任其處理復雜工程任務”!

      華爾街見聞官方
      2026-04-07 16:17:25
      太浪漫了!小伙苦尋18次偶遇的短發女孩,成都東站多個大屏被炸鍋

      太浪漫了!小伙苦尋18次偶遇的短發女孩,成都東站多個大屏被炸鍋

      火山詩話
      2026-04-07 05:20:23
      張凌赫在高鐵站崩潰了!?

      張凌赫在高鐵站崩潰了!?

      八卦瘋叔
      2026-04-07 10:38:21
      安徽女童遇害案告破,女鄰居兇手身份曝光,案件細節流出

      安徽女童遇害案告破,女鄰居兇手身份曝光,案件細節流出

      陌上桃花開的
      2026-04-08 02:52:14
      重慶南川區委書記馬奇柯主持召開區“四大家”正職退休老同志座談會

      重慶南川區委書記馬奇柯主持召開區“四大家”正職退休老同志座談會

      金臺資訊
      2026-04-07 22:25:04
      2026-04-08 07:35:00
      程序員魚皮 incentive-icons
      程序員魚皮
      一手科技資訊和編程干貨
      84文章數 83關注度
      往期回顧 全部

      科技要聞

      滿嘴謊言!OpenAI奧特曼黑料大起底

      頭條要聞

      特朗普稱美方正就伊朗戰爭進行“激烈談判”

      頭條要聞

      特朗普稱美方正就伊朗戰爭進行“激烈談判”

      體育要聞

      霸氣!趙心童:斯諾克的未來定屬于中國 20年后50%選手都是中國人

      娛樂要聞

      女首富陳麗華離世 被曝生前已分好遺產

      財經要聞

      10萬億財政轉移支付,被誰拿走了?

      汽車要聞

      不止是大 極狐首款MPV問道V9靜態體驗

      態度原創

      本地
      教育
      房產
      手機
      公開課

      本地新聞

      跟著歌聲游安徽,聽古村回響

      教育要聞

      “祖籍成都?”倆初中男孩合照走紅,網友:正常男生不會這樣坐

      房產要聞

      重磅!三亞擬出安居房新政!

      手機要聞

      榮耀WIN2系列曝光:10000mAh電池+2nm芯片,續航性能雙巔峰!

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關懷版