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 সমস্যা দেখাতে পারে। আপনি এই সমস্যার সম্মুখীন হলে, অনুরোধটি ছোট ছোট অংশে ভাগ করে
সেগুলি প্যারালালভাবে এক্সিকিউট করুন। এর ফলে, দীর্ঘক্ষণ ধরে চলা কোনও অনুরোধ ব্যর্থ হলে, সেটি
পুনরায় শুরু করা ছাড়া আর কোনও উপায় থাকে না।