程式設計效能注意事項(二) 非同步

2022-01-16 13:10:04 字數 472 閱讀 6927

一、非同步型別的選擇。

編寫**前應考慮的兩個問題:

你的**是否會「等待」某些內容,例如資料庫中的資料?

如果答案為「是」,則你的工作是 i/o 繫結。請使用asyncawait(而不使用task.run)。 不應使用任務並行庫。 相關原因在深入了解非同步的文章中說明。

你的**是否要執行開銷巨大的計算?

如果答案為「是」,則你的工作是 cpu 繫結,並且你重視響應能力,請使用asyncawait,並在另乙個執行緒上使用task.run生成工作。 如果該工作同時適用於併發和並行,則應考慮使用任務並行庫。

此外,應始終對**的執行進行測量。 例如,你可能會遇到這樣的情況:多執行緒處理時,上下文切換的開銷高於 cpu 繫結工作的開銷。 每種選擇都有折衷,應根據自身情況選擇正確的折衷方案。

程式設計注意事項

1.動態輸出表頭或資料 每次輸出之前,請先清空表頭以及資料再新增。2.一般資料都要分頁,請直接加上分頁 3.重複性資料的校驗 介面接收資料 1.介面接收資料,一般型別接受 例如 string 列印日誌,之後再轉換成自己想要的格式json等。需求評審 問題一 大面問題 1.是什麼?2.怎樣玩?業務流程...

非同步FIFO設計注意事項

近日學習用到非同步fifo,故寫下這篇部落格記錄學習心得。在我看來,非同步fifo的設計注意事項大體分為兩點 亞穩態的處理 空滿狀態的判斷 第一,來說一下亞穩態。亞穩態是指觸發器無法在某個規定時間內達到乙個可確認的狀態。在fifo的設計中,產生的原因主要由兩點 一是邏輯電平的誤判,也就是如果通過二進...

Windows8非同步程式設計的注意事項

1.預設ajax請求,相同的url會快取。var rand math.random 為了演示,這裡直接用了乙個隨機數,實際開發中最好以當前時間為種子的隨機數,防止快取 winjs.xhr done function complete result function error result 2.aj...