الأداء

تسهّل مكتبة برامج Perl التفاعلات مع Google Ads API، مع الحدّ الأدنى من الإعدادات من جانبك. ومع ذلك، يعتمد الأداء بشكل كبير على كيفية استخدام المكتبة ودمجها.

تنطبق معظم أفضل الممارسات العامة على جميع اللغات. تتناول هذه الصفحة إرشادات الأداء الخاصة بلغة Perl.

تحليل أداء تطبيقك

يمكنك تحليل أداء تطبيقك من حيث استخدام وحدة المعالجة المركزية واستخدام الذاكرة لتحديد المؤثّرات السلبية في الأداء. Devel::NYTProf هو محلّل لرموز المصدر في Perl يتضمّن ميزات متعددة ويمكنك استخدامه لتحليل وقت التنفيذ.

إصدار Perl

يجب الترقية بانتظام إلى إصدار أحدث من Perl للاستفادة من تحسينات الأداء في وقت التشغيل. نزِّل أحدث إصدار من إصدارات مصدر CPAN Perl، وتحقَّق من الحدّ الأدنى المطلوب لإصدار المكتبة في متطلبات ملف README.

التسجيل

يمكن أن يؤدي التسجيل المكثّف إلى زيادة وقت التنفيذ واستهلاك الذاكرة بشكل كبير. اضبط مستوى التسجيل على WARN لأي رمز في مرحلة الإنتاج.

يمكنك الاطّلاع على دليل التسجيل لمزيد من التفاصيل حول ضبط أدوات تسجيل الملخّصات والتفاصيل.

‫SearchStream مقابل Search

توفّر Google Ads API طريقتَين رئيسيتَين لاسترداد العناصر: Search (التي تستخدم التقسيم على صفحات) وSearchStream (التي تستخدم البث). يوفّر SearchStream أداءً أفضل من Search، ولكن هناك بعض السيناريوهات التي قد يُفضَّل فيها استخدام Search.

للحصول على مقارنة تفصيلية بين الطريقتَين، يُرجى الاطّلاع على دليل البث.

تحسين الحمولة وتجميعها

لتقليل النفقات العامة للشبكة واستهلاك الذاكرة:

  • اطلب فقط الحقول المحدّدة التي يحتاجها تطبيقك في طلبات البحث بلغة طلب البحث في "إعلانات Google"‏ (GAQL).
  • يمكنك تجميع عمليات تحويل متعددة في طلب mutate واحد بدلاً من إرسال طلبات فردية لكل تغيير.

انتهت مهلة HTTP

توفّر مكتبة عملاء Perl إعدادًا لضبط مهلات HTTP على مستوى العميل:

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

القيمة التلقائية هي 3600 ثانية (ساعة واحدة)، ويتم ضبطها استنادًا إلى الثابت DEFAULT_HTTP_TIMEOUT في Constants.pm. اضبط مهلة مخصّصة للعميل إذا كنت بحاجة إلى فرض حدّ أقصى أقصر للوقت المسموح به لطلب بيانات من واجهة برمجة التطبيقات.

يمكنك ضبط المهلة على ساعتين أو أكثر، ولكن قد تنتهي مهلة واجهة برمجة التطبيقات للطلبات التي تستغرق وقتًا طويلاً جدًا وتعرض الخطأ DEADLINE_EXCEEDED. إذا واجهت هذا الخطأ، قسِّم الطلب إلى أجزاء أصغر ونفِّذها بالتوازي. يؤدي ذلك إلى تجنُّب الموقف الذي يتعذّر فيه تنفيذ طلب طويل الأمد، والطريقة الوحيدة لاسترداده هي تشغيل الطلب مرة أخرى من البداية.