परफ़ॉर्मेंस मोड

Perl के लिए क्लाइंट लाइब्रेरी, Google Ads API के साथ इंटरैक्शन को आसान बनाती है. इसके लिए, आपको कम से कम कॉन्फ़िगरेशन करना पड़ता है. हालांकि, परफ़ॉर्मेंस इस बात पर निर्भर करती है कि लाइब्रेरी का इस्तेमाल और इंटिग्रेशन कैसे किया जाता है.

आम तौर पर इस्तेमाल होने वाले सबसे सही तरीके, सभी भाषाओं पर लागू होते हैं. इस पेज पर, Perl के लिए परफ़ॉर्मेंस से जुड़े दिशा-निर्देश दिए गए हैं.

अपने ऐप्लिकेशन की प्रोफ़ाइल बनाना

सीपीयू और मेमोरी के इस्तेमाल, दोनों के लिए अपने ऐप्लिकेशन की प्रोफ़ाइल बनाएं, ताकि परफ़ॉर्मेंस में आने वाली रुकावटों की पहचान की जा सके. Devel::NYTProf, Perl सोर्स कोड का एक प्रोफ़ाइलर है. इसमें कई सुविधाएं मौजूद हैं. इसका इस्तेमाल करके, कोड को एक्ज़ीक्यूट होने में लगने वाले समय का विश्लेषण किया जा सकता है.

Perl वर्शन

रनटाइम की परफ़ॉर्मेंस में होने वाले सुधारों का फ़ायदा पाने के लिए, Perl के नए वर्शन पर नियमित तौर पर अपग्रेड करें. CPAN Perl सोर्स रिलीज़ से सबसे नई रिलीज़ डाउनलोड करें. साथ ही, README ज़रूरी शर्तों में लाइब्रेरी के लिए ज़रूरी कम से कम वर्शन देखें.

लॉग इन हो रहा है

ज़्यादा लॉगिंग करने से, एक्ज़ीक्यूशन में ज़्यादा समय लग सकता है और मेमोरी का ज़्यादा इस्तेमाल हो सकता है. प्रोडक्शन में मौजूद किसी भी कोड के लिए, लॉगिंग लेवल को WARN पर सेट करें.

समरी और ज़्यादा जानकारी वाले लॉगर को कॉन्फ़िगर करने के बारे में ज़्यादा जानने के लिए, लॉगिंग गाइड देखें.

SearchStream बनाम Search

Google Ads API, ऑब्जेक्ट को वापस पाने के लिए दो मुख्य तरीके उपलब्ध कराता है: Search (जो पेज नंबर का इस्तेमाल करता है) और SearchStream (जो स्ट्रीमिंग का इस्तेमाल करता है). SearchStream, Search से बेहतर परफ़ॉर्म करता है. हालांकि, कुछ मामलों में Search को प्राथमिकता दी जा सकती है.

दोनों तरीकों की तुलना के बारे में ज़्यादा जानने के लिए, स्ट्रीमिंग गाइड देखें.

पेलोड ऑप्टिमाइज़ेशन और बैचिंग

नेटवर्क ओवरहेड और मेमोरी के इस्तेमाल को कम करने के लिए:

  • Google Ads Query Language (GAQL) क्वेरी में, सिर्फ़ उन फ़ील्ड का अनुरोध करें जिनकी आपके ऐप्लिकेशन को ज़रूरत है.
  • हर बदलाव के लिए अलग-अलग अनुरोध भेजने के बजाय, कई म्यूटेट ऑपरेशन को एक ही mutate अनुरोध में ग्रुप करें.

एचटीटीपी टाइम आउट

Perl क्लाइंट लाइब्रेरी, क्लाइंट लेवल पर एचटीटीपी टाइम आउट को कॉन्फ़िगर करने की सेटिंग देती है:

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 कॉन्सटेंट के आधार पर सेट किया जाता है. अगर आपको एपीआई कॉल के लिए तय की गई ज़्यादा से ज़्यादा समयसीमा को कम करना है, तो क्लाइंट के लिए कस्टम टाइम आउट सेट करें.

टाइम आउट को दो घंटे या उससे ज़्यादा पर सेट किया जा सकता है. हालांकि, एपीआई अब भी बहुत लंबे समय तक चलने वाले अनुरोधों को टाइम आउट कर सकता है और DEADLINE_EXCEEDED गड़बड़ी दिखा सकता है. अगर आपको यह गड़बड़ी दिखती है, तो अनुरोध को छोटे-छोटे हिस्सों में बांटें और उन्हें एक साथ चलाएं. इससे ऐसी स्थिति से बचा जा सकता है जहां लंबे समय से चल रहा अनुरोध पूरा नहीं हो पाता और उसे फिर से शुरू करने का एकमात्र तरीका, अनुरोध को फिर से ट्रिगर करना होता है.