الأداء

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

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

إنشاء ملف تعريف لتطبيقك

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

إصدار Perl

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

التسجيل

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

راجِع دليل تسجيل البيانات لمزيد من التفاصيل حول إعداد أدوات تسجيل البيانات الموجزة والمفصّلة.

‫SearchStream مقابل "بحث Google"

توفّر 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. في حال ظهور هذا الخطأ، قسِّم الطلب إلى أجزاء أصغر ونفِّذها بالتوازي. ويجنّب ذلك حدوث عطل في طلب يستغرق وقتًا طويلاً، ولا يمكن استرداد البيانات إلا من خلال إعادة إرسال الطلب من البداية.