# CPU 不降下來的那檔事 - 第一次用 While,吃了 While 的虧,也被 UI 騙了... ###### tags: `被玩壞了` ## 花生省魔術 在題庫管理系統的組卷規則中,有較為複雜的抽題程式, 我不知道為什麼在網頁上一直案 F5 看他重新抽題,然後就聽到風扇開始躁動,才發現 CPU... 上升後沒下降。  ## 怎麼找 後來用測試專案讓那個 Function 迴圈跑 50 次、20 次... 寫 Log 看到底是在哪邊停了下來... 就發現真的遇到有一個地方直接停下來,才慢慢找到問題... ※Log 只是在每個主要步驟的開始寫 "正在進行___(功能)"。 ## 最終找到了 程式有地方有 While 迴圈,卡在這個迴圈, <span style="color:red">**才發現前置作業過濾出來的資料邏輯有誤**,</span> 導致沒資料還一直去 Random 取資料, 條件也沒設好,也沒限制次數報錯。 調整好取資料邏輯後,基本上沒異常了 ~~**所以 CPU 一直不下降是因為後面真的有一個無窮迴圈在 Run ...**~~ ## 為什麼一開始沒發現 我是在網頁一直 F5 ( 我只是想讓他一直運算 ), 可能過程中有些畫面根本沒呈現好,就又被我中斷就繼續重整 !! ( 沒想太多的我就讓他跑下去,看起來也很正常 ) 其實,沒呈現好的那些 Request,真的有卡到無窮迴圈... ## 在跟別人分享、討論的時候我學到... * 使用 While 的時候真的要小心,可以考慮設計跑 100 次就先拋錯在查,但是治標不治本,最好的情況當然是你設計好正確的條件 * **IIS 應用程式集區,設定 CPU High 時怎麼處理 ( 預設是 NoAction,不處理。其他設定是Throttle Under Load / Throttle / Kill,前面 2 項是強制只用多少 % CPU,後面是直接殺掉 ( 重新整理的意思 )** ## 後續趣事 其實在跟別人分享的過程中 大家第一句都說.... 「你沒事怎麼會去看CPU?」 「其實只是我風扇很吵... 4、50%就在吵XD...」
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up