কর্মক্ষমতা

পিএইচপি ক্লায়েন্ট লাইব্রেরি আপনার পক্ষ থেকে ন্যূনতম কনফিগারেশন সহ Google Ads API-এর সাথে ইন্টারঅ্যাকশন সহজ করে। যাইহোক, কর্মক্ষমতা অত্যন্ত নির্ভর করে কিভাবে লাইব্রেরি ব্যবহার করা হয় এবং সংহত করা হয়।

এই সর্বোত্তম অনুশীলনগুলির বেশিরভাগই সমস্ত ভাষার জন্য প্রযোজ্য। এই নির্দেশিকাটি পিএইচপি-র জন্য নির্দিষ্ট সেইগুলির মধ্য দিয়ে যায়।

প্রোটোবাফ বাস্তবায়ন

অনুরোধ এবং প্রতিক্রিয়া বার্তার জন্য GRPC এবং Google Ads API দ্বারা Protobuf ব্যবহার করা হয়। দুটি বাস্তবায়ন উপলব্ধ, যদিও সি-তে লেখা একটির পারফরম্যান্স ভালো।

আরও তথ্যের জন্য Protobuf গাইড দেখুন।

পিএইচপি দোভাষীর অপারেশন মোড

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

পিএইচপি সংস্করণ

এটি নিয়মিতভাবে একটি নতুন PHP সংস্করণে আপগ্রেড করা ভাল অনুশীলন কারণ এটি সাধারণত আরও ভাল সামগ্রিক কর্মক্ষমতা সহ আসে। সমর্থিত পিএইচপি সংস্করণের তালিকা

অব্যবহৃত Google বিজ্ঞাপন API সংস্করণ

ক্লায়েন্ট লাইব্রেরির সমস্ত সংস্করণ একাধিক Google বিজ্ঞাপন API সংস্করণ সমর্থন করে। ক্লায়েন্ট লাইব্রেরি দ্বারা সমর্থিত Google Ads API-এর প্রতিটি সংস্করণের জন্য, সংস্করণের জন্য নির্দিষ্ট প্যাকেজ রয়েছে।

Google বিজ্ঞাপন API-এর ভার্সনগুলির জন্য নিবেদিত প্যাকেজগুলি যেগুলি ব্যবহার করা হয় না সেগুলি নিরাপদে ক্লায়েন্ট লাইব্রেরি থেকে সরানো যেতে পারে। যেহেতু এটি এক্সিকিউশনকে ত্বরান্বিত করতে বা মেমরির পদচিহ্ন কমাতে উপযোগী হতে পারে, তাই ক্লায়েন্ট লাইব্রেরি এটি প্রোগ্রামগতভাবে করতে ইউটিলিটি প্রদান করে।

উদাহরণ

ধরুন আপনি ক্লায়েন্ট লাইব্রেরিটি বাস্তবায়ন করছেন যা শুধুমাত্র সর্বশেষ API সংস্করণ ব্যবহার করছে: v18 , এবং আপনি অব্যবহৃত API সংস্করণগুলির জন্য সমর্থন সরাতে চান: v17 এবং v16

প্রজেক্টের composer.json ফাইলে, একটি কম্পোজার স্ক্রিপ্ট সংজ্ঞায়িত করুন (নাম remove-google-ads-api-version-support ) যা ApiVersionSupport ক্লাসে ক্লায়েন্ট লাইব্রেরি দ্বারা প্রদত্ত ইউটিলিটি ব্যবহার করে :

"scripts": {
  "remove-google-ads-api-version-support": [
    "Google\\Ads\\GoogleAds\\Util\\ApiVersionSupport::remove"
  ]
}

তারপর, প্যারামিটার হিসাবে সংস্করণ নম্বর সহ কম্পোজার স্ক্রিপ্ট ব্যবহার করুন এবং কিছু স্থিতি বার্তা মুদ্রণ করুন:

# Change the current directory to the project directory.
cd /path/to/the/project

# Install the project.
composer install

# Output the vendor folder size and the list of Google Ads API versions that are
# supported before removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

# Use the Composer script to remove the unused versions v16 and v17 of the Google Ads API.
echo "# Removing support..."
composer run-script remove-google-ads-api-version-support -- 16 17

# Output the vendor folder size and the list of Google Ads API versions that are
# supported after removing support for Google Ads API versions.
echo "# Supported Google Ads API versions:"
find ./vendor/googleads/google-ads-php/src/Google/Ads/GoogleAds/V* -maxdepth 0 | grep -o '..$'
echo "# Vendor folder size:"
du -sh ./vendor

নীচের নমুনা এক্সিকিউশন আউটপুটটি 50M এর ফাইলের আকার হ্রাস নির্দেশ করে এবং শুধুমাত্র অবশিষ্ট সমর্থিত সংস্করণটি হল V18 :

# Supported Google Ads API versions:
V16
V17
V18
# Vendor folder size:
110M    ./vendor
# Removing support...
> Google\Ads\GoogleAds\Util\ApiVersionSupport::remove
Removing support for the version 16 of Google Ads API...
Done
Removing support for the version 17 of Google Ads API...
Done
# Supported Google Ads API versions:
V18
# Vendor folder size:
60M     ./vendor

উন্নয়ন বনাম উৎপাদন

পিএইচপি হল একটি ব্যাখ্যা করা ভাষা যে এটি কার্যকর করার আগে নির্দেশাবলী প্রথম কম্পাইল করে। এটি সাধারণত সুবিধাজনক কারণ বিকাশের সময়, উত্সগুলি প্রায়শই পরিবর্তিত হয় যখন কার্যকর করার সময়টি গুরুত্বপূর্ণ নয়। যাইহোক, উত্পাদনের সময় বিপরীতটি সত্য কারণ স্থায়িত্ব এবং কর্মক্ষমতা প্রধান উদ্বেগ হয়ে ওঠে।

ক্যাশে

ক্যাশিং সাধারণ এবং অত্যন্ত প্রস্তাবিত কারণ এটি উভয়ই কর্মক্ষমতা উন্নত করে এবং পূর্বে সংকলিত স্ক্রিপ্ট নির্দেশাবলী সংরক্ষণ করে স্থিতিশীলতা বাড়ায়।

OPcache হল সর্বাধিক ব্যবহৃত সমাধান এবং ডিফল্টরূপে উপলব্ধ।

অটোলোড

অটোলোড সাধারণ কারণ এটি উভয়ই কর্মক্ষমতা উন্নত করে এবং ক্লাস সম্পর্কে পূর্বে সংকলিত তথ্য লোড করে স্থিতিশীলতা বাড়ায়।

পিএইচপি ক্লায়েন্ট লাইব্রেরি স্বয়ংক্রিয়ভাবে লোড করার জন্য PSR-4 মেনে চলে এবং composer.json ফাইলের অংশ হিসেবে সংজ্ঞা প্রদান করে। কম্পোজার -এর ডেডিকেটেড অপশন, যেমন --optimize-autoloader বা --classmap-authoritative উদাহরণ স্বরূপ, তারপর বাক্সের বাইরে ব্যবহার করা যেতে পারে।

লগিং

লগারদের ERROR মতো উচ্চ স্তরে সেট করা এক্সিকিউশন টাইম ওভারহেড এবং মেমরি খরচ কমাতে সাহায্য করতে পারে।

আরও তথ্যের জন্য লগিং গাইড দেখুন।

ডিবাগিং এবং প্রোফাইলিং

আমরা ডিবাগার এবং প্রোফাইলার টুলগুলিকে নিষ্ক্রিয় করার পরামর্শ দিই কারণ সেগুলি সাধারণত কিছু এক্সিকিউশন টাইম ওভারহেডের সাথে আসে।

প্রিলোড

PHP 7.4 থেকে, OPcache প্রিলোডিং ব্যবহার করা যেতে পারে মেমরিতে স্ক্রিপ্ট প্রিলোড করতে, নিয়মিত ক্যাশিংয়ের চেয়ে এক ধাপ এগিয়ে।

এই বৈশিষ্ট্যটির সুবিধা নেওয়ার জন্য একটি স্ক্রিপ্ট ডিজাইন করতে হবে, কিন্তু PHP ক্লায়েন্ট লাইব্রেরিটি তা করে না যেহেতু OPcache প্রিলোডিং বাস্তবায়নের কোনো সাধারণ উপায় নেই এবং মেমরি ব্যবহার এবং কর্মক্ষমতা লাভের মধ্যে ট্রেড-অফ একটি প্রদত্ত প্রকল্পের জন্য অত্যন্ত নির্দিষ্ট। এবং মৃত্যুদন্ড।