author Ahmad Muhardian

Aplikasimu Lambat? Coba Cek dengan Profiler di Codeigniter


Codeigniter

Pernah dengar profiler?

Kalau belum, artikel ini tepat untukmu.

Codeigniter memang memudahkan kita dalam membuat aplikasi web.

Meskipun kita sudah tahu… MVC adalah desain pola yang dipakai Codeigntier, tapi masih aja ada orang yang menulis kode brantakan.

Akibatnya:

Aplikasi berjalan lambat dan terasa berat.

Nah si Profiler ini akan memberitahu kita, kelemahan dari aplikasi.

Seperti:

  • Berapa lama Waktu yang dibutuhkan untuk eksekusi controller
  • Query apa saja yang dieksekusi
  • Kecepatan ekekusi query
  • Data yang terkirim
  • dan sebagainya.

Sebenarnya kurang cocok disebut “kelemahan” sih, tapi dari data profiler ini kita akan bisa tahu kelemahan dari aplikasi yang sedang dikembangkan.

Apa itu Profiler?

Profiler adalah sebuah class yang akan membantu kita mengukur (benchmark) kecepatan eksekusi dari beberapa bagian kode di Codeigniter seperti query, controller, dll.

Bahkan juga memberitahu kita seberapa banyak memori yang terpakai, controller yang dieksekusi, data yang dikirim, dan lain sebagainya.

Biasanya Profiler digunakan untuk debugging dan optimasi aplikasi. 1

Profiler ini tidak aktif secara default, karena itu kita harus mengaktifkannya.

Caranya gimana?

Begini:

Cara Mengaktifkan Profiler CodeIgniter

Cara mengaktifkan Profiler di CodeIgniter sangatlah mudah, cukup dengan menjalankan fungsi ini di controller.

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

Maka kita akan mendapatkan informasi seperti berikut ini:

Profiler CodeIgniter

Kemudian, agar Profiler aktif di setiap method atau fungsi, letakan kode tersebut di dalam konstruktor:

function __construct(){
    parent::construct();

    // untuk debugging
    $this->output->enable_profiler(TRUE);
}

Menonaktifkan Profiler CodeIgniter

Cara menonaktifkannya, kita bisa menghapus fungsi tersebut atau mengubah parameternya menjadi false.

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

Tapi nanti masalahnya, saat kita mau deploy ke server…

…kita harus mengubah setiap fungsi profiler menjadi FALSE.

Hal ini tidak efektif.

Lalu bagaimana solusinya?

Solusinya kita bisa memanfaatkan variabel ENVIRONTMENT.

$this->output->enable_profiler(ENVIRONMENT == 'development');

Jadi jika nilai variabel ENVIRONTMENT adalah development (localhost), maka dia akan menghasilkan nilai TRUE.

Tapi kalau nilai variabel ENVIRONTMENT adalah production, maka akan menghasilkan nilai FALSE.

Kita bisa membuat variabel ENVIRONTMENT di dalam index.php:

switch($_SERVER["HTTP_HOST"]){
  case "localhost":
      define('ENVIRONMENT', 'development');
  break;
  default:
      define('ENVIRONMENT', 'production');
  break;
}

Baca Juga ini

Tutorial Codeigniter #09: Membuat Fitur Login untuk Admin

Tutorial Codeigniter #09: Membuat Fitur Login untuk Admin

Pelajari cara membuat fitur login untuk Admin di Codeigniter dengan Library session bawaan Codeigniter.

Pengenalan Slim Framework untuk Pemula

Pengenalan Slim Framework untuk Pemula

Slim Framework adalah mikro framework PHP untuk membuat aplikasi web. Biasanya digunakan untuk membuat REST API atau webserivice. Pada kesempatan ini, kita akan belajar dasar-dasar penggunaan Slim Framework. Mulai dari tahap instalasi, sampai membuat route. Catatan: Tutorial ini untuk Slim Versi 3 Baiklah, mari kita mulai… Konsep Slim FramworkSlim Framework sebenarnya sangat sederhana. Dia hanya bertugas menerima HTTP Request, lalu memanggil fungsi yang diinginkan. Setelah itu mengembalikan HTTP Response. Konsep #SlimFramework sangat sederhana.

Cara Mengambil Input di PHP CLI

Cara Mengambil Input di PHP CLI

Seperti yang sudah saya bahas pada tulisan sebelumnya. PHP CLI merupakan PHP yang berjalan di atas Command Line. Biasanya, program yang berbasis teks memiliki fungsi tersendiri untuk mengambil input. Contohnya Python menggunakan fungsi input() dan raw_input(), java menggunakan Scanner dan BufferReader, C++ menggunakan cin, Pascal menggunakan readln(), dsb. Lalu, Bagaiaman dengan PHP? Menggunakan Fungsi fopen()Cara pertama mengambil input di PHP CLI adalah dengan menggunakan fungsi fopen(). Pada dasarnya fungsi ini digunakan untuk membuka atau membaca file.

Pertemuan kedua praktikum bebas, memahami MVC Yii

Pertemuan kedua praktikum bebas, memahami MVC Yii

Melanjutkan praktikum sebelumnya, pada pertemuan kedua ini kita akan belajar MVC (Model, View, Controller) Yii. Memahami MVC dengan praktik langsung. Modifikasi controller Jurusan Mari kita buka berkas JurusanController.php, yang berada di direktori backend/controllers/. Isi dari berkas tersebut berupa kelas bernama JurusanController, kelas ini turunan dari kelas Controller. <?php namespace backend\controllers; use Yii; use backend\models\Jurusan; use yii\data\ActiveDataProvider; use yii\web\Controller; use yii\web\NotFoundHttpException; use yii\filters\VerbFilter; /** * JurusanController implements the CRUD actions for Jurusan model.

Pertemuan pertama praktikum bebas, belajar framework Yii

Pertemuan pertama praktikum bebas, belajar framework Yii

Pagi tadi, pertemuan pertama praktikum bebas dimulai. Praktikum ini diadakan oleh STMIK Bumigora Mataram secara cuma-cuma. Praktikum ini bertujuan untuk mengembangkan keterampilan mahasiswa dalam memrogram. Pada praktikum ini, kita mempelajari framework yii. Persiapan senjata praktikumSebelum memulai praktikum, pastikan sudah memasang apache, php, dan mysql versi terbaru yang mendukung framework Yii. Di praktikum ini saya menggunakan Linux (Xubuntu). Sedikit informasi server web lokal yang sedang berjalan di laptop saya. $ php -v

Cara Menggunakan Composer untuk Manajemen Proyek PHP

Cara Menggunakan Composer untuk Manajemen Proyek PHP

Bayangkan kita sedang mengerjakan proyek web dengan PHP. Kemudian kita membutuhkan beberapa library untuk melengkapi proyek ini. Biasanya, kita men-download sendiri library-nya dari internet. Tapi… Kadang library yang satu dengan yang lain saling membutuhkan agar bisa digunakan. Hal ini disebut depedency (keterkaitan/ketergantungan). Contohnya: Library X membutuhkan library Y agar bisa digunakan, kemudian library Y membutuhkan library Q,R,S. “Bagaimana kalau ada banyak sekali library yang digunakan?” Pastinya akan repot mencari sendiri depedency library-nya.