[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"blog-cats-ngidenet":3,"blog-detail-ngidenet-quick-test-fitur-baru-laravel-6-seberapa-efektif-lazzy-collection":20},{"items":4},[5,9,13,17],{"name":6,"slug":7,"count":8},"Digital Marketing","digital-marketing",41,{"name":10,"slug":11,"count":12},"Programming","programming",56,{"name":14,"slug":15,"count":16},"Tips","tips",75,{"name":18,"slug":19,"count":8},"Web Development","web-development",{"id":21,"slug":22,"title":23,"short_text":24,"excerpt":24,"cover":25,"cover_image":25,"cover_alt_text":25,"category":10,"tags":26,"published_at":27,"created_at":28,"full_text":29,"meta_title":25,"meta_description":30,"faqs":31,"images":32,"views_count":33},424,"quick-test-fitur-baru-laravel-6-seberapa-efektif-lazzy-collection","Quick Test Fitur Baru Laravel 6, Seberapa Efektif Lazzy Collection?","Laravel , Programming by Agus Yusida September 30, 2019 294 Views Laravel 6 sudah beberapa minggu ini release. Tentu ada beberapa update fitur-fitur keren yang patut dicoba. Yang paling menarik perhat",null,[],"2020-08-09T16:00:00Z","2026-07-14T04:39:38.562934Z","\u003Cimg alt=\"\" src=\"data:image\u002Fgif;base64,R0lGODlhAQABAIAAAAAAAP\u002F\u002F\u002FyH5BAEAAAAALAAAAAABAAEAAAIBRAA7\"\u002F>  Laravel , Programming  by Agus Yusida  September 30, 2019 294 Views\u003Cp>Laravel 6 sudah beberapa minggu ini release. Tentu ada beberapa update fitur-fitur keren yang patut dicoba.\u003C\u002Fp>\u003Cp>Yang paling menarik perhatian saya adalah \u003Cstrong>Lazzy Collection\u003C\u002Fstrong>.\u003C\u002Fp>\u003Cp>Dari beberapa pengalaman membuat aplikasi selama ini, dalam Laravel, jika ingin me-load data dalam jumlah besar sekaligus maka membuat memory usagenya menjadi membengkak. Ujung-ujungnya bisa membuat server down kalau tidak kuat.\u003C\u002Fp>\u003Cp>Jadi lazzy collection ini sepertinya menjadi sebuah jawaban keresahan saya selama ini. hahaha ~\u003C\u002Fp>\u003Cp>Kita akan melakukan testing aja. Testingnya sangat sederhana. Mungkin di komputer berbeda tapi tujuannya hanya ingin tahu perbandingan kalau pakai collection biasa memory usagenya berapa, kalau pakai lazzy collection memory usagenya berapa.\u003C\u002Fp>\u003Cp>Yuk kita mulai saja.\u003C\u002Fp>\u003Cp>Table of Contents\u003C\u002Fp> \u003Ci>\u003C\u002Fi>\u003Ch4>Step 1. Install laravel 6\u003C\u002Fh4>\u003Cpre>create-project --prefer-dist laravel\u002Flaravel testing 6.0\u003C\u002Fpre>\u003Cp>Jika sudah terinstall, install juga depedency yang dibutuhkan.\u003C\u002Fp>\u003Cp>Untuk info mengenai cara install laravel lebih lanjut bisa akses: \u003Ca href=\"https:\u002F\u002Flaravel.com\u002Fdocs\u002F6.x\">https:\u002F\u002Flaravel.com\u002Fdocs\u002F\u003C\u002Fa>\u003C\u002Fp>\u003Cfigure>\u003Cimg alt=\"\" src=\"data:image\u002Fgif;base64,R0lGODlhAQABAIAAAAAAAP\u002F\u002F\u002FyH5BAEAAAAALAAAAAABAAEAAAIBRAA7\"\u002F>\u003C\u002Ffigure>\u003Ch4>Step 2. Install debugbar untuk melihat memory usage.\u003C\u002Fh4>\u003Cp>Jika laravel sudah terinstall, tambahkan package debugbar.\u003C\u002Fp>\u003Cpre>composer require barryvdh\u002Flaravel-debugbar --dev\u003C\u002Fpre>\u003Cp>Jika laravel sudah terinstall, kamu buka di browser dan harusnya muncul tampilan awal laravel dengan debugbar disebelah bawah.\u003C\u002Fp>\u003Cfigure>\u003Cimg alt=\"\" src=\"data:image\u002Fgif;base64,R0lGODlhAQABAIAAAAAAAP\u002F\u002F\u002FyH5BAEAAAAALAAAAAABAAEAAAIBRAA7\"\u002F>\u003Cfigcaption>laravel &amp; debugbar\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Ch4>Step 2. Dummy data &amp; routing\u003C\u002Fh4>\u003Cp>Selanjutnya? Kita perlu dummy data untuk testing. Kita akan generate lewat seeder.\u003C\u002Fp>\u003Cp>Edit file \u003Cstrong>DatabaseSeeder.php\u003C\u002Fstrong> untuk membuat dumy user dengan menggunakan \u003Cstrong>UserFactory.php\u003C\u002Fstrong> yang sudah ada.\u003C\u002Fp>\u003Cpre>&lt;?php\nuse App\\User;\nuse Illuminate\\Database\\Seeder;\nclass DatabaseSeeder extends Seeder\n{\n    \u002F**\n     * Seed the application's database.\n     *\n     * @return void\n     *\u002F\n    public function run()\n    {\n        \n        factory(User::class, 100000)\n\t\t        -&gt;create();\n    }\n}\n\u003C\u002Fpre>\u003Cp>Run migration dan seeder.\u003C\u002Fp>\u003Cpre>php artisan migrate:install\nphp artisan db:seed\u003C\u002Fpre>\u003Cp>Kamu bisa cek jika table sudah berhasil di migrate dan data user sudah terisi.\u003C\u002Fp>\u003Cp>Buat 2 route baru untuk testing \u003Cem>collection\u003C\u002Fem> biasa dan \u003Cem>lazzy collection\u003C\u002Fem>.\u003C\u002Fp>\u003Cpre>&lt;?php\nRoute::get('\u002F', function () {\n    $users = \\App\\User::cursor();\n\tforeach ($users as $key =&gt; $value) {\n\t\techo $value-&gt;id;\n\t}\n    return 1;\n});\nRoute::get('\u002F2', function () {\n    $users = \\App\\User::all();\n    foreach ($users as $key =&gt; $value) {\n\t\techo $value-&gt;id;\n\t}\n    return 1;\n});\n\u003C\u002Fpre>\u003Cp>Jadi route pertama : \u003Cem>http:\u002F\u002F127.0.0.1:800\u002F\u003C\u002Fem> akan menggunakan lazzy collection dan \u003Cem>http:\u002F\u002F127.0.0.1:800\u002F2\u003C\u002Fem> akan menggunakan normal collection.\u003C\u002Fp>\u003Ch4>Saatnya testing.\u003C\u002Fh4>\u003Cp>Kita lihat perbedaan masing-masing penggunaan memorinya lewat gambar di bawah ini.\u003C\u002Fp>\u003Cp>\u003Cstrong>Yang kanan lazzy collection. Yang kiri collection biasa.\u003C\u002Fstrong>\u003C\u002Fp>\u003Cfigure>\u003Cimg alt=\"\" src=\"data:image\u002Fgif;base64,R0lGODlhAQABAIAAAAAAAP\u002F\u002F\u002FyH5BAEAAAAALAAAAAABAAEAAAIBRAA7\"\u002F>\u003Cfigcaption>100.000 data\u003Cbr\u002F>\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>Untuk load 100.000 data, lazz collection memakai memory \u003Cstrong>70.22MB \u003C\u002Fstrong>sedangkan collection biasa \u003Cstrong>150.25MB\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Ternyata hampir mengurangi setengah kebutuhan ram dibandingkan dengan collection biasa. Keren.\u003C\u002Fp>\u003Cfigure>\u003Cimg alt=\"\" src=\"data:image\u002Fgif;base64,R0lGODlhAQABAIAAAAAAAP\u002F\u002F\u002FyH5BAEAAAAALAAAAAABAAEAAAIBRAA7\"\u002F>\u003Cfigcaption>10.000 data\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>Untuk load 10.000 data, lazz collection memakai memory \u003Cstrong>7.5MB\u003C\u002Fstrong> sedangkan collection biasa \u003Cstrong>11.17MB\u003C\u002Fstrong>\u003C\u002Fp>\u003Cp>Perbedaan \u003Cstrong>memory usage\u003C\u002Fstrong> hampir 50% juga\u003C\u002Fp>\u003Cfigure>\u003Cimg alt=\"\" src=\"data:image\u002Fgif;base64,R0lGODlhAQABAIAAAAAAAP\u002F\u002F\u002FyH5BAEAAAAALAAAAAABAAEAAAIBRAA7\"\u002F>\u003Cfigcaption>1000 data\u003C\u002Ffigcaption>\u003C\u002Ffigure>\u003Cp>Untuk load 1000 data, lazz collection memakai memory 4.5MB sedangkan collection biasa 5.18MB\u003C\u002Fp>\u003Cp>Untuk data yang 1000 ke bawah perbedaan memory usagenya tidak terlalu besar sih, tapi masih lebih kecil lazzy loading.\u003C\u002Fp>\u003Ch4>Kesimpulan\u003C\u002Fh4>\u003Cp>\u003Cem>Lazzy Collection\u003C\u002Fem> terbukti mengurangi penggunaan memori saat membutuhkan data besar yang akan diload sekaligus. Tentu ini menjadi sebuah kabar bagi para artisan. Walaupun secara best practice load data sekaligus tidak dianjurkan, maka dengan \u003Cem>lazzy collection\u003C\u002Fem> ini penggunaan memory jadi lebih hemat.\u003C\u002Fp> Tags :  laravel 6., lazzy collection\u003Cul>\u003C\u002Ful>","Laravel , Programming by Agus Yusida September 30, 2019 294 Views Laravel 6 sudah beberapa minggu ini release. Tentu ada beberapa update fitur-fitur keren yang ",[],[],0]