Petua dan amalan terbaik untuk meningkatkan prestasi aplikasi kanvas

Dalam artikel sebelumnya, anda mengetahui tentang fasa pelaksanaan dan aliran panggilan data, sumber biasa bagi prestasi perlahan, dan masalah prestasi biasa dan penyelesaian dalam aplikasi kanvas. Anda juga boleh mendapatkan manfaat dengan mengikuti petua dan amalan terbaik dalam artikel ini untuk meningkatkan prestasi aplikasi yang anda cipta.

Hadkan sambungan data

Jangan tambah lebih daripada 30 sambungan dalam satu aplikasi. Aplikasi prom pengguna baharu untuk daftar masuk kepada setiap penyambung supaya setiap penyambung tambahan meningkatkan jumlah masa aplikasi perlu untuk bermula. Ketika aplikasi berjalan, setiap penyambung memerlukan sumber CPU, memori dan lebar jalur rangkaian apabila aplikasi meminta data daripada sumber tersebut.

Anda boleh mengukur dengan cepat prestasi aplikasi anda dengan menghidupkan Alat Pembangun dalam Microsoft Edge atau Google Chrome ketika menjalankan aplikasi. Aplikasi anda besar kemungkinan mengambil masa lebih lama daripada 15 saat untuk mengembalikan data jika ia kerap meminta data dari lebih daripada 30 sambungan. Setiap sambungan tambahan dikira secara individu dalam had ini, tanpa mengira jenis sumber data yang disambungkan—seperti Microsoft Dataverse atau jadual pelayan SQL atau senarai yang dicipta menggunakan Microsoft Lists.

Hadkan bilangan kawalan

Jangan tambah lebih daripada 500 kawalan dalam satu aplikasi. Power Apps menjana model objek dokumen HTML untuk memaparkan setiap kawalan. Semakin banyak kawalan yang anda tambah, semakin banyak masa penjanaan yang Power Apps perlukan.

Dalam sesetengah kes, anda boleh mencapai hasil yang sama dan membuat aplikasi bermula lebih cepat jika anda menggunakan galeri dan bukannya kawalan individu. Selain ini, anda mungkin mahu mengurangkan bilangan jenis kawalan pada skrin yang sama. Sesetengah kawalan (seperti pemapar PDF, jadual data dan kotak kombo) menggunakan skrin pelaksanaan yang besar dan mengambil masa lebih lama untuk memaparkan.

Optimumkan sifat OnStart

Gunakan fungsi ClearCollect untuk mengecache data secara setempat jika ia tidak berubah semasa sesi pengguna. Juga, gunakan fungsi Serentak untuk memuatkan sumber data secara serentak; ini boleh mengurangkan jumlah masa yang diperlukan oleh aplikasi untuk memuatkan data sebanyak separuh. Maklumat lanjut: Fungsi serentak dalam Power Apps

Tanpa fungsi Serentak, formula berikut memuatkan setiap empat jadual sekali pada satu masa:

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

Anda boleh mengesahkan tingkah laku ini dalam Alat Pembangun untuk penyemak imbas anda, seperti yang ditunjukkan dalam imej berikut.

Rajah menunjukkan empat jadual sedang dimuatkan satu demi satu.

Anda boleh melampirkan formula yang sama dalam fungsi Serentak untuk mengurangkan keseluruhan masa yang operasi perlukan:

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

Dengan perubahan ini, aplikasi mengambil jadual secara selari, seperti yang ditunjukkan dalam imej berikut.

Rajah menunjukkan empat jadual sedang dimuatkan secara serentak.

Nota

Untuk maklumat lanjut tentang masalah prestasi dan penyelesaian yang berkaitan dengan OnStart, baca peristiwa OnStart perlu penalaan.

Tip

Kami mengesyorkan anda menggunakan sifat App.StartScreen kerana ia memudahkan pelancaran aplikasi dan meningkatkan prestasi aplikasi.

Cache data carian

Gunakan fungsi Set untuk mengecache data daripada jadual carian secara setempat untuk mengelakkan pengambilan semula data secara berulang daripada sumber. Teknik ini mengoptimumkan prestasi jika data mungkin tidak berubah semasa sesi. Seperti yang ditunjukkan dalam contoh berikut, data diperoleh daripada sumber sekali, kemudian dirujuk secara setempat sehingga 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);

Kaedah ini lebih berguna untuk data seperti maklumat kenalan, nilai lalai atau maklumat pengguna yang tidak berubah secara kerap. Anda juga boleh menggunakan teknik ini dengan fungsi Lalai dan Pengguna.

Elakkan pergantungan kawalan antara skrin

Untuk menambah baik prestasi, skrin aplikasi dimuatkan ke dalam memori hanya jika ia diperlukan. Pengoptimuman ini boleh dihambat jika, contohnya, skrin 1 dimuatkan dan salah satu formulanya menggunakan sifat kawalan daripada skrin 2. Kini, skrin 2 mesti dimuatkan untuk memenuhi kebergantungan sebelum skrin 1 boleh dipaparkan. Bayangkan skrin 2 mempunyai kebergantungan pada skrin 3, yang mempunyai kebergantungan lain pada skrin 4 dan sebagainya. Rantaian kebergantungan ini boleh menyebabkan banyak skrin dimuatkan.

Oleh sebab itu, elakkan kebergantungan formula antara skrin. Dalam sesetengah kes, anda boleh menggunakan pemboleh ubah atau koleksi global untuk berkongsi maklumat antara skrin.

Terdapat pengecualian: Dalam contoh sebelumnya, bayangkan bahawa satu-satunya cara untuk memaparkan skrin 1 ialah dengan menavigasi daripada skrin 2. Kemudian skrin 2 sudah dimuatkan dalam memori apabila skrin 1 akan dimuatkan. Tiada kerja tambahan diperlukan untuk memenuhi kebergantungan untuk skrin 2 dan oleh itu tidak ada kesan prestasi.

Gunakan perwakilan

Jika boleh, gunakan fungsi yang mewakilkan pemprosesan data kepada sumber data dan bukannya mendapatkan semula data untuk peranti tempatan bagi tujuan pemprosesan. Jika aplikasi mesti memproses data secara setempat, operasi memerlukan lebih banyak kuasa pemprosesan, memori, lebar jalur rangkaian, terutamanya jika set data adalah besar.

Tip

Untuk mengetahui tentang fungsi boleh ditugaskan yang disokong oleh penyambung khusus, pergi ke dokumentasi penyambung.

Untuk contoh fungsi boleh ditugaskan, pertimbangkan lajur ID yang ditakrifkan sebagai jenis data Nombor dalam senarai menggunakan Microsoft Lists. Formula dalam contoh berikut akan mengembalikan keputusan seperti yang dijangkakan. Walau bagaimanapun, formula pertama boleh ditugaskan manakala yang kedua adalah tidak boleh ditugaskan.

Formula Boleh diagihkan?
Filter ('List data source', ID = 123 ) Ya
Filter(`List data source', ID ="123") Tidak

Disebabkan kita menganggap yang lajur ID dalam SharePoint ditakrifkan dengan jenis data untuk Nombor, nilai sisi kanan hendaklah pemboleh ubah bernombor dan bukannya pemboleh ubah rentetan. Sebaliknya, ketidakpadanan ini mungkin mencetuskan formula menjadi tidak boleh diagihkan.

Penggunaan fungsi tidak boleh diagihkan dan had rendah data yang tidak sesuai untuk pertanyaan tidak boleh diagihkan boleh memberikan kesan buruk ke atas prestasi aplikasi. Maklumat lanjut: Memahami penugasan dalam aplikasi kanvas

Gunakan Muatan Ditunda

Hidupkan ciri pratonton untuk beban tertangguh jika apl anda mempunyai lebih daripada 10 skrin, tiada peraturan dan banyak kawalan yang berada pada berbilang skrin dan terikat terus kepada sumber data. Jika anda membina jenis aplikasi ini dan tidak dapat mendayakan ciri ini, prestasi aplikasi mungkin menderita kerana kawalan dalam semua skrin mestilah diisi sekalipun pada skrin yang tidak dibuka. Juga, semua skrin aplikasi mesti dikemas kini apabila sumber data berubah, seperti apabila pengguna menambahkan rekod.

Menggunakan set data besar

Gunakan sumber data dan formula yang boleh diwakilkan untuk memastikan aplikasi anda berprestasi baik sementara pengguna boleh mengakses semua maklumat yang mereka perlukan dan mengelak daripada melanggar had baris data 2000 untuk pertanyaan tidak boleh wakil. Untuk lajur rekod data yang pengguna boleh mencari, menapis atau mengisih data, menggunakan Indeks pada lajur seperti yang diterangkan oleh sumber data seperti Pelayan SQL atau SharePoint.

Nota

Untuk maklumat tambahan tentang cara set data besar boleh menyebabkan masalah prestasi biasa bagi platform berbeza, baca Set data besar memuat dengan perlahan pada platform berbeza.

Terbitkan semula aplikasi secara tetap

Pencipta digalakkan untuk menerbitkan aplikasi mereka dengan kerap. Disebabkan platform Power Apps terus menerus dioptimumkan dan digunakan, aplikasi anda dijana dalam pengoptimuman platform terkini apabila anda menerbitkannya semula.

Elakkan mengulang formula yang sama dalam berbilang tempat

Jika berbilang sifat menjalankan formula yang sama (terutamanya jika ia kompleks), pertimbangkan untuk menetapkannya sekali dan kemudian merujuk output sifat pertama dalam sifat berikutnya. Contohnya, jangan tetapkan sifat DisplayMode bagi kawalan A, B, C, D dan E kepada formula kompleks yang sama. Sebaliknya, tetapkan sifat DisplayMode A kepada formula yang kompleks, tetapkan sifat DisplayMode B untuk hasil sifat DisplayMode A dan sebagainya untuk C, D dan E.

Dayakan DelayOutput pada semua kawalan input Teks

Jika anda mempunyai berbilang formula atau peraturan yang merujuk nilai kawalan Input teks, tetapkan sifat DelayedOutput kawalan tersebut kepada benar. Sifat Teks kawalan tersebut akan dikemas kini hanya selepas taipan kekunci yang dimasukkan dalam penggantian pantas telah berhenti. Formula atau peraturan tidak akan berjalan banyak kali dan prestasi aplikasi akan bertambah baik.

Elakkan penggunaan Form.Updates dalam peraturan dan formula

Jika anda merujuk kepada nilai input pengguna dalam peraturan atau formula dengan menggunakan pemboleh ubah Form.Updates, ia mengulangi semua kad data borang dan mencipta rekod setiap kali. Untuk membuat aplikasi anda lebih berkesan, rujuk nilai secara langsung daripada kad data atau nilai kawalan.

Gunakan DelayItemLoading dan pemutar memuatkan untuk meningkatkan prestasi dalam Galeri

Bergantung pada konfigurasi, Galeri boleh mengambil masa lebih lama untuk memaparkan baris yang boleh dilihat. Terdapat beberapa cara untuk menambah baik prestasi.

  • Permudahkan templat. Sebagai contoh, pertimbangkan untuk mengurangkan bilangan kawalan, rujukan ke carian.
  • Galeri dengan templat kompleks boleh mendapat manfaat daripada mempunyai DelayItemLoading ditetapkan kepada benar, dan LoadingSpinner ditetapkan kepada LoadingSpinner.Controls. Perubahan ini akan meningkatkan pengalaman yang dilihat apabila masa pemaparan lebih lama. DelayItemLoading juga akan menangguhkan penjanaan templat yang akan membenarkan seluruh skrin untuk memaparkan lebih cepat kerana kedua-dua skrin dan galeri tidak bersaing untuk sumber.

Dayakan aplikasi Pramuat untuk prestasi yang dipertingkat

Anda boleh pramuat aplikasi anda secara pilihan untuk meningkatkan prestasi.

  1. Daftar masuk ke Power Apps dan kemudian pilih Aplikasi dalam menu.

  2. Pilih Lebih banyak tindakan (...) untuk aplikasi yang ingin anda kongsi dan kemudian pilih Tetapan.

  3. Dalam panel Tetapan, togol Pramuat aplikasi untuk prestasi yang dipertingkatkan kepada Ya. Aplikasi akan dipramuatkan.

Pramuat aplikasi untuk prestasi yang dipertingkat.

  1. Untuk perubahan berkuat kuasa untuk aplikasi yang tertanam dalam Teams, alih keluar dan tambahkan aplikasi anda ke dalam Teams semula.

    Nota

    Ini menjadikan aset aplikasi yang disusun boleh diakses melalui titik akhir yang tidak disahkan untuk membolehkan memuatkannya sebelum pengesahan. Walau bagaimanapun, pengguna masih hanya boleh menggunakan aplikasi anda untuk mengakses data melalui penyambung hanya selepas pengesahan dan kebenaran selesai. Kelakuan ini memastikan bahawa data yang diambil oleh aplikasi daripada sumber data tidak akan tersedia kepada pengguna yang tidak dibenarkan. Aset aplikasi yang disusun termasuk koleksi fail JavaScript yang mengandungi teks yang dikarang dalam kawalan aplikasi (seperti kawalan PCF), aset media (seperti imej), nama aplikasi dan URL persekitaran yang aplikasi berada.

    Secara umum, aplikasi harus mendapatkan semula media dan maklumat daripada sumber data, melalui sambungan. Jika media dan maklumat mesti ditambahkan pada apl, tanpa datang daripada sambungan dan dianggap sensitif, anda mungkin mahu menyahdayakan seting ini. Ambil perhatian, menyahdayakan tetapan ini akan menyebabkan pengguna menunggu lebih lama untuk mengakses apl.

Data apl yang disimpan pada peranti anda

Untuk membolehkan pengguna mendapatkan semula butiran apl dengan lebih pantas apabila apl bermula, data tertentu disimpan secara setempat pada peranti anda dalam cache penyemak imbas. Maklumat yang disimpan termasuk apl, persekitaran dan butiran sambungan. Data ini akan kekal disimpan dalam penyemak imbas berdasarkan had storan setiap penyemak imbas. Untuk mengosongkan data yang disimpan, lihat arahan bagi setiap pelayar.

Langkah-langkah berikutnya

Semak semula standard pengekodan untuk memaksimumkan prestasi dan memastikan aplikasi lebih mudah diselenggara.

Lihat juga

Fahami fasa pelaksanaan dan aliran panggilan data aplikasi kanvas
Isu dan penyelesaian prestasi aplikasi kanvas biasa
Sumber biasa prestasi perlahan untuk aplikasi kanvas
Isu dan penyelesaian biasa untuk Power Apps
Menyelesaikan masalah permulaan untuk Power Apps

Nota

Adakah anda boleh memberitahu kami tentang keutamaan bahasa dokumentasi anda? Jawab tinjauan pendek. (harap maklum bahawa tinjauan ini dalam bahasa Inggeris)

Tinjauan akan mengambil masa lebih kurang tujuh minit. Tiada data peribadi akan dikumpulkan (pernyataan privasi).