शुक्रवार, 26 फ़रवरी 2010

बेंचमार्किंग क्लास – कोड इग्नाइटर

कोड इग्नाइटर की बेंचमार्किंग क्लास हमेशा सक्रिय रहती है. यह क्लास हमें किन्ही दो बिंदुओं के बीच के अंतर की गणना करने की सुविधा प्रदान करती है.

कृपया ध्यान दें: यह क्लास; तंत्र के द्वारा स्वत: ही आरंभ कर दी जाती है अत: इसे खुद आरंभ करने की  जरूरत नही होती.

जैसे ही आपका फ़्रेमवर्क चालू होता है, बेंचमार्क चालू हो जाता है. और आपकी आउटपुट क्लास के ब्राउजर में परिणाम भेजने के ठीक पहले समाप्त हो जाता है. ऐसा होने से पूरे तंत्र के क्रियान्वयन के समय की बहुत ही सही जानकारी मिल पाती है.

बेंचमार्क क्लास का उपयोग करना

बेंचमार्क क्लास आपके कंट्रोलरों, व्यूओं अथवा माडलों में उपयोग की जा सकती है. इसे उपयोग करने की विधि इस प्रकार है:

  1. शुरुआती बिंदु चिन्हित करें.
  2. आखिरी या समाप्ति बिंदु चिन्हित करें.
  3. परिणाम देखने के लिए "elapsed time" फ़ंग्शन का क्रियान्वयन कराएं.

यहां एक उदाहरण दिया गया है:

$this->benchmark->mark('code_start');
// यहां पर अपना कोड लिखें
$this->benchmark->mark('code_end');
echo $this->benchmark->elapsed_time('code_start', 'code_end');

कृपया ध्यान दें: "code_start" तथा "code_end" शब्द स्वेच्छा से कुछ भी रखे जा सकते हैं. वो बिंदुओं को चिन्हित करने के लिए मात्र उपयोग किये जाते हैं. आप एक से अधिक बिंदुओं को भी चिन्हित कर सकते हैं. जैसे:

$this->benchmark->mark('dog');
// यहां कुछ कोड लिखें
$this->benchmark->mark('cat');
// यहां कुछ और कोड लिखें
$this->benchmark->mark('bird');
echo $this->benchmark->elapsed_time('dog', 'cat');
echo $this->benchmark->elapsed_time('cat', 'bird');
echo $this->benchmark->elapsed_time('dog', 'bird');

अपने बेंचमार्क बिंदुओं को प्रोफ़ाइल करें

यदि आप चाहते हैं कि आपकी बेंचमार्किंग के आंकड़े Profiler को उपलब्ध हो तो आप को चिन्हित बिंदुओं को जोड़े में रखना होगा और प्रत्येक चिन्हित बिंदु का नाम _start तथा _end शब्द से खत्म होगा. प्रत्येक जोड़े के बिंदुओं के शेष नाम एक समान रखने होंगे. जैसे:

$this->benchmark->mark('my_mark_start');
// यहां पर अपना कोड लिखें
$this->benchmark->mark('my_mark_end');
$this->benchmark->mark('another_mark_start');
// यहां पर अपना कोड लिखें
$this->benchmark->mark('another_mark_end');

क्रियान्वयन में लगने वाले कुल समय को प्रदर्शित करना

यदि आप कोड इग्नाइटर के शुरू होने से लेकर ब्राउजर में परिणाम भेजने तक के समय को जानना चाहते हैं तो निम्नलिखित कोड को अपनी व्यू टेम्प्लेटों में लिख दें:

<?php echo $this->benchmark->elapsed_time();?>

आपने ध्यान दिया होगा कि यही फ़ंग्शन ऊपर के उदाहरणों में भी प्रयोग किया गया था, बस आप यहां किसी पैरामीटर का उपयोग नही कर रहे हैं. जब पैरामीटर अनुपस्थित रहते हैं तब कोड इग्नाइटर बेंचमार्क को तब तक नही रोकता है जब तक कि पूरा आउटपुट परिणाम ब्राउजर में न भेज दिया जाए. इस बात से कोई फ़र्क नही पड़ता कि आप इस फ़ंग्शन को कहां उपयोग करते हैं.

यदि आप शुद्ध पीएचपी का प्रयोग करना नही चाहते तो इसी चीज को दिखाने का एक वैकल्पिक तरीका स्यूडो वैरिएबल का प्रयोग भी कर सकते है

{elapsed_time}

कृपया ध्यान दें: यदि आप कंट्रोलर में किसी चीज को बेंचमार्क करना चाहते है तो आपको अपने शुरूआती तथा समाप्ति बिंदु चिन्हित करने होंगे.

मेमोरी खपत को दिखाना

यदि आपके पीएचपी को --enable-memory-limit से विन्यासित किया गया है तो आप निम्नलिखित कोड द्वारा पूरे तंत्र के द्वारा खपत हुई मेमोरी की जानकारी प्राप्त कर सकते हैं.

<?php echo $this->benchmark->memory_usage();?>

यदि आप शुद्ध पीएचपी का प्रयोग करना नही चाहते तो इसी चीज को दिखाने का एक वैकल्पिक तरीका स्यूडो वैरिएबल का प्रयोग भी कर सकते हैं.

{memory_usage}

कोई टिप्पणी नहीं:

एक टिप्पणी भेजें

इस ब्लाग में प्रकाशित सामग्री कापीराईट द्वारा सुरक्षित है. बिना अनुमति इसका किसी भी प्रकार से अन्यत्र प्रयोग/प्रकाशन मूल रूप में/बदल कर उपयोग नही किया जा सकता है.

हिंदी में तकनीकी लेखन को प्रोत्साहित करें

please donate अभी तक वेब डेवलपमेंट अथवा प्रोग्रामिंग आदि से संबंधित जानकारी पर अंग्रेजी का एकाधिकार रहा है. भारत में इतने आई टी गुरू होने के बावजूद भारतीय भाषाओं में इस विषय पर लेखन नगण्य है. इस ब्लाग के माध्यम से मैं हिन्दी भाषिओं तक वेब डेवलपमेंट का ज्ञान पहुंचाने की कोशिश कर रहा हूं. अत: आप सभी से अनुरोध है कि हिंदी में तकनीकी लेखन के लिये सहयोग करें
मैं वेबसाइटें भी बनाता हूं. यदि आपको बनवानी हो तो बताएं.

ARCHIVES

इस ब्लॉग में खोजें

फ़ॉलोअर