Rekomendasi untuk mengoptimalkan logika

Berlaku untuk rekomendasi daftar periksa Efisiensi Kinerja yang Dirancang dengan Baik ini Power Platform :

PE:06 Gunakan logika yang berperforma, dan pastikan bahwa logika tersebut memindahkan tanggung jawab ke platform. Gunakan logika hanya untuk tujuan yang dimaksudkan dan hanya jika diperlukan.

Panduan ini menjelaskan rekomendasi untuk mengoptimalkan kode dan performa infrastruktur. Untuk mengoptimalkan kode dan infrastruktur, Anda harus menggunakan komponen hanya untuk tujuan intinya dan hanya jika diperlukan. Saat Anda menggunakan kode dan infrastruktur secara berlebihan, itu menciptakan konsumsi sumber daya yang tidak perlu, kemacetan, dan respons yang lambat. Untuk mengkompensasi inefisiensi tersebut, Anda harus menambahkan lebih banyak sumber daya untuk menyelesaikan tugas yang sama.

Definisi

Istilah Devinisi
Keserempakan Ketika beberapa tugas atau proses dilakukan sekaligus tetapi tidak harus pada waktu yang sama persis.
Paralelisme Ketika beberapa tugas atau proses dilakukan secara bersamaan.

Strategi desain utama

Mengoptimalkan logika dan infrastruktur memerlukan penyempurnaan logika dan infrastruktur pendukung untuk meningkatkan efisiensi kinerja. Ini membutuhkan logika berkinerja yang menjalankan tugas dengan cepat dan tidak membuang-buang sumber daya. Ini membutuhkan infrastruktur yang dirancang dengan baik yang disederhanakan untuk menghindari kerumitan yang tidak perlu. Beban kerja harus menggunakan kemampuan yang melekat pada platform. Pendekatan ini membantu memastikan logika dan infrastruktur digunakan terutama untuk tujuan intinya dan hanya saat diperlukan.

Mengoptimalkan performa logika

Untuk mengoptimalkan performa logika, ubah kode untuk mengurangi penggunaan sumber daya, meminimalkan runtime, dan meningkatkan performa. Anda dapat memodifikasi logika untuk meningkatkan efisiensi dan kecepatan aplikasi atau alur. Jangan menutupi masalah kinerja dengan kekerasan. Brute force berarti menambahkan sumber daya komputasi untuk mengkompensasi performa kode, seperti menambahkan kapasitas ekstra alih-alih menangani sumber. Anda perlu memperbaiki masalah performa dengan pengoptimalan. Saat Anda mengoptimalkan performa logika, ini membantu memaksimalkan pemanfaatan sumber daya sistem, meningkatkan waktu respons, mengurangi latensi, dan meningkatkan pengalaman pengguna.

Instrumentasikan logika Anda

Logika instrumentasi mengacu pada praktik menambahkan pengelogan peristiwa kustom untuk mengumpulkan data dan memantau performa logika selama runtime. Instrumentasi logika memungkinkan pengembang untuk mengumpulkan informasi tentang metrik utama seperti waktu eksekusi. Dengan menginstrumentasikan logika, pengembang dapat memperoleh wawasan tentang jalur panas logika, mengidentifikasi kemacetan performa, dan mengoptimalkan logika untuk efisiensi performa yang lebih baik.

Idealnya, Anda harus melakukan analisis logika di awal siklus hidup pengembangan perangkat lunak. Semakin dini Anda menangkap masalah logika, semakin murah untuk memperbaikinya. Anda ingin mengotomatiskan sebanyak mungkin analisis logika ini. Gunakan alat analisis kode dinamis dan statis untuk mengurangi upaya manual. Misalnya,Pemeriksa Alur dapat menyoroti logika yang tidak diharapkan berperforma, seperti kueri yang tidak menentukan kriteria filter. Namun, perlu diingat bahwa pengujian ini masih merupakan simulasi produksi. Produksi memberikan pemahaman paling jelas tentang pengoptimalan logika.

Pengorbanan: Alat pemantauan logika cenderung meningkatkan biaya.

Mengidentifikasi jalur panas

Dengan menginstrumentasikan logika Anda, Anda dapat mengukur konsumsi sumber daya untuk jalur logika yang berbeda. Pengukuran ini membantu Anda mengidentifikasi jalur panas. Jalur panas memiliki efek yang signifikan pada performa dan penggunaan sumber daya. Mereka adalah bagian penting atau sering dieksekusi dari program yang membutuhkan kinerja tinggi dan latensi rendah.

Untuk mengidentifikasi jalur panas kode, pertimbangkan langkah-langkah berikut:

  • Menganalisis data runtime: Kumpulkan data runtime dan analisis untuk mengidentifikasi area logika yang menghabiskan waktu yang paling banyak berlalu. Cari pola atau bagian logika yang sering dieksekusi atau membutuhkan waktu lama untuk menyelesaikannya.

  • Mengukur performa: Gunakan alat pembuatan profil atau kerangka kerja pengujian performa untuk mengukur waktu eksekusi dan konsumsi sumber daya jalur logika yang berbeda. Proses ini membantu mengidentifikasi kemacetan dan area yang perlu diperbaiki. Misalnya, Anda dapat menggunakan Monitor untuk Power Apps mendapatkan pemahaman yang lebih baik tentang cara kerja peristiwa dan rumus aplikasi Anda sehingga Anda dapat meningkatkan performa.

  • Pertimbangkan logika bisnis dan efek pengguna: Evaluasi pentingnya jalur logika yang berbeda berdasarkan relevansinya dengan fungsionalitas aplikasi atau operasi bisnis penting. Tentukan jalur logika mana yang penting untuk memberikan nilai kepada pengguna atau untuk memenuhi persyaratan performa.

Mengoptimalkan logika

Mengoptimalkan logika adalah tentang menyempurnakan struktur dan desain logika untuk melakukan tugas dengan sumber daya yang lebih sedikit. Logika yang ditingkatkan mengurangi operasi yang tidak perlu. Ini menciptakan eksekusi yang lebih cepat dengan konsumsi sumber daya yang lebih sedikit. Anda harus menghapus operasi yang tidak perlu dalam jalur logika yang mungkin memengaruhi performa. Prioritaskan pengoptimalan jalur panas untuk melihat peningkatan efisiensi kinerja terbesar.

Untuk mengoptimalkan logika, pertimbangkan strategi berikut:

  • Hapus panggilan fungsi yang tidak perlu: Tinjau logika Anda dan identifikasi fungsi apa pun yang tidak penting untuk fungsionalitas yang diinginkan dan dapat memengaruhi performa secara negatif. Misalnya, jika panggilan fungsi melakukan validasi yang diselesaikan sebelumnya dalam kode, Anda dapat menghapus panggilan fungsi validasi yang tidak perlu.

  • Meminimalkan operasi pengelogan: Pengelogan dapat membantu untuk penelusuran kesalahan dan analisis, tetapi pengelogan yang berlebihan dapat memengaruhi performa. Evaluasi kebutuhan setiap operasi pengelogan dan hapus panggilan pengelogan yang tidak perlu yang tidak penting untuk analisis performa. Praktik yang baik adalah mengizinkan sistem Anda mengaktifkan dan menonaktifkan pengelogan, untuk membantu men-debug tanpa menyebabkan masalah performa produksi.

  • Optimalkan loop dan kondisional: Analisis loop dan kondisional dalam logika Anda dan identifikasi iterasi atau kondisi yang tidak perlu yang dapat dihilangkan. Menyederhanakan dan mengoptimalkan struktur ini dapat meningkatkan performa kode Anda. Minimalkan panggilan fungsi dalam loop, dan hilangkan perhitungan yang berlebihan. Pertimbangkan untuk memindahkan komputasi di luar loop.

  • Kurangi pemrosesan data yang tidak perlu: Tinjau logika Anda untuk operasi pemrosesan data yang tidak perlu, seperti perhitungan atau transformasi yang berlebihan. Hilangkan operasi yang tidak perlu ini untuk meningkatkan efisiensi logika Anda. Misalnya, gunakan Dataverse kolom terhitung, bidang rollup, atau Power Fx kolom alih-alih menghitung nilai dalam kode dan menyimpannya dengan operasi simpan.

  • Optimalkan struktur data. Untuk menyimpan dan mengambil data secara efisien, pilih struktur data yang sesuai dan hanya kolom data yang diperlukan. Pilih struktur data terbaik untuk masalah tertentu. Struktur data yang sesuai meningkatkan kinerja aplikasi.

  • Minimalkan permintaan jaringan: Jika logika Anda melibatkan pembuatan permintaan jaringan (misalnya, menggunakan tindakan konektor), minimalkan jumlah permintaan dan optimalkan penggunaannya. Permintaan batch jika memungkinkan dan hindari perjalanan pulang pergi yang tidak perlu untuk meningkatkan kinerja.

  • Kurangi ukuran struktur data: Tinjau persyaratan data dan hilangkan bidang atau properti yang tidak perlu. Optimalkan penggunaan memori dengan memilih jenis data yang sesuai dan mengemas data secara efisien.

  • Lakukan pekerjaan secara asinkron: Evaluasi apakah pekerjaan dapat dilakukan secara asinkron, bukan secara sinkron dalam logika Anda. Misalnya, alih-alih melakukan operasi sebaris, pertimbangkan untuk menerapkan Power Automate alur untuk memproses pekerjaan secara asinkron.

  • Konfigurasikan sebelum menyesuaikan. Gunakan komponen aplikasi standar jika Anda bisa. Penyesuaian seperti plug-in dan JavaScript dapat memengaruhi performa.

  • Minimalkan kontrol. Tampilkan hanya bidang yang Anda butuhkan dalam formulir—terlalu banyak bidang dapat mengacaukan antarmuka pengguna dan memengaruhi kinerja. Minimalkan jumlah kontrol di bilah perintah, aplikasi kanvas, atau halaman kustom. Hindari bersarang galeri atau menambahkan terlalu banyak komponen ke galeri.

  • Optimalkan kueri data. Hanya memuat data yang Anda perlukan dalam aplikasi atau alur. Gunakan tampilan sisi server untuk memfilter data terlebih dahulu guna mempersempit data yang relevan dengan kueri Anda.

Tinjau rekomendasi performa khusus untuk produk yang Power Platform Anda kerjakan. Evaluasi logika Anda terhadap rekomendasi ini untuk mengidentifikasi area yang perlu ditingkatkan.

Pelajari selengkapnya tentang panduan pengkodatan aliran cloud Power Automate, panduan pengkodan Power Apps, dan panduan pengkodan alur desktop Power Automate untuk mengoptimalkan logika.

Tip

Gunakan Power CAT Toolkit untuk melakukan tinjauan kode. Toolkit menggabungkan banyak pedoman pengkodean dari dokumentasi ini, memastikan bahwa solusi Anda efisien dan dapat dipelihara. Toolkit secara otomatis menandai pola apa pun yang tidak mematuhi praktik terbaik ini, sehingga Anda dapat mengatasi potensi masalah di awal proses pengembangan. Pendekatan proaktif ini meningkatkan kualitas kode Anda dan membantu merampingkan proses peninjauan, sehingga lebih mudah untuk mempertahankan standar tinggi di seluruh proyek Anda. Mengintegrasikan Power CAT Toolkit ke dalam alur kerja pengembangan Anda memastikan bahwa solusi Anda dibangun di atas fondasi yang kokoh dan mengarah pada solusi yang lebih andal dan dapat diskalakan.

Pengorbanan: Mengoptimalkan logika dan jalur panas membutuhkan keahlian. Mengidentifikasi inefisiensi logika bersifat subjektif dan mungkin memerlukan individu yang sangat terampil, yang mungkin perlu Anda tarik dari tugas lain.

Gunakan konkurensi dan paralelisme

Menggunakan konkurensi dan paralelisme melibatkan pelaksanaan beberapa tugas atau proses baik secara bersamaan atau tumpang tindih untuk memanfaatkan sumber daya komputasi secara efisien. Teknik-teknik ini meningkatkan throughput keseluruhan dan jumlah tugas yang dapat diproses oleh beban kerja. Saat Anda menjalankan tugas secara bersamaan atau paralel, itu dapat mengurangi runtime aplikasi dan meningkatkan waktu respons.

Konkurensi dan paralelisme secara efektif mendistribusikan beban kerja di antara sumber daya komputasi. Saat meningkatkan konkurensi atau paralelisme, pertimbangkan dampaknya pada sistem lain, karena Anda mungkin melebihi batasnya. Misalnya, perulangan bersamaan dalam alur yang Power Automate memproses setiap item pada satu waktu dapat melampaui batas permintaan konektor yang digunakan dalam logika loop.

Gunakan paralelisme. Paralelisme adalah kemampuan sistem untuk secara bersamaan memicu banyak tugas atau proses pada beberapa sumber daya komputasi. Paralelisme membagi beban kerja menjadi tugas yang lebih kecil yang dijalankan secara paralel. Saat Anda menjalankan logika secara paralel, performa meningkat karena beban kerja didistribusikan di beberapa cabang.

Gunakan konkurensi. Konkurensi adalah kemampuan sistem untuk menjalankan banyak tugas atau proses. Konkurensi memungkinkan berbagai bagian beban kerja untuk membuat kemajuan secara mandiri, yang dapat meningkatkan kinerja secara keseluruhan.

  • Eksekusi bersamaan: Eksekusi bersamaan memungkinkan logika yang sama berjalan secara bersamaan. Membatasi eksekusi bersamaan ke satu dapat memiliki efek serialisasi logika, menghasilkan pemrosesan satu item pada satu waktu. Mengontrol jumlah eksekusi item beban kerja secara bersamaan dapat membantu mengelola penggunaan sumber daya selama pemrosesan. Misalnya, Power Automate loop alur dapat dikonfigurasi untuk memproses beberapa tindakan secara paralel menggunakan properti Kontrol Bersamaan.

    Catatan

    Sebelum Anda mengaktifkan konkurensi, perlu diingat bahwa ini berarti beberapa tindakan akan dilakukan secara bersamaan—jika Anda menulis data sebagai bagian dari perulangan, pastikan tujuan data dapat menangani permintaan secara bersamaan.

  • Antrean: Antrean adalah buffer penyimpanan yang terletak di antara komponen yang meminta (produsen) dan komponen pemrosesan (konsumen) beban kerja. Mungkin ada beberapa konsumen untuk satu antrean. Seiring dengan meningkatnya tugas, Anda harus menskalakan konsumen untuk memenuhi permintaan. Produser menempatkan tugas dalam antrean. Antrean menyimpan tugas hingga konsumen memiliki kapasitas. Antrean seringkali merupakan cara terbaik untuk menyerahkan pekerjaan ke layanan pemrosesan yang mengalami puncak permintaan. Untuk informasi selengkapnya, lihat Pola Perataan Beban Berbasis Antrean dan Antrean Penyimpanan dan Antrean Service Bus.

Mengoptimalkan pekerjaan latar belakang

Banyak aplikasi memerlukan tugas latar belakang yang berjalan secara independen dari antarmuka pengguna. Aplikasi dapat memulai pekerjaan dan terus memproses permintaan interaktif dari pengguna. Contoh pekerjaan latar belakang termasuk pekerjaan batch, tugas intensif prosesor, dan proses yang berjalan lama, seperti alur kerja. Tugas latar belakang tidak boleh memblokir aplikasi atau menyebabkan inkonsistensi karena operasi yang tertunda saat sistem sedang dibeban. Untuk informasi selengkapnya tentang mengoptimalkan pekerjaan latar belakang, lihat Rekomendasi untuk mengembangkan pekerjaan latar belakang.

Power Platform Fasilitasi

Kode instrumentasi: Saat membuat aplikasi kanvas, pola performa harus digunakan untuk meningkatkan efisiensi aplikasi, sedangkan anti-pola harus dihindari. Untuk informasi selengkapnya, lihat Gambaran umum membuat performant Power Apps. Gunakan Pantau untuk Power Apps mendiagnosis dan memecahkan masalah performa selama pengembangan.

Mengukur keterlibatan dan hasil: Saat membangun agen, melacak keterlibatan dan hasil percakapan sangat penting untuk mengukur metrik kinerja agen dan menemukan area untuk perbaikan.

Mengoptimalkan logika kode: Dengan fitur pemeriksa solusi, Anda dapat melakukan pemeriksaan analisis statis yang kaya pada solusi Anda terhadap serangkaian aturan praktik terbaik dan dengan cepat mengidentifikasi pola yang bermasalah. Dengan Flow Checker, Anda bisa mendapatkan wawasan tentang area mana dari implementasi alur Anda yang menimbulkan risiko kinerja?

Menggunakan konkurensi dan paralelisme: Power Automate alur cloud mendukung konkurensi dalam loop dan pemicu. Perhatikan bahwa batas konkurensi, perulangan, dan debatching berlaku dan didasarkan pada profil performa Anda. Power Apps mendukung konkurensi menggunakan fungsi Concurrent .

Mengoptimalkan Dataverse kinerja: Microsoft Dataverse menyediakan kerangka kerja yang dapat diperluas yang memungkinkan pengembang membangun pengalaman yang sangat disesuaikan dan disesuaikan. Saat Anda menyesuaikan, memperluas, atau mengintegrasikan Dataverse, perhatikan panduan dan praktik terbaik yang ditetapkan. Lihat Praktik terbaik dan panduan saat menggunakan Microsoft Dataverse.

Daftar periksa Efisiensi Kinerja

Lihat rangkaian lengkap rekomendasi.