Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Setiap pengembang ingin program mereka berjalan lebih cepat. Dalam artikel ini, kami akan menunjukkan kepada Anda cara menambahkan satu baris kode agar aplikasi berbasis MSAL Python Anda dapat memperoleh token sekitar 1,5x hingga 2x lebih cepat!
Persiapan
Pertama mari kita pilih contoh skrip yang ada untuk menunjukkan eksperimen ini. Kami memilih sampel kata sandi nama pengguna, karena tidak akan memerlukan interaksi pengguna, sehingga pengukuran waktu kami tidak akan terpengaruh oleh interaksi manusia yang lambat.
Atur config.json untuk contoh Anda sesuai petunjuk.
Untuk mengatur waktunya, Anda ingin menambahkan cuplikan opsional ini di awal sampel Anda:
import time; t = time.time()dan kemudian Anda menambahkan baris ini di bagian paling akhir sampel Anda:
print("It took", time.time() - t, "second(s)")Idealnya, Anda ingin menjadikan baris pemanggilan Microsoft Graph API yang sebenarnya ini sebagai komentar, karena itu bukan bagian dari proses akuisisi token. Terakhir, Anda juga dapat, jika diinginkan, menghapus tanda komentar pada kedua baris ini untuk mengaktifkan logging agar Anda dapat melihat apa yang terjadi di balik layar.
Sebelumnya
Sekarang jalankan beberapa kali. Anda akan suka melihat output seperti ini:
$ python username_password_sample.py config.json
It took 0.9160797595977783 second(s)
$ python username_password_sample.py config.json
It took 0.7800290584564209 second(s)
$ python username_password_sample.py config.json
It took 0.8385567665100098 second(s)
Jadi dibutuhkan sekitar 0,8+ detik untuk memperoleh token.
Sihir Aktual
Sekarang mari kita bersenang-senang.
Instal modul pihak ketiga "requests-cache" dengan menjalankan ini sekali: pip install requests-cache, lalu tambahkan baris ini di awal sampel Anda:
import requests_cache; requests_cache.install_cache()
Sesudah
Sekarang jalankan beberapa kali. Anda akan suka melihat output seperti ini:
$ python username_password_sample.py config.json
It took 0.41900205612182617 second(s)
$ python username_password_sample.py config.json
It took 0.480008602142334 second(s)
$ python username_password_sample.py config.json
It took 0.44204020500183105 second(s)
Jadi dibutuhkan sekitar 0,4+ detik untuk memperoleh token.
Apa yang terjadi?
Sebelum memperoleh token, MSAL perlu mengakses beberapa endpoint penemuan untuk menemukan metadata tertentu. Metadata ini jarang diubah, sehingga dapat di-cache dan digunakan kembali. Semua ini adalah praktik standar yang terjadi di lapisan HTTP, itulah sebabnya MSAL Python tidak perlu menerapkan perilaku tersebut dengan sendirinya, dan pustaka cache HTTP generik akan melakukan pekerjaan ini untuk kita.
Dalam kasus kami, MSAL Python sudah menggunakan pustaka HTTP populer bernama requests, lalu ada pustaka generik lain, requests-cache, yang dirancang untuk melakukan monkey-patch pada requests dan menyediakan perilaku cache HTTP secara otomatis.
Lebih baik lagi, perilaku defaultnya adalah menyimpannya di disk, sehingga contoh baris perintah kami tetap dapat memanfaatkan cache HTTP tersebut, meskipun dijalankan sebagai proses baru setiap kali.
Bahkan, trik ini tidak hanya membantu MSAL Python, ini meningkatkan semua lalu lintas HTTP lain yang dapat di-cache aplikasi Anda.
Conclusion
Jadi, Anda mendapatkan peningkatan performa yang luar biasa, yaitu 1,5x hingga 2x, hanya dengan satu baris kode. Dan berlaku secara universal untuk semua aplikasi Anda yang menggunakan HTTP.
Selamat Hacking!