Meskipun saya belum menguji G1 dalam produksi, saya pikir saya akan berkomentar bahwa GC sudah bermasalah untuk kasus-kasus tanpa tumpukan yang "sangat besar". Khususnya layanan dengan, katakanlah, 2 atau 4 pertunjukan bisa sangat terpengaruh oleh GC. GC generasi muda biasanya tidak bermasalah karena mereka selesai dalam milidetik satu digit (atau paling banyak dua digit). Tetapi koleksi generasi lama jauh lebih bermasalah karena memerlukan beberapa detik dengan ukuran generasi lama 1 pertunjukan atau lebih.
Sekarang: dalam teori CMS dapat membantu banyak di sana, karena dapat menjalankan sebagian besar operasinya secara bersamaan. Namun, seiring waktu akan ada kasus di mana ia tidak dapat melakukan ini dan harus kembali ke koleksi "hentikan dunia". Dan ketika itu terjadi (setelah, katakanlah, 1 jam - tidak sering, tapi masih terlalu sering), pegang topi Anda. Ini bisa memakan waktu satu menit atau lebih. Ini khususnya bermasalah untuk layanan yang mencoba membatasi latensi maksimum; alih-alih membutuhkan, katakanlah, 25 milidetik untuk melayani permintaan, kini dibutuhkan sepuluh detik atau lebih. Untuk menambah cedera pada penghinaan, klien akan sering meminta waktu habis dan mencoba lagi, yang mengarah ke masalah lebih lanjut (alias "badai kotoran").
Ini adalah salah satu area di mana G1 diharapkan dapat banyak membantu. Saya bekerja untuk perusahaan besar yang menawarkan layanan cloud untuk penyimpanan dan pengiriman pesan; dan kami tidak dapat menggunakan CMS karena meskipun sebagian besar waktu CMS bekerja lebih baik daripada varietas paralel, CMS mengalami gangguan ini. Jadi selama sekitar satu jam semuanya menyenangkan; dan kemudian hal-hal menghantam kipas ... dan karena layanan didasarkan pada cluster, ketika satu node mendapat masalah, node lain biasanya mengikuti (karena waktu tunggu yang diinduksi GC mengarah ke node lain yang percaya node telah crash, mengarah ke perutean ulang).
Saya tidak berpikir GC adalah masalah besar bagi aplikasi, dan bahkan mungkin layanan non-cluster tidak terlalu sering terpengaruh. Tetapi semakin banyak sistem yang dikelompokkan (terutama berkat penyimpanan data NoSQL) dan ukuran heap bertambah. OldGen GC terkait secara super linier dengan ukuran heap (artinya menggandakan ukuran heap lebih dari dua kali lipat waktu GC, dengan asumsi ukuran kumpulan data langsung juga berlipat ganda).