什麼是 Python 中的自我:真實世界的例子
什麼是 Python 中的自我:真實世界的例子
在這篇博文中,我們將學習如何在 Power Apps 中使用並發功能。顧名思義,並發函數允許您在 Power Apps 中並發運行函數。
通常,當您運行任何流程或工作流時,它們需要一個接一個地運行。但在某些特殊情況下,您可以通過讓它們並發或同時運行來優化您的應用程序。這就是我們將在本文中討論的內容。
我這裡有一個非常簡單的應用程序,我們希望在Power Apps中對其進行優化。當用戶在此處鍵入一個短語時,“運行序列”按鈕會執行很多不同的操作。
讓我們轉到Run Sequence 按鈕的OnSelect 屬性。
正如我們在這裡看到的,有很多事情正在發生。我們首先設置變量StartTime = Now,這樣我們就可以計算這需要多長時間。
然後我們清除名為 Output 的集合變量。
然後我們做這些可能花費最長時間的事情。我們基本上要求Microsoft Translator將我們在文本輸入中輸入的任何內容翻譯成法語、德語、荷蘭語、韓語、希臘語、西班牙語和印地語。每行末尾的分號表示這是按順序發生的。
我們做的最後一件事是獲取所有這些輸入、所有這些變量,並從中創建一個集合。該集合包含我們要翻譯的實際文本、我們將翻譯成的語言以及實際翻譯的文本。再一次,我們為法語、德語、荷蘭語等等做這件事。
目錄
刷新 SharePoint 連接
我們還將刷新SharePoint連接以添加額外的處理時間層。然後,我們將設置變量EndTime = Now,因為我們想跟踪整個序列需要多長時間。
同樣,這是我們通過此處分號的存在而知道的序列。每個分號代表一個新函數的開始,所以這一切都是按順序發生的。
讓我們通過單擊“運行序列”按鈕來運行該程序。我們可以看到它輸出了一個表格,其中包含實際的短語Hello、語言及其相應的翻譯。
我們還可以在底部看到,當我們刷新 SharePoint 列表時,它花費了 500 毫秒。
顯然,這並沒有花太長時間。沒有人會為需要 500 毫秒處理的東西而煩惱。
但是,如果這些過程(使用第三方服務)確實需要很長時間怎麼辦?如果我們不只是在這裡寫一個詞,而是在這裡複製並粘貼美國憲法的第二節,然後運行序列,會怎麼樣?
這個花了一點時間。耗時 1700 毫秒或大約 1.7 秒。
如果我複制並粘貼美國憲法第 3 節,將花費更長的時間。現在我們大約有四秒鐘。
Power Apps 中的順序函數與並發函數
您可以看到並發運行這些函數的用例,因為如果您按順序運行它們,並且如果您傾向於使用非常複雜的函數,那麼它確實往往需要一段時間。
現在讓我們做完全相同的事情,但在右側,我們將同時進行。讓我們將它改回Hello,運行序列,複製它,並將它帶到右側。
我們需要轉到此按鈕的 OnSelect 屬性,我們需要更改它以使其並發。在清除輸出之後,我們將輸入單詞Concurrent。
Power Apps 中的並發函數採用不同的函數作為參數,或者 Power Apps 稱之為公式。所以我們要讓這一切並發,這意味著 Power Apps 不會先做法語,然後做德語,然後做荷蘭語,它會同時做這一切。
我們將在並發函數中包含所有這些函數。它給我們一個錯誤的原因是因為並發函數將參數作為由逗號分隔的公式。我們目前正在使用分號,所以我們需要做的就是進入其中的每一個並將它們更改為逗號。
最後一次分號,我們將去掉它,因為它是該函數的最後一個參數。然後我們需要在最後一個分號,因為並發在技術上也是一個函數。
我們要做的最後一件事是將Refresh Customers List移動到並發函數,因為這裡沒有依賴項。
同樣,我們這樣做的原因是因為所有這些功能都不相互依賴,這意味著它們不需要按順序發生。它們可以同時發生,這就是我們首先這樣做的原因。
所以在我們完成所有這些之後,我們需要確保我們走到這裡並將其設置為Start Time two和End Time two,這樣它就不會與其他開始時間和其他結束時間變量衝突.
我們還將Output更改為Output Two,這樣變量就不會混在一起。
讓我們關閉這個功能並測試一下。我們會將變量從End Time更改為End Time Two,將Start Time更改為Start Time Two。
然後我們將修改數據表以查看輸出二,因為這是此按鈕產生的結果。我們會將按鈕從Run Sequence更改為Run Concurrent。
所以現在我們有兩件事做完全相同的事情。一種是順序進行,一種是同時進行。
讓我們做一些測試。我們將輸入 Hello,然後運行序列。我們將首先運行序列按鈕,然後運行並發按鈕。
我們可以看到,concurrent 比 sequential 快兩三倍左右。現在,讓我們繼續複製美國憲法的第 1、2、3、4、5、6 和 7 部分,看看使用順序和並發按鈕時這部分需要多長時間。
序列按鈕花了很長時間,並且有明顯的停頓。您的用戶不會喜歡那樣。但是如果你要同時運行它,它只需要一秒鐘。
這還需要一段時間。但是您知道您正在以最優化的方式進行操作。對於您的用戶來說,一秒和三秒之間的差異可能意義重大。
3 倍乘數非常適合優化您的 Power Apps。
Power Apps 中並發功能的優勢
請注意,這裡有一些未優化的內容。假設您有 40、50 或 60 種語言,那麼您不僅會注意到 2 倍或 3 倍的乘數,您可能還會注意到 10 倍或 12 倍的乘數,因為您同時做的事情比按順序做的多。
所以在這個例子中,你只看到一個 3x 乘數,但同樣,如果你有比我們在這裡運行的進程更多的並發進程,那麼你會注意到更快的速度。
結論
在這篇博文中,我們討論了並發函數是什麼以及如何使用它來使您的 Power Apps 更加優化。當您進行多個數據更新或讀取多個數據源時,您可以使用並發功能更快地完成。
祝一切順利,
亨利·哈比卜
什麼是 Python 中的自我:真實世界的例子
您將學習如何在 R 中保存和加載 .rds 文件中的對象。本博客還將介紹如何將對像從 R 導入 LuckyTemplates。
在此 DAX 編碼語言教程中,了解如何使用 GENERATE 函數以及如何動態更改度量標題。
本教程將介紹如何使用多線程動態可視化技術從報告中的動態數據可視化中創建見解。
在本文中,我將貫穿過濾器上下文。篩選上下文是任何 LuckyTemplates 用戶最初應該了解的主要主題之一。
我想展示 LuckyTemplates Apps 在線服務如何幫助管理從各種來源生成的不同報告和見解。
了解如何在 LuckyTemplates 中使用度量分支和組合 DAX 公式等技術計算利潤率變化。
本教程將討論數據緩存物化的想法,以及它們如何影響 DAX 在提供結果時的性能。
如果直到現在你還在使用 Excel,那麼現在是開始使用 LuckyTemplates 來滿足你的業務報告需求的最佳時機。
什麼是 LuckyTemplates 網關?所有你必須知道的