Performa

Library klien untuk Perl mempermudah interaksi dengan Google Ads API, dengan konfigurasi minimal dari pihak Anda. Namun, performa sangat bergantung pada cara library digunakan dan diintegrasikan.

Sebagian besar praktik terbaik umum berlaku untuk semua bahasa. Halaman ini membahas panduan performa khusus untuk Perl.

Membuat profil aplikasi

Buat profil aplikasi Anda untuk penggunaan CPU dan memori guna mengidentifikasi hambatan performa. Devel::NYTProf adalah profiler kode sumber Perl yang kaya fitur yang dapat Anda gunakan untuk menganalisis waktu eksekusi.

Versi Perl

Upgrade secara rutin ke versi Perl yang lebih baru untuk mendapatkan manfaat dari peningkatan performa runtime. Download rilis terbaru dari rilis sumber CPAN Perl, dan periksa versi minimum yang diperlukan untuk library di persyaratan README.

Logging

Logging yang ekstensif dapat menimbulkan penalti waktu eksekusi dan konsumsi memori yang signifikan. Tetapkan tingkat logging ke WARN untuk kode apa pun dalam produksi.

Lihat Panduan logging untuk mengetahui detail selengkapnya tentang cara mengonfigurasi logger ringkasan dan detail.

SearchStream versus Penelusuran

Google Ads API menyediakan dua metode utama untuk mengambil objek: Search (yang menggunakan penomoran halaman) dan SearchStream (yang menggunakan streaming). SearchStream memberikan performa yang lebih baik daripada Search, meskipun ada skenario tertentu di mana Search mungkin lebih disukai.

Untuk perbandingan mendetail kedua metode tersebut, lihat Panduan streaming.

Pengoptimalan dan pengelompokan payload

Untuk meminimalkan overhead jaringan dan konsumsi memori:

  • Hanya minta kolom spesifik yang dibutuhkan aplikasi Anda dalam kueri Google Ads Query Language (GAQL).
  • Kelompokkan beberapa operasi perubahan menjadi satu permintaan mutate, bukan mengirim permintaan satu per satu untuk setiap perubahan.

Waktu tunggu HTTP

Library klien Perl menyediakan setelan untuk mengonfigurasi waktu tunggu HTTP di tingkat klien:

my $api_client = Google::Ads::GoogleAds::Client->new({
  # Set HTTP timeout to 5 minutes (300 seconds).
  http_timeout => 300,
});

Nilai default-nya adalah 3600 detik (1 jam), yang ditetapkan berdasarkan konstanta DEFAULT_HTTP_TIMEOUT dalam Constants.pm. Tetapkan waktu tunggu klien kustom jika Anda perlu menerapkan batas waktu yang lebih singkat untuk waktu maksimum panggilan API.

Anda dapat menyetel waktu tunggu hingga 2 jam atau lebih, tetapi API mungkin masih mengalami waktu tunggu untuk permintaan yang berjalan sangat lama dan menampilkan error DEADLINE_EXCEEDED. Jika Anda menemukan error ini, bagi permintaan menjadi beberapa bagian yang lebih kecil dan jalankan secara paralel. Hal ini menghindari situasi saat permintaan yang berjalan lama gagal dan satu-satunya cara untuk memulihkan adalah memicu permintaan lagi dari awal.