共用方式為


最佳化邏輯的建議

適用於此 Power Platform Well-Architected 的效能效率檢查清單建議:

PE:06 使用高效能的邏輯,並確保它將責任轉移給平台。 僅在必要時且為了預期目的使用邏輯。

本指南介紹了最佳化程式碼和基礎結構效能的建議。 為了最佳化您的程式碼和基礎結構,您應該只在需要時才將元件用於其核心用途。 當過度使用程式碼和基礎結構時,就會造成不必要的資源消耗、瓶頸和緩慢的回應。 為了彌補這些低效率,您必須新增更多資源來完成相同的工作。

定義

詞彙 定義
並行 當多個工作或流程同時執行但不一定同時執行階段。
平行性 同時執行多個工作或流程時。

關鍵設計原則

最佳化邏輯和基礎結構需要微調邏輯和支援基礎結構以提高效能效率。 它需要高效能邏輯,能夠快速執行工作並且不會浪費資源。 它需要精心設計並精簡的基礎結構以避免不必要的複雜性。 工作負載應該使用平台的固有功能。 這種方法有助於確保邏輯和基礎結構主要用於其核心目的,並且僅在需要時使用。

最佳化邏輯效能

最佳化邏輯效能,修改程式碼以減少資源使用,最小化執行階段,並提高效能。 您可以修改邏輯來提高應用程式或流程的效率和速度。 不要用蠻力來掩蓋效能問題。 暴力破解代表新增計算資源來補償程式碼效能,例如新增額外的容量而不是解決來源問題。 您需要透過最佳化來解決效能問題。 最佳化邏輯效能有助於最大限度地提高系統資源的利用率,提高回應時間,減少延遲並增強使用者體驗。

偵測您的邏輯

偵測邏輯是指新增自訂事件記錄來收集資料並在執行階段監控邏輯效能的做法。 邏輯偵測允許開發人員收集有關執行時間等關鍵指標的資訊。 透過偵測邏輯,開發人員可以深入了解邏輯熱路徑,識別效能瓶頸,並最佳化邏輯以獲得更好的效能效率。

理想情況下,您應該在軟體開發生命週期的早期執行邏輯分析。 越早發現邏輯問題,修復起來就越便宜。 您希望盡可能實現邏輯分析的自動化。 使用動態和靜態程式碼分析工具來減少手動工作量。 例如,流程檢查工具可以醒目顯示預期效能不佳的邏輯,例如未指定篩選條件的查詢。 然而,請記住,此測試仍然是生產的模擬。 生產提供了對邏輯最佳化最清晰的理解。

權衡:邏輯監控工具可能會增加成本。

識別熱路徑

透過偵測您的邏輯,您可以測量不同邏輯路徑的資源消耗。 這些測量可協助您識別熱路徑。 熱路徑對效能和資源使用有顯著的影響。 它們是程式中關鍵或頻繁執行的部分,需要高效能和低延遲。

若要識別程式碼熱路徑,請考慮以下步驟:

  • 分析執行階段資料:收集執行階段資料並進行分析,以確定耗費時間最多的邏輯區域。 尋找經常執行或需要很長時間才能完成的邏輯模式或部分。

  • 衡量效能:使用分析工具或效能測試框架來衡量不同邏輯路徑的執行時間和資源消耗。 這個過程有助於識別瓶頸和需要改進的領域。 例如,您可以使用 Power Apps 中的監視器來更好地了解應用程式的事件和公式的工作原理,從而提高效能。

  • 考慮業務邏輯和使用者效果:根據不同邏輯路徑與應用程式的功能或關鍵業務作業的相關性評估其重要性。 確定哪些邏輯路徑對於向使用者提供價值或滿足效能要求至關重要。

最佳化邏輯

最佳化邏輯是關於改進邏輯的結構和設計,以便用更少的資源執行工作。 改進的邏輯減少了不必要的作業。 它以更少的資源消耗實現更快的執行速度。 您應該刪除邏輯路徑中任何可能影響效能的不必要的作業。 優先最佳化熱路徑以獲得最大的效能效率提升。

為了最佳化邏輯,請考慮以下策略:

  • 刪除不必要的函數呼叫:檢查您的邏輯並找出任何對於所需功能不是必不可少的並且可能對效能產生負面影響的函數。 例如,如果函數呼叫執行程式碼中先前完成的驗證,則您可以刪除不必要的驗證函數呼叫。

  • 最小化記錄作業:記錄有助於偵錯和分析,但過多的記錄會影響效能。 評估每個記錄作業的必要性,並刪除任何對效能分析不重要的不必要的記錄呼叫。 一個好的做法是允許您的系統開啟和關閉記錄,以協助除錯,同時不會導致生產效能問題。

  • 最佳化迴圈和條件:分析邏輯中的迴圈和條件,並找出可以消除的任何不必要的迭代或條件。 簡化和最佳化這些結構可以提高程式碼的效能。 盡量減少迴圈內的函數呼叫,並消除冗餘計算。 考慮將計算移到迴圈之外。

  • 減少不必要的資料處理:檢查邏輯中是否有不必要的資料處理作業,例如冗餘計算或轉換。 消除這些不必要的作業可以提高您的邏輯效率。 例如,使用 Dataverse 計算欄、總計欄Power Fx 欄,而不是在程式碼中計算值並使用儲存作業將其儲存。

  • 最佳化資料結構。 為了有效地儲存和擷取資料,請選擇適當的資料結構和所需的資料列。 針對特定問題選擇最佳的資料結構。 合適的資料結構可以提高應用程式的效能。

  • 最小化網路請求:如果您的邏輯涉及發出網路請求 (例如,使用連接器作業),請最小化請求數量並最佳化其使用。 盡可能批次處理請求並避免不必要的往返以提高效能。

  • 減少資料結構大小:檢查資料要求並消除任何不必要的欄位或屬性。 透過選擇適當的資料類型和有效地打包資料來最佳化記憶體使用情況。

  • 非同步執行工作:評估在您的邏輯中是否可以非同步而不是同步地完成工作。 例如,不要以內聯方式執行作業,而是考慮實施 Power Automate 流程來非同步處理工作。

  • 定制之前先設定。 如果可以,請使用標準應用程式元件。 外掛程式和 JavaScript 等自訂可能會影響效能。

  • 最小化控制。 僅顯示表單中所需的欄位-過多的欄位會使使用者介面混亂並影響效能。 最小化命令列、畫布應用程式或自訂頁面中的控制項數量。 避免嵌套畫廊或在畫廊中新增過多的元件。

  • 最佳化資料查詢。 僅載入應用程式或流程中所需的資料。 使用伺服器端檢視預先篩選資料以縮小與您的查詢相關的資料範圍。

查看您正在使用的 Power Platform 產品的效能建議。 根據這些建議評估您的邏輯,以確定需要改進的領域。

權衡:最佳化邏輯和熱路徑需要專業知識。 識別邏輯效率低下是一個主觀問題,可能需要技能高超的人員,您可能需要從其他工作中調動他們。

使用並行和並行

使用並行和並行涉及同時或以重疊的方式執行多個工作或流程,以有效利用運算資源。 這些技術增加了總體輸送量和工作負載可以處理的工作數量。 當您同時或並行執行工作時,它可以減少應用程式的執行階段並增加回應時間。

並行和並行有效地在計算資源之間分配工作負載。 增加並行性或並行性時,請考慮對其他系統的影響,因為您可能會超出它們的限制。 例如,Power Automate 流程中的並行迴圈一次處理每個項目可能會超出迴圈邏輯中使用的連接器的請求限制。

使用並行性。 並行性是系統在多個運算資源上同時觸發多個工作或流程的能力。 並行性將工作負載劃分為並行執行的較小工作。 當並行執行邏輯時,效能會提高,因為工作負載分佈在多個分支上。

使用並行。 並行是系統執行多個工作或程序的能力。 並行使工作負載的不同部分能夠獨立進展,從而可以提高整體效能。

  • 並行執行:並行執行允許相同的邏輯同時運作。 將並行執行限制為一個可能會產生序列化邏輯的效果,從而導致一次處理一個項目。 控制工作負載項的同時執行量,有助於管理處理過程中的資源使用。 例如,可以將 Power Automate 流程迴圈設定為使用並行控制屬性,並行處理多個動作。

    注意

    在啟用並行之前,請記住這代表將同時執行多個動作 - 如果您將資料作為迴圈的一部分寫入,請確保資料的目標可以處理同時的請求。

  • 佇列:佇列是位於工作負載的請求元件 (生產者) 和處理元件 (消費者) 之間的儲存緩衝區。 一個佇列可以有多位消費者。 隨著工作的增加,您應該擴大消費者規模以滿足需求。 生產者將工作放入佇列中。 佇列儲存工作直到消費者有容量為止。 佇列通常是將工作移交給需求高峰的處理服務的最佳方式。 有關詳細資訊,請參閱佇列型負載平衡模式儲存佇列和服務匯流排佇列

最佳化背景作業

許多應用程式需要獨立於使用者介面執行的背景工作。 應用程式可以啟動作業並繼續處理來自使用者的互動請求。 背景作業的範例包括批次作業、處理器密集型工作以及長時間執行的程序 (例如工作流程)。 當系統負載過大時,背景工作不應該阻塞應用程式,或因延遲作業而導致不一致。 有關最佳化背景作業的更多資訊,請參閱開發背景作業的建議

Power Platform 簡易化

偵測程式碼:建立畫布應用程式時,應使用效能模式來提高應用程式效率,同時應避免使用反模式。 有關更多資訊,請參閱建立高效能 Power Apps 的概觀。 使用 Power Apps 中的監視器來診斷和排除開發過程中的效能問題。

衡量參與度和結果:在建立代理程式時,追蹤對話參與度結果對於衡量代理程式效能指標和發現需要改進的領域至關重要。

最佳化程式碼邏輯:透過解決方案檢查工具功能,您可以根據一組最佳做法規則對您的解決方案執行豐富的靜態分析檢查,並快速識別有問題的模式。 透過流程檢查工具,您可以了解流程實施的哪些領域會帶來效能風險?

使用並行和平行性:Power Automate 雲端流程支援迴圈和觸發程序中的並行。 請注意,適用並行、迴圈和分批限制,並以您的效能設定檔為基礎。 Power Apps 使用 Concurrent 函數支援並行。

最佳化 Dataverse 效能:Microsoft Dataverse 提供了一個可擴展的框架,讓開發人員可以建立高度客製化和量身定制的體驗。 當您自訂、擴展或整合 Dataverse 時,請注意既定的指導和最佳做法。 請參閱使用 Microsoft Dataverse 的最佳做法和指南

效能效益檢查清單

請參閱完整的建議集。