کتابخانه کلاینت برای Perl، تعامل با API تبلیغات گوگل را با حداقل پیکربندی از جانب شما آسان میکند. با این حال، عملکرد به طور قابل توجهی به نحوه استفاده و ادغام کتابخانه بستگی دارد.
اکثر بهترین شیوههای کلی برای همه زبانها قابل اجرا هستند. این صفحه راهنماییهای عملکرد خاص Perl را پوشش میدهد.
درخواست خود را پروفایل کنید
برنامه خود را از نظر میزان استفاده از CPU و حافظه پروفایل کنید تا گلوگاههای عملکرد را شناسایی کنید. Devel::NYTProf یک پروفایلر کد منبع Perl با ویژگیهای غنی است که میتوانید از آن برای تجزیه و تحلیل زمان اجرا استفاده کنید.
نسخه پرل
برای بهرهمندی از بهبود عملکرد زمان اجرا، مرتباً به نسخه جدیدتر Perl ارتقا دهید. آخرین نسخه را از CPAN Perl source releases دانلود کنید و حداقل نسخه مورد نیاز برای کتابخانه را در README requirements بررسی کنید.
ثبت وقایع
ثبت وقایع گسترده میتواند منجر به جریمههای زمان اجرا و مصرف حافظه قابل توجهی شود. سطح ثبت وقایع را برای هر کد در محیط عملیاتی روی WARN تنظیم کنید.
برای جزئیات بیشتر در مورد پیکربندی ثبتکنندههای خلاصه و جزئیات، به راهنمای ثبت وقایع مراجعه کنید.
SearchStream در مقابل Search
رابط برنامهنویسی کاربردی گوگل ادز دو روش اصلی برای بازیابی اشیاء ارائه میدهد: Search (که از صفحهبندی استفاده میکند) و SearchStream (که از پخش جریانی استفاده میکند). SearchStream عملکرد بهتری نسبت به Search ارائه میدهد، اگرچه سناریوهای خاصی وجود دارد که ممکن است Search ترجیح داده شود.
برای مقایسه دقیق دو روش، به راهنمای Streaming مراجعه کنید.
بهینهسازی و دستهبندی محموله
برای به حداقل رساندن سربار شبکه و مصرف حافظه:
- فقط فیلدهای خاصی را که برنامه شما در درخواستهای زبان جستجوی گوگل ادز (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 تنظیم میشود. اگر نیاز دارید محدودیت کوتاهتری را برای حداکثر زمان برای یک فراخوانی API اعمال کنید ، یک زمان انتظار سفارشی برای کلاینت تنظیم کنید .
میتوانید زمان انتظار را روی ۲ ساعت یا بیشتر تنظیم کنید، اما API ممکن است همچنان درخواستهای بسیار طولانی را با زمان انتظار مواجه کند و خطای DEADLINE_EXCEEDED را برگرداند. اگر با این خطا مواجه شدید، درخواست را به بخشهای کوچکتر تقسیم کنید و آنها را به صورت موازی اجرا کنید. این کار از وضعیتی که یک درخواست طولانی با شکست مواجه میشود و تنها راه بازیابی، شروع مجدد درخواست از ابتدا است، جلوگیری میکند.