แนะนำการใช้ Profiler ของ Joomla เช็คความเร็วของการทำงานของระบบ

แชร์ ความรู้ในการ พัฒนา Joomla Component Extension Module Plugin

Moderator: mindphp, ผู้ดูแลกระดาน

ภาพประจำตัวสมาชิก
Thanapoom1514
PHP VIP Members
PHP VIP Members
โพสต์: 4310
ลงทะเบียนเมื่อ: 04/07/2022 9:46 am

แนะนำการใช้ Profiler ของ Joomla เช็คความเร็วของการทำงานของระบบ

โพสต์ที่ยังไม่ได้อ่าน โดย Thanapoom1514 »

ก่อนจะมาแนะนำวิธีการใช้ Utility Class Profiler ใน Joomla เป็นเครื่องมือที่ใช้ในการวิเคราะห์และตรวจสอบประสิทธิภาพของโค้ดหรือส่วนต่าง ๆ ในระหว่างการทำงานของเว็บไซต์ที่สร้างด้วยระบบจัดการเนื้อหา Joomla (CMS - Content Management System) และมักถูกใช้เพื่อวัดและบันทึกข้อมูลเกี่ยวกับเวลาที่ใช้ในการโหลดแต่ละส่วนของหน้าเว็บ เช่น การโหลดโมดูล การเรียกใช้งานคอมโพเนนต์ต่าง ๆ หรือการเชื่อมต่อกับฐานข้อมูล ซึ่งช่วยในการตรวจสอบและวิเคราะห์ปัญหาที่ทำให้เว็บไซต์ช้าหรือมีปัญหาในการทำงาน และช่วยให้นักพัฒนาสามารถระบุปัญหาที่อาจเกิดขึ้นในโค้ดหรือระบบ และช่วยในการปรับปรุงประสิทธิภาพของเว็บไซต์โดยการแยกแยะและวิเคราะห์ข้อมูลที่ได้จากการทำงานของโค้ดแต่ละส่วนใน Joomla CMS อย่างละเอียดและรวดเร็ว

ซึ่งเราสามารถเช็คได้ทั้ง 2 แบบ ก็คือ
  1. เปิดดีบัคระบบใน Joomla เช็ค Profile Information ได้
  2. เขียนโค้ดเช็คการทำงานของระบบได้
ขั้นตอนเปิดดีบัคระบบใน Joomla เพื่อเช็ค Profile Information
  • ให้เราเข้าหลังบ้านของ Joomla
    Joomla Developing Knowledge-1.png
    Joomla Developing Knowledge-1.png (115.83 KiB) Viewed 518 times
  • ให้เราเข้ามาที่เมนูคำว่า "ระบบ" แล้วไปที่รายการตั้งค่าระบบหลัก
    Joomla Developing Knowledge-2.png
    Joomla Developing Knowledge-2.png (12.63 KiB) Viewed 518 times
  • หลังจากเข้าหน้ารายการตั้งค่าระบบหลักแล้วให้ที่แท็บเมนูที่มีชื่อระบบและไปคลิกเปิดดีบัดระบบ
    Joomla Developing Knowledge-3.png
    Joomla Developing Knowledge-3.png (66.03 KiB) Viewed 518 times
  • ในส่วนการเช็ค Profile Information สามารถดูได้ที่ข้างล่างได้เลย จะมีบอกความเร็วและหน่วยความจำที่ใช้งานของ Extension ต่างๆ ใน Joomla
    Joomla Developing Knowledge-1.png
    Joomla Developing Knowledge-1.png (372.47 KiB) Viewed 518 times

เขียนโค้ดเช็คการทำงานของระบบได้
  • มารู้จัดคลาสและฟังก์ชันที่ใช้งานของ Profiler เช็คควาเร็วต่างของระบบนั้นๆ
    1. โค้ด: เลือกทั้งหมด

      $profiler = new JProfiler();
      คลาส JProfiler ใน Joomla 3 เป็นคลาสที่ใช้ในการทำการประมวลผลและการวัดประสิทธิภาพของโค้ดและระบบ โดยสามารถใช้ในการทดสอบและวิเคราะห์ประสิทธิภาพของโปรแกรมหรือตัวของระบบได้ และ JProfiler ช่วยในการเช็คและวิเคราะห์โค้ดที่ทำงานบนแพลตฟอร์ม Joomla โดยตรวจสอบปัญหาการประมวลผลที่ช้าหรือการใช้ทรัพยากรในการทำงานที่ไม่เหมาะสม เพื่อช่วยให้นักพัฒนาสามารถปรับปรุงและปรับปรุงประสิทธิภาพของโค้ดได้มากยิ่งขึ้น
    2. โค้ด: เลือกทั้งหมด

      $profiler->mark('');
      เป็นการใช้งาน JProfiler เพื่อทำการทำเครื่องหมาย (mark) บางส่วนของโค้ดที่ต้องการให้ JProfiler ทำการติดตามและวัดประสิทธิภาพ หรือการใช้งานฟังก์ชันนี้มักจะมีไว้เพื่อวัดประสิทธิภาพของโค้ดหรือส่วนที่ต้องการตรวจสอบโดยเฉพาะ โดยเมื่อนำข้อมูลที่ได้จากการทำเครื่องหมาย (mark) มาวิเคราะห์กับข้อมูลประสิทธิภาพอื่นๆ จะช่วยให้นักพัฒนาสามารถระบุประเด็นที่ต้องปรับปรุงหรือแก้ไขเพื่อเพิ่มประสิทธิภาพให้กับโค้ดได้ในที่สุด
    ซึ่งในการใช้งานคลาส Profiler หลักๆ ในการเช็คระบบของโปรแกรมจะมีประมาณนี้
  • ตัวอย่างการใช้สร้างคลาส Profiler ในฟังก์ชันหนึ่งๆ และให้ทำการ mark จุดที่ต้องการเช็คความเร็วและหน่วยความจำที่ใช้ในของฟังก์ชันนั้นๆ ได้เลย

    โค้ด: เลือกทั้งหมด

         public function getData()
        {
            $profiler = new JProfiler();
    
            echo $profiler->mark('ก่อนดึงข้อมูล') . "<br/>";
    
            $params         = ComponentHelper::getParams('com_mexample');
            $cache_enabled  = (bool) $params->get('config_cacahe_display', 0);
            $cache_time     = (int) $params->get('config_cacahe_time', 0);
            $db             = JFactory::getDbo();
    
            $cache          = JFactory::getCache('com_mexample', '');
            $cache->setCaching($cache_enabled);
            $cache->setLifeTime($cache_time); 
    
            echo $profiler->mark('หลังดึงข้อมูล'). "<br/>";
    
            if ($customer != null && $cache_enabled != false) 
            {
                $data = !empty($cache->get($cache->makeId())) ? $cache->get($cache->makeId()) : null;
    
            }
            else
            {
                $query = $db->getQuery(true)
                        ->select($db->qn(array('id', 'name', 'birthday', 'gender', 'age')))
                        ->from($db->qn('#__mexample_customers'))
                        ->order('id DESC');
                $db->setQuery($query);
                $data_db = $db->loadObjectList();
                $cache->store($data_db ,$cache->makeId());
    
                $customer = $cache->get($cache->makeId());
                $data = $cache_enabled == true ? $customer : $data_db;
    
            }
    
            echo $profiler->mark('ข้อมูลแคช'). "<br/>";
            
            return $data;
        }
    }
    
    ผลลัพธ์ที่ได้
    Joomla Developing Knowledge-1.png
    Joomla Developing Knowledge-1.png (39.02 KiB) Viewed 518 times
    ซึ่งจะมีความรายละเอียดในการเช็คการทำงานของฟังก์ชันนั้นๆ ได้
การใช้ Utility Class Profiler ใน Joomla เพื่อเช็คความเร็วของการทำงานของระบบมุ่งเน้นการแสดงถึงวิธีการใช้เครื่องมือนี้เพื่อวัดและวิเคราะห์ประสิทธิภาพของระบบเว็บไซต์ Joomla โดยเน้นไปที่การทำงานที่ Profiler สามารถช่วยในการแก้ไขปัญหาและปรับปรุงระบบได้อย่างมีประสิทธิภาพ นอกจากนี้ยังเน้นการวิเคราะห์ข้อมูลที่ได้จาก Profiler และวิธีการอ่านและใช้ข้อมูลเหล่านี้เพื่อการปรับปรุงประสิทธิภาพของระบบ ทำให้ผู้อ่านเข้าใจได้อย่างชัดเจนว่า Profiler ใน Joomla มีความสำคัญอย่างไรในการวัดและปรับปรุงประสิทธิภาพของเว็บไซต์

อ้างอิง
https://docs.joomla.org/API15:JProfiler
https://docs.joomla.org/Using_caching_to_speed_up_your_code
https://docs.joomla.org/How_to_debug_your_code#Joomla_Debug_Console
:gfb:
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 1