পারফর্ম্যান্স

Perl-এর জন্য ক্লায়েন্ট লাইব্রেরি Google Ads API-এর সাথে ইন্টার‌্যাকশন সহজ করে দেয়, আপনার তরফ থেকে ন্যূনতম কনফিগারেশন সহ। তবে, লাইব্রেরি কীভাবে ব্যবহার ও ইন্টিগ্রেট করা হয়েছে তার উপর পারফর্ম্যান্স উল্লেখযোগ্যভাবে নির্ভর করে।

বেশিরভাগ সাধারণ পেশাদার পদ্ধতি সব ভাষার ক্ষেত্রে প্রযোজ্য। এই পৃষ্ঠায় Perl-এর জন্য নির্দিষ্ট পারফর্ম্যান্স সংক্রান্ত নির্দেশিকা রয়েছে।

আপনার অ্যাপ্লিকেশন প্রোফাইল করুন

পারফর্ম্যান্সের বাধা শনাক্ত করতে, CPU এবং মেমরি ব্যবহার, দুটির জন্যই আপনার অ্যাপ্লিকেশন প্রোফাইল করুন। Devel::NYTProf হল ফিচার-সমৃদ্ধ Perl সোর্স কোড প্রোফাইলার যা আপনি এক্সিকিউশন টাইম বিশ্লেষণ করতে ব্যবহার করতে পারেন।

Perl ভার্সন

রানটাইম পারফর্ম্যান্সের উন্নতি থেকে সুবিধা পেতে নিয়মিতভাবে নতুন Perl ভার্সনে আপগ্রেড করুন। CPAN Perl সোর্স রিলিজ থেকে লেটেস্ট রিলিজ ডাউনলোড করুন এবং README প্রয়োজনীয়তা থেকে লাইব্রেরির জন্য ন্যূনতম প্রয়োজনীয় ভার্সন চেক করুন।

লগিং

ব্যাপক লগিংয়ের ফলে এক্সিকিউশন টাইম পেনাল্টি এবং মেমরি ব্যবহারের ক্ষেত্রে উল্লেখযোগ্য প্রভাব পড়তে পারে। প্রোডাকশনে যেকোনও কোডের জন্য লগিং লেভেল WARN-এ সেট করুন।

সারসংক্ষেপ ও বিস্তারিত লগার কনফিগার করার ব্যাপারে আরও জানতে লগিং গাইড দেখুন।

SearchStream বনাম Search

Google Ads API অবজেক্ট ফিরিয়ে আনার জন্য দুটি প্রধান পদ্ধতি প্রদান করে: Search (যা পৃষ্ঠা সংখ্যা ব্যবহার করে) এবং SearchStream (যা স্ট্রিমিং ব্যবহার করে)। SearchStream Search-এর থেকে আরও ভালো পারফর্ম্যান্স প্রদান করে, যদিও কিছু নির্দিষ্ট পরিস্থিতিতে Search-কে বেশি পছন্দ করা হতে পারে।

দুটি পদ্ধতির বিস্তারিত তুলনার জন্য, স্ট্রিমিং গাইড দেখুন।

পে-লোড অপ্টিমাইজেশন ও ব্যাচিং

নেটওয়ার্ক ওভারহেড ও মেমরি ব্যবহার কমাতে:

  • আপনার Google Ads কোয়েরি ল্যাঙ্গুয়েজ (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 সেকেন্ড (১ ঘণ্টা), যা Constants.pm-এ DEFAULT_HTTP_TIMEOUT কনস্ট্যান্টের উপর ভিত্তি করে সেট করা হয়। API কলের জন্য সর্বাধিক সময়ের উপর আরও কম সীমা প্রয়োগ করতে হলে, কাস্টম ক্লায়েন্ট টাইমআউট সেট করুন।

আপনি টাইমআউট ২ ঘণ্টা বা তার বেশি সময়ের জন্য সেট করতে পারেন, তবে API এখনও অত্যন্ত দীর্ঘ সময় ধরে চলা অনুরোধের জন্য টাইমআউট করতে পারে এবং DEADLINE_EXCEEDED সমস্যা দেখাতে পারে। আপনি এই সমস্যার সম্মুখীন হলে, অনুরোধটি ছোট ছোট অংশে ভাগ করে নিন এবং সমান্তরালভাবে সেগুলি কার্যকর করুন। এটি এমন পরিস্থিতি এড়ায় যেখানে দীর্ঘ সময় ধরে চলা অনুরোধ ব্যর্থ হয় এবং এটি রিকভার করার একমাত্র উপায় হল শুরু থেকে আবার অনুরোধ ট্রিগার করা।