Übung – Die Funktion „Concurrent“ zum Testen der Leistung verwenden

Abgeschlossen

In dieser praktischen Übung erfahren Sie, wie Sie die Funktion „Concurrent“ zum Verbessern der Leistung verwenden.

  1. Melden Sie sich bei Power Apps an.

  2. Wählen Sie über die Homepage im Navigationsbereich links + Erstellen > Leere App > Erstellen (unter Leere Canvas-App) aus.

  3. Geben Sie Ihrer App einen entsprechenden Titel, und klicken Sie dann auf die Option Erstellen.

  4. Zunächst erstellen wir zwei Sammlungen ohne die Concurrent-Funktion dafür zu nutzen. Geben Sie ein Schaltfläche-Steuerelement ein, geben Sie ihm den Namen btnCollection, setzen Sie seine Eigenschaft Text auf "Collection", und richten Sie seine Eigenschaft OnSelect auf dieses Formular ein:

    Set(varStart,Now());
    ClearCollect(colFruit,
    {Name: "banana", Category: "fruit",AvgCost: .49},
    {Name: "peach", Category: "fruit",AvgCost: 1.12},
    {Name: "strawberry", Category: "fruit",AvgCost: 2.99},
    {Name: "apple", Category: "fruit",AvgCost: 0.98},
    {Name: "orange", Category: "fruit",AvgCost: 1.49},
    {Name: "pear", Category: "fruit",AvgCost: 0.97},
    {Name: "cantaloupe", Category: "fruit",AvgCost: 3.99},
    {Name: "pineapple", Category: "fruit",AvgCost: 2.49},
    {Name: "cherry", Category: "fruit",AvgCost: 4.99},
    {Name: "mango", Category: "fruit",AvgCost: .99}
    );
    ClearCollect(colVegetable,
    {Name: "carrot", Category: "vegetable",AvgCost: .95},
    {Name: "lettuce", Category: "vegetable",AvgCost: 1.69},
    {Name: "potato", Category: "vegetable",AvgCost: 5.14},
    {Name: "zuccini", Category: "vegetable",AvgCost: 1.99},
    {Name: "broccoli", Category: "vegetable",AvgCost: 1.49},
    {Name: "cabbage", Category: "vegetable",AvgCost: 2.48},
    {Name: "celery", Category: "vegetable",AvgCost: 1.65},
    {Name: "asparagus", Category: "vegetable",AvgCost: 2.99},
    {Name: "kale", Category: "vegetable",AvgCost: 1.99},
    {Name: "cauliflower", Category: "vegetable",AvgCost: 3.24});
    Set(varSpeedCollect, Text(DateDiff(varStart, Now(), TimeUnit.Milliseconds)));
    
  5. Eingeben einer Textbeschriftung, setzen Sie die Eigenschaft BorderThickness auf 3, ändern Sie seinen Namen in lblSpeedCollect, und richten Sie die Eigenschaft Text auf Folgendes ein:

    varSpeedCollect
    
  6. Drücken und halten Sie die ALT-Taste, und wählen Sie die Schaltfläche Sammlung aus. Die txtSpeedCollect-Beschriftung zeigt in Millisekunden an, wie lange es dauerte, den Prozess auszuführen.

    Screenshot der Ergebnisse der Schaltfläche „Sammlung“, der das varSpeedCollect-Ergebnis 2 in der Textbeschriftung anzeigt.

  7. Fügen wir nun Ihrer App die Concurrent-Funktion hinzu, um die Leistung zu vergleichen. Geben Sie ein weiteres Schaltfläche-Steuerelement ein, nennen Sie es btnConcurrent, richten Sie seine Eigenschaft Text in „Concurrent“ ein, und richten Sie die Eigenschaft OnSelect auf diese Formel fest:

    Set(varStart,Now());
    Concurrent(
    ClearCollect(collectFruit,
    {Name: "banana", Category: "fruit",AvgCost: .49},
    {Name: "peach", Category: "fruit",AvgCost: 1.12},
    {Name: "strawberry", Category: "fruit",AvgCost: 2.99},
    {Name: "apple", Category: "fruit",AvgCost: 0.98},
    {Name: "orange", Category: "fruit",AvgCost: 1.49},
    {Name: "pear", Category: "fruit",AvgCost: 0.97},
    {Name: "cantaloupe", Category: "fruit",AvgCost: 3.99},
    {Name: "pineapple", Category: "fruit",AvgCost: 2.49},
    {Name: "cherry", Category: "fruit",AvgCost: 4.99},
    {Name: "mango", Category: "fruit",AvgCost: .99}
    ),
    ClearCollect(collectVegetable,
    {Name: "carrot", Category: "vegetable",AvgCost: .95},
    {Name: "lettuce", Category: "vegetable",AvgCost: 1.69},
    {Name: "potato", Category: "vegetable",AvgCost: 5.14},
    {Name: "zucchini", Category: "vegetable",AvgCost: 1.99},
    {Name: "broccoli", Category: "vegetable",AvgCost: 1.49},
    {Name: "cabbage", Category: "vegetable",AvgCost: 2.48},
    {Name: "celery", Category: "vegetable",AvgCost: 1.65},
    {Name: "asparagus", Category: "vegetable",AvgCost: 2.99},
    {Name: "kale", Category: "vegetable",AvgCost: 1.99},
    {Name: "cauliflower", Category: "vegetable",AvgCost: 3.24}));
    Set(varSpeedConcurrent, Text(DateDiff(varStart, Now(), TimeUnit.Milliseconds)));
    
  8. Geben Sie eine weitere Textbeschriftung ein, und richten Sie die Eigenschaft BorderThickness auf 3 ein. Ändern Sie dann den Namen in lblSpeedConcurrent, und richten Sie die Eigenschaft Text auf Folgendes ein:

    varSpeedConcurrent
    
  9. Drücken und halten Sie die ALT-Taste, und wählen Sie die Schaltfläche Concurrent aus. Auf diese Weise werden dieselben zwei Sammlungen erstellt, und Sie sollten beachten, dass die Erstellung nur halb so viel Zeit in Anspruch nimmt.

    Screenshot der App mit der Beschriftung neben „Concurrent“, die halb so lange angezeigt wird wie vorher

Sie können dies durch Hinzufügen der Funktion Concurrent anzeigen, wir haben die Leistung des Erstellens unserer Sammlungen erweitert. Sie können dies verwenden, um mehrere Prozesse gleichzeitig auszuführen. Denken Sie daran, dass Sie die Reihenfolge, in der Formeln innerhalb der Concurrent-Funktion beginnen und enden, nicht vorhersagen können. Solange Ihre Ergebnisse nicht von anderen Ergebnissen in Ihrer Concurrent-Funktion abhängig sind, können alle Aufgaben gleichzeitig ausgeführt werden. Durch die Anwendung dieser Technik kann Ihre App-Leistung erheblich gesteigert werden.