Tips dan praktik terbaik untuk meningkatkan kinerja aplikasi kanvas

Pada artikel sebelumnya, Anda mempelajari tentang fase eksekusi dan aliran panggilan data, sumber umum performa lambat, dan masalah dan resolusi performa yang umum dalam aplikasi kanvas. Anda juga dapat memanfaatkannya dengan mengikuti tips dan praktik terbaik di artikel ini untuk meningkatkan kinerja aplikasi yang Anda buat.

Membatasi koneksi data

Jangan tambahkan lebih dari 30 sambungan dalam satu aplikasi. Aplikasi meminta pengguna baru untuk masuk ke setiap konektor, jadi setiap konektor tambahan meningkatkan jumlah waktu yang diperlukan aplikasi untuk memulai. Saat aplikasi berjalan, tiap penghubung memerlukan sumber daya CPU, memori, dan bandwith jaringan saat aplikasi meminta data dari sumber itu.

Anda dapat mengukur kinerja aplikasi dengan cepat dengan menyalakan Alat Pengembang dalam Microsoft Edge atau Google Chrome saat menjalankan aplikasi. Aplikasi Anda kemungkinan akan memakan lebih dari 15 detik untuk mengembalikan data jika sering meminta data dari lebih dari 30 sambungan. Setiap sambungan yang ditambahkan dihitung secara terpisah pada batas ini, terlepas dari jenis sumber data tersambung—seperti Microsoft Dataverse atau tabel SQL Server, atau daftar yang dibuat menggunakan Microsoft Lists.

Batasi jumlah kontrol

Jangan tambahkan lebih dari 500 kontrol dalam satu aplikasi. Power Apps menghasilkan model objek dokumen HTML untuk menampilkan setiap kontrol. Makin banyak kontrol yang Anda tambah, makin banyak waktu generasi yang dibutuhkan Power Apps.

Anda dapat, dalam beberapa kasus, mendapatkan hasil yang sama dan membuat aplikasi memulai lebih cepat jika Anda menggunakan galeri alih-alih kontrol masing-masing. Sebagai tambahan, Anda mungkin ingin mengurangi jumlah tipe kontrol pada layar yang sama. Beberapa kontrol (seperti penampil PDF, tabel data, dan kotak kombo) menarik naskah eksekusi yang besar dan memakan waktu yang lebih lama untuk dibuat.

Optimalkan properti OnStart

Gunakan fungsi ClearCollect untuk menyimpan data secara lokal jika tidak berubah selama sesi pengguna. Selain itu, gunakan fungsi Bersamaan untuk memuat sumber data secara bersamaan; hal ini dapat memotong jumlah waktu yang diperlukan aplikasi untuk memuat data menjadi setengahnya. Informasi selengkapnya: Fungsi bersamaan di Power Apps

Tanpa fungsi Bersamaan, rumus berikut memuat masing-masing empat tabel satu per satu:

ClearCollect( Product, '[SalesLT].[Product]' );
ClearCollect( Customer, '[SalesLT].[Customer]' );
ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' );
ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' )

Anda dapat mengkonfirmasikan perilaku ini di Alat Pengembang untuk browser Anda, seperti yang ditunjukkan pada gambar berikut.

Diagram yang menampilkan empat tabel yang dimuat satu per satu.

Anda dapat menyertakan rumus yang sama dakam fungsi Bersamaan untuk mengurangi waktu total yang dibutuhkan operasi:

Concurrent( 
    ClearCollect( Product, '[SalesLT].[Product]' ),
    ClearCollect( Customer, '[SalesLT].[Customer]' ),
    ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ),
    ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' ))

Dengan perubahan ini, aplikasi akan mengambil tabel secara bersamaan, seperti yang ditunjukkan pada gambar berikut.

Diagram yang menampilkan empat tabel yang dimuat serentak.

Catatan

Untuk informasi lebih lanjut tentang masalah performa dan resolusi yang terkait dengan OnStart, baca aktivitas OnStart memerlukan penyesuaian.

Tip

Sebaiknya gunakan properti App.StartScreen karena menyederhanakan peluncuran aplikasi dan meningkatkan kinerja aplikasi.

Cache data lookup

Gunakan fungsi Atur untuk menyimpan data dari tabel lookup untuk menghindari berulang kali mengambil data dari sumber. Teknik ini meningkatkan kinerja jika data mungkin tidak akan berubah selama sesi ini. Seperti ditampilkan dalam contoh berikut ini, data diambil dari sumber satu kali, kemudian direferensikan secara lokal hingga pengguna menutup aplikasi.

Set(CustomerOrder, Lookup(Order, id = “123-45-6789”));
Set(CustomerName, CustomerOrder.Name);
Set(CustomerAddress, CustomerOrder.Address);
Set(CustomerEmail, CustomerOrder.Email);
Set(CustomerPhone, CustomerOrder.Phone);

Metode ini lebih berguna untuk data seperti informasi kontak, nilai default, atau informasi pengguna yang tidak sering berubah. Anda juga dapat menggunakan teknik ini dengan fungsi Default dan Pengguna.

Hindari dependensi kontrol di antara layar

Untuk meningkatkan kinerja, layar aplikasi dimuatkan ke memori hanya sebesar yang diperlukan. Pengoptimalan ini dapat dihambat jika, misalnya, layar 1 dimuat dan salah satu rumusnya menggunakan properti kontrol dari layar 2. Sekarang layar 2 perlu dimuat memenuhi ketergantungan sebelum layar 1 dapat ditampilkan. Bayangkan layar 2 memiliki ketergantungan pada layar 3, yang memiliki ketergantungan lain pada layar 4, dan seterusnya. Rantai ketergantungan ini dapat mengakibatkan banyak layar untuk dimuat.

Untuk alasan ini hindari ketergantungan rumus antara layar. Dalam beberapa kasus Anda dapat menggunakan variabel global atau koleksi untuk membagi informasi antara layar.

Ada pengecualian: Dalam contoh sebelumnya bayangkan satu-satunya cara untuk menampilkan layar 1 adalah dengan menavigasi dari layar 2. Kemudian layar 2 akan telah dimuat dalam memori saat layar 1 akan dimuat. Tidak ada pekerjaan tambahan yang diperlukan untuk memenuhi dependensi untuk layar 2 dan oleh karena itu tidak ada dampak kinerja.

Gunakan delegasi

Saat memungkinkan, gunakan fungsi yang mendelegasi pemrosesan data alih-alih mengumpulkan data ke perangkat lokal untuk pemrosesan. Jika aplikasi harus memproses data secara lokal, operasi memerlukan lebih banyak daya pemrosesan, memori, dan bandwidth jaringan, terutama jika dataset besar.

Tip

Untuk mempelajari tentang fungsi yang dapat didelegasikan yang didukung oleh konektor tertentu, buka dokumentasi Konektor.

Untuk contoh fungsi yang dapat di didelegasikan, pertimbangkan kolom ID yang didefinisikan sebagai Jenis data angka di daftar yang dibuat dengan Microsoft lists. Rumus dalam contoh berikut akan mengembalikan hasil seperti yang diharapkan. Namun, rumus pertama dapat didelegasikan sedangkan yang kedua tidak dapat didelegasikan.

Rumus Dapat didelegasikan?
Filter ('List data source', ID = 123 ) Ya
Filter(`List data source', ID ="123") Tidak

Karena kita asumsikan bahwa kolom ID di SharePoint didefinisikan dengan jenis data Angka, nilai sisi kanan harus berupa variabel numerik dan bukan variabel string. Jika tidak, ketidakcocokan ini mungkin memicu rumus menjadi tidak dapat didelegasikan.

Penggunaan fungsi yang tidak dapat didelegasikan dan batas baris data yang tidak sesuai untuk kueri yang tidak dapat didelegasikan dapat mempengaruhi kinerja aplikasi secara negatif. Informasi lebih lanjut: Memahami delegasi dalam aplikasi kanvas

Gunakan Muatan Tertunda

Aktifkan fitur pratinjau untuk pemuatan tertunda jika aplikasi Anda memiliki lebih dari 10 layar, tanpa aturan, dan banyak kontrol yang ada di beberapa layar dan langsung terikat ke sumber data. Jika Anda membangun aplikasi jenis ini dan tidak mengaktifkan fitur ini, performa aplikasi bisa menurun karena kontrol di semua layar harus diisi bahkan pada layar yang tidak terbuka. Juga, semua layar dari aplikasi harus diperbarui tiap kali sumber data berubah, seperti saat pengguna menambahkan sebuah rekaman.

Bekerja dengan dataset besar

Gunakan sumber data yang dapat didelegasikan untuk menjaga kinerja aplikasi Anda baik selama pengguna dapat mengakses semua informasi yang mereka butuhkan, dan menghindari mengenai batas baris data dari 2000 untuk pertanyaan yang tidak dapat didelegasikan. Untuk kolom rekaman data yang dapat dicari, difilter, atau diurutkan datanya oleh pengguna, gunakan indeks pada kolom seperti dijelaskan oleh sumber data seperti SQL Server atau SharePoint.

Catatan

Untuk informasi tambahan tentang seberapa besar kumpulan data dapat menyebabkan masalah performa umum pada platform yang berbeda, baca Kumpulan data besar lambat dimuat di platform yang berbeda.

Terbit ulang aplikasi secara rutin

Pembuat dianjurkan untuk mempublikasikan aplikasi mereka secara teratur. Karena platform Power Apps terus dioptimalkan dan disebarkan, aplikasi Anda diregenerasi dalam optimalisasi platform terbaru saat Anda menerbitkan ulang aplikasi.

Hindari mengulangi rumus yang sama dalam banyak tempat

Jika banyak properti berjalan dalam rumus yang sama (terutama jika itu rumit), pertimbangkan untuk memasangnya sekali lalu mereferensikan keluaran dari properti pertama dalam kelanjutannya. Sebagai contoh, jangan memasang properti DisplayMode dari A, B, C, D dan E kepada rumus rumit yang sama. Sebagai gantinya pasang properti DisplayMode A ke rumus rumit, pasang properti DisplayMode ke hasil dari properti DisplayMode A, dan seterusnya untuk C, D, dan E.

Aktifkan DelayOutput pada semua kontrol masukan Teks

Jika Anda memiliki banyak rumus atau peraturan yang mereferensilam nilai dari kontrol Masukkan teks, pasang properti DelayedOutput dari kontrol itu ke benar. Properti Teks dari kontrol tersebut akan diperbarui hanya setelah tekanan tombol yang dimasukkan dalam urutan cepat telah berhenti. Rumus atau aturan tidak akan berjalan sebanyak mungkin dan kinerja aplikasi akan membaik.

Hindari menggunakan Form.Updates dalam aturan dan rumus

Jika Anda mereferensikan nilai input pengguna pada aturan atau rumus menggunakan variabel Form.Updates, maka nilai akan diulang di semua kartu data formulir dan membuat rekaman setiap kali. Untuk membuat aplikasi Anda lebih efisien, referensikan nilai dari kartu data atau nilai kontrol.

Gunakan DelayItemLoading dan Loading spinner untuk meningkatkan kinerja di Galeri

Tergantung pada konfigurasi, Galeri dapat membutuhkan waktu lebih lama untuk menampilkan baris yang terlihat. Ada beberapa cara untuk meningkatkan kinerja.

  • Menyederhanakan template. Contohnya, pertimbangkan untuk mengurangi jumlah kontrol, referensi ke pencarian.
  • Galeri dengan template yang kompleks dapat memanfaatkan DelayItemLoading yang diatur ke true dan LoadingSpinner diatur ke LoadingSpinner.Controls. Perubahan ini akan meningkatkan pengalaman yang dirasakan ketika waktu menyajikan lebih lama. DelayItemLoading juga akan menunda rendering template yang akan memungkinkan layar lainnya ditampilkan lebih cepat karena layar dan galeri tidak bersaing untuk sumber daya.

Aktifkan Aplikasi pra-muat untuk performa yang ditingkatkan

Anda dapat memilih untuk memuat aplikasi dari awal untuk meningkatkan performanya.

  1. Masuk ke Power Apps, lalu pilih aplikasi di menu.

  2. Pilih Tindakan lainnya (...) untuk aplikasi yang ingin Anda bagikan, lalu pilih Pengaturan.

  3. Di panel Pengaturan, alihkan Muat aplikasi dari awal untuk peningkatan performa ke Ya. Aplikasi kemudian akan memuat sebelumnya.

Aplikasi pra-muat untuk performa yang ditingkatkan.

  1. Agar perubahan dapat diterapkan untuk aplikasi yang disematkan di Teams, hapus dahulu, lalu tambahkan kembali aplikasi Anda ke Teams.

    Catatan

    Hal ini membuat aset aplikasi yang dikompilasi dapat diakses melalui titik akhir yang tidak diautentikasi untuk memungkinkan memuatnya sebelum autentikasi. Namun, pengguna tetap hanya dapat menggunakan aplikasi Anda untuk mengakses data melalui konektor hanya setelah autentikasi dan otorisasi selesai. Perilaku ini memastikan bahwa data yang diambil aplikasi dari sumber data tidak akan tersedia untuk pengguna yang tidak sah. Aset aplikasi yang dikompilasi mencakup kumpulan file JavaScript yang berisi teks yang ditulis dalam kontrol aplikasi (seperti kontrol PCF), aset media (seperti gambar), nama aplikasi, dan URL lingkungan tempat aplikasi berada.

    Secara umum, aplikasi harus mengambil media dan informasi dari sumber data, melalui koneksi. Jika media dan informasi harus ditambahkan ke aplikasi, tanpa berasal dari koneksi, dan dianggap sensitif, Anda mungkin ingin menonaktifkan pengaturan ini. Catatan, menonaktifkan setelan ini akan mengakibatkan pengguna menunggu sedikit lebih lama untuk mengakses aplikasi.

Data aplikasi yang disimpan di perangkat Anda

Untuk memungkinkan pengguna mengambil detail aplikasi lebih cepat saat aplikasi dimulai, data tertentu disimpan secara lokal di perangkat Anda di cache browser. Informasi yang disimpan mencakup detail aplikasi, lingkungan, dan koneksi. Data ini akan tetap disimpan di browser berdasarkan batas penyimpanan masing-masing browser. Untuk menghapus data yang tersimpan, lihat petunjuk untuk setiap browser.

Langkah berikutnya

Tinjau standar coding untuk memaksimalkan kinerja aplikasi dan menjaga aplikasi lebih mudah untuk dijaga.

Lihat juga

Memahami fase eksekusi aplikasi kanvas dan alur panggilan data
Masalah dan resolusi kinerja umum aplikasi kanvas
Sumber performa lambat yang umum untuk aplikasi kanvas
Masalah dan resolusi umum untuk Power Apps
Memecahkan masalah pengaktifan untuk Power Apps

Catatan

Apa bahasa dokumentasi yang Anda inginkan? Lakukan survei singkat. (perlu diketahui bahwa survei ini dalam bahasa Inggris)

Survei akan berlangsung kurang lebih selama tujuh menit. Tidak ada data pribadi yang dikumpulkan (pernyataan privasi).