ارزیابی و تجزیه و تحلیل عملکرد اپلیکیشن

مجتبی پاکزاد کدایگنایتر 3.1.9 در حال تکمیل رایگان

کلاس Profiler نتایج بنچمارک (benchmark)، کوئری‌هایی که اجرا کرده‌اید و مقادیر آرایه $_POST را در پایین صفحات نشان می‌دهد. این اطلاعات می‌توانند در حین توسعه به منظور کمک به دیباگ و بهینه‌سازی استفاده شوند.

تعریف اولیه کلاس

مهم

این کلاس نیاز به تعریف ندارد. اگر پروفایلینگ فعال باشد، این کلاس به صورت خودکار توسط لایبرری Output لود می‌شود. نحوه فعال‌سازی پروفایلر در ادامه نشان داده شده است.

فعال‌سازی پروفایلر

برای فعال‌سازی پروفایلر، خط زیر را در جایی داخل متد کنترلر خود قرار دهید:

$this->output->enable_profiler(TRUE);

اگر این قابلیت فعال باشد، یک رپورت تولید خواهد شد و در پایین صفحات نمایش داده خواهد شد.

برای غیرفعال کردن پروفایلر، از دستور زیر استفاده کنید:

$this->output->enable_profiler(FALSE);

 

تنظیمات پوینت‌های بنچمارک

به منظور اینکه پروفایلر، داده‌های بنچمارک را کامپایل کرده و نمایش دهد، باید مارک پوینت‌ها (mark points) را با استفاده از سینتکس مشخصی نام‌گذاری کنید.

اطلاعات بیشتر درباره تنظیمات پوینت‌های بنچمارک را در صفحه لایبرری بنچمارک مطالعه کنید.

فعال‌سازی و غیرفعال‌سازی بخش‌های مختلف پروفایلر

هر بخش از داده‌های پروفایلر، با TRUE یا FALSE قرار دادن مقدار اندیس متناظری در آرایه config می‌تواند فعال یا غیرفعال شود. این کار به دو روش قابل انجام است. در روش اول می‌توانید با تغییر مقادیر پیش‌فرض فایل config در application/config/profiler.php این کار را انجام دهید.

مثال:

$config['config'] = FALSE;
$config['queries'] = FALSE;

با فراخوانی متد set_profiler_sections() از لایبرری Output در کنترلر خود، می‌توانید مقادیر فایل config و مقادیر پیش‌فرض را بازنویسی کنید.

$sections = array(
'config' => TRUE,
'queries' => TRUE
); $this->output->set_profiler_sections($sections);

بخش‌های در دسترس و کلیدهای آرایه‌ای که برای دسترسی به آن‌ها استفاده می‌شود، در جدول زیر توضیح داده شده است.

کلید توضیح مقدار پیش‌فرض
benchmarks زمان سپری شده برای پوینت‌های بنچمارک و زمان کلی اجرا TRUE
config آرایه کانفیگ کدایگنایتر TRUE
controller_info کلاس و متد کنترلر فراخوانی شده در پاسخ ریکوئست TRUE
get هر داده ارسال شده‌ای با متد GET به ریکوئست TRUE
http_headers هدرهای HTTP برای ریکوئست جاری TRUE
memory_usage مقدار مموری مصرف شده توسط ریکوئست جاری، برحسب بایت TRUE
post هر داده ارسال شده‌ای با متد POST به ریکوئست TRUE
queries لیست تمامی کوئری‌های اجرا شده و زمان اجرای آن‌ها TRUE
uri_string URI ریکوئست جاری TRUE
session_data داده‌های ذخیره شده در سشن جاری TRUE
query_toggle_count تعداد کوئری‌ها که بعد از آن، بلاک کوئری به صورت پیش‌فرض مخفی می‌شود. 25

توجه

غیرفعال‌سازی save_queries در کانفیگ دیتابیس، قابلیت پروفایلینگ برای کوئری‌های دیتابیس غیرفعال می‌شود و تنظیمات کلید queries در جدول بالا، هیچ فایده و کارایی ندارد. در صورت تمایل می‌توانید با $this->db->save_queries = TRUE; این تنظیمات را بازنویسی کنید. بدون این تنظیمات، قادر به مشاهده کوئری‌ها یا مقدار بازگشتی فانکشن last_queries هلپر <database/helpers> نخواهید بود.