Megosztás a következőn keresztül:


Teljesítménytippek minőségi Egyéni Power BI-vizualizációk létrehozásához

Ez a cikk bemutatja, hogyan érheti el a fejlesztők a nagy teljesítményt az egyéni vizualizációk renderelése során.

Senki sem szeretné, hogy a vizualizációk megjelenítése hosszú időt vesz igénybe. A kód írásakor kritikus fontosságú, hogy a vizualizáció a lehető leggyorsabban renderelhető legyen.

Megjegyzés:

A platform továbbfejlesztése és továbbfejlesztése során az API új verziói folyamatosan jelennek meg. Annak érdekében, hogy a Power BI-vizualizációk platformja és szolgáltatáskészlete a lehető legtöbbet hozhassa ki, javasoljuk, hogy naprakészen tartsa a legújabb verziót. Ha meg szeretné tudni, hogy melyik verziót használja, ellenőrizze a apiVersionpbiviz.json fájlban.

Az alábbiakban néhány javaslatot talál az egyéni vizualizáció optimális teljesítményének eléréséhez.

Beépülő modul méretének csökkentése

A kisebb egyéni vizualizációs beépülő modul mérete a következőt eredményezi:

  • Gyorsabb letöltési idő
  • Gyorsabb telepítés a vizualizáció futtatásakor

Ezek a külső erőforrások segíthetnek a beépülő modul méretének csökkentésében azáltal, hogy módot talál a nem használt kód eltávolítására, illetve a faremegés és a kódfelosztás eltávolítására.

A vizualizáció renderelési idejének ellenőrzése

Mérje meg a vizualizáció megjelenítési idejét különböző helyzetekben, és ellenőrizze, hogy a szkript mely részeire van szükség optimalizáláshoz.

Power BI Desktop teljesítményelemző

Screenshot of Performance Analyzer icon in main menu.

A Power BI Desktop teljesítményelemzőjével (View> Teljesítményelemző) ellenőrizheti, hogy a vizualizáció hogyan jelenik meg a következő esetekben:

  • A vizualizáció első renderelése
  • Több ezer adatpont
  • Egyetlen adatpont/mérték (a vizualizációk többletterhelésének meghatározásához)
  • Szűrés
  • Szeletelés
  • Átméretezés (lehet, hogy nem működik a teljesítményelemzőben)

Ha lehetséges, hasonlítsa össze ezeket a méréseket egy hasonló alapvető vizualizációéval, és ellenőrizze, hogy vannak-e optimalizálható részek.

A Felhasználó időzítése API használata

Az alkalmazás JavaScript-teljesítményének méréséhez használja a User Timing API-t. Ez az API segít eldönteni, hogy a szkript mely részeit kell optimalizálni.

További információkért lásd a Felhasználó időzítése API használatát ismertető témakört.

Az egyéni vizualizáció tesztelésének egyéb módjai

  • Kódállapot – Az alábbi konzoleszközökkel gyűjthet adatokat az egyéni vizualizáció teljesítményéről (vegye figyelembe, hogy ezek az eszközök külső külső eszközökre hivatkoznak):

  • Az alábbi webfejlesztői eszközök a vizualizáció teljesítményének mérésében is segíthetnek, de ne feledje, hogy a Power BI-t is profillal látják el:

Miután megállapította, hogy a vizualizáció mely részeinek kell optimalizálnia, tekintse meg ezeket a tippeket.

Üzenetek frissítése

A vizualizáció frissítésekor:

  • Ne módosítsa újra a teljes vizualizációt, ha csak néhány elem módosult. Csak a szükséges elemek megjelenítése.
  • Tárolja a frissítés során átadott adatnézetet. Csak azokat az adatpontokat jeleníti meg, amelyek eltérnek az előző adatnézettől. Ha nem változtak, nem kell újrarendeznünk őket.
  • Az átméretezést gyakran automatikusan végzi a böngésző, és nem igényel frissítést a vizualizációhoz.

DOM-csomópontok gyorsítótárazása

Ha a rendszer lekéri a csomópontokat vagy a csomópontok listáját a DOM-ból, gondolja át, hogy újra felhasználhatja-e őket későbbi számításokban (néha még a következő ciklus iterációjában is). Ha nem kell több csomópontot hozzáadnia vagy törölnie a megfelelő területen, a gyorsítótárazás javíthatja az alkalmazás általános hatékonyságát.

Annak érdekében, hogy a kód gyors legyen, és ne lassítsa le a böngészőt, tartsa a DOM-hozzáférést a minimálisra.

Például:

Ahelyett, hogy:

public update(options: VisualUpdateOptions) { 
    let axis = $(".axis"); 
}

Próbálja ki:

public constructor(options: VisualConstructorOptions) { 
    this.$root = $(options.element); 
    this.xAxis = this.$root.find(".xAxis"); 
} 

public update(options: VisualUpdateOptions) { 
    let axis = this.axis; 
}

A DOM-manipuláció elkerülése

A lehető legnagyobb mértékben korlátozza a DOM-manipulációkat. Az olyan műveletek beszúrása, mint a prepend(), append()after() és időigényesek, és csak akkor használhatók, ha szükséges.

Például:

Ahelyett, hogy:

for (let i=0; i<1000; i++) { 
    $('#list').append('<li>'+i+'</li>');
}

Próbálja ki:

A fenti példa gyorsabbá tétele a lista előzetes használatával html() és létrehozásával:

let list = ''; 
for (let i=0; i<1000; i++) { 
    list += '<li>'+i+'</li>'; 
} 

$('#list').html(list); 

JQuery újragondolás

Korlátozza a JS-keretrendszereket, és amikor csak lehetséges, natív JS használatával növelje a rendelkezésre álló sávszélességet, és csökkentse a feldolgozási többletterhelést. Ez csökkentheti a régebbi böngészők kompatibilitási problémáit is.

További információkért tekintse meg youmightnotneedjquery.com olyan függvények alternatív példáit, mint a JQueryshowhideaddClass, stb.

Animáció

Animációs beállítások

Az animációk ismételt használatához fontolja meg a Vászon vagy a WebGL használatát SVG helyett. Az SVG-vel ellentétben ezekkel a beállításokkal a teljesítményt a tartalom helyett a méret határozza meg.

További információ az SVG és a vászon közötti különbségekről : A választás menete.

Vászonteljesítmény-tippek

A vászon teljesítményének javítására vonatkozó tippekért tekintse meg a következő külső webhelyeket.

Megtudhatja például, hogyan kerülheti el a szükségtelen vászonállapot-módosításokat úgy, hogy a pozíció helyett szín alapján jeleníti meg a módosításokat .

Animációs függvények

A requestAnimationFrame használatával frissítheti a képernyőn megjelenő animációkat, így az animációs függvényeket a böngésző meghívja, mielőtt egy másik újrafestést hív meg.

Animációs hurkok

Az animációs ciklus újraírja a változatlan elemeket?

Ha igen, időt pazarol az olyan rajzelemekre, amelyek nem változnak keretről keretre.

Megoldás: A keretek szelektív frissítése.

Statikus vizualizációk animálásakor csábító, hogy az összes rajzkódot egyetlen frissítési függvénybe szúrja be, és az animációs ciklus minden iterációjához új adatokkal hívja meg.

Ehelyett fontolja meg a vizualizációk konstruktorának használatát, hogy mindent statikusan rajzoljon. Ezután a frissítési függvénynek csak a változó vizualizációelemeket kell rajzolnia.

Tipp.

A nem hatékony animációs hurkok gyakran találhatók tengelyekben és jelmagyarázatokban.

Common issues

  • Szövegméret kiszámítása: Ha sok adatpont van, ne pazarolja az időt az egyes pontok szövegméretének kiszámítására. Számítsunk ki néhány pontot, majd becsüljük meg.
  • Ha a vizualizáció egyes elemei nem láthatók a kijelzőn, akkor nem kell renderelni őket.

Optimalizálási útmutató a Power BI-hoz

További kérdések?Kérdezze meg a Power BI-közösség.