Az önce Google Chromium Blog‘da yayınlanan bir yazı bu soruya ışık tutuyor.
Google Chrome geliştirilirken, yazılımcıların en çok dikkat ettikleri konuların başında disk yazma okuma işlemlerini minimuma indirmek geliyor. Bu ne kadar mı önemli? Yıllardır kullandığınız ve disk birleştirme işlemini bir kez dahi uygulamadığınız bir Windows kurulumunda Internet Explorer’ın kaç saniyede açıldığını bir düşünün? Ya da bilgisayarınız ilk açıldığında IE ya da Firefox’u açmayı deneyin. Açılmıyor mu? Bu büyük olasılıkla tarayıcınız yüklenirken favori listelerinizin, cache bilgilerinizin, kullanıcı ayarlarınızın, cookie bilgilerinizin, kısacası sabit diskinizde tarayıcı ile ilgili ne varsa hafızaya yüklenmesi sebebiyle karşılaştığınız bir durum.
Peki Chrome’da ne değişti de hantal bilgisayarım daha Windows Vista’yı doğru düzgün açamamışken Chrome’a tıkladığım anda tarayıcım açılıyor?
Google tarayıcının sabit diskinizle olan ilişkisini değiştirdi. Chrome’un çalıştırdığı ana thread kesinlikle sabit diskinizle ilgilenmiyor. Hatta bu, tarayıcının geliştirilmesi sırasında Google’ın yazılımcılarına şart koştuğu bir kural: ANA İŞ PARÇACIĞI ASLA DİSKE VERİ YAZIP OKUYAMAZ.
Bu kurala o kadar sadık kalınmış ki, bu iş parçacığının gerçekten I/O işlemleri yapıp yapmadığı, I/O hakları elinden alınarak çalıştırılmak suretiyle test edilmiş.
Peki Chrome hiç mi diske veri yazmıyor? Elbette yazıyor ve okuyor. Fakat bunu yapan, sizin gördüğünüz kullanıcı arabiriminden ayrı bir şekilde çalışan iş parçacıkları (thread). Dolayısıyla kullanıcı arabirimi oluşturulurken bir taraftan da favorilerinizin ya da geçmiş ziyaretlerinizin yüklemesini beklemek zorunda kalmıyorsunuz. Benzer şekilde taradığınız sayfayı farklı kaydederken diğer işlemlerin devam etmesi de asenkron çalışan iş parçacıkları sayesinde gerçekleştiriliyor.
Web’de asenkron uygulamaların ilk zamanlarında, henüz hiç bir AJAX kütüphanesi hayatımızı kolaylaştırmazken, kullanıcılara daha iyi ve hızlı bir deneyim sunabilmek için kodlamada çektiğimiz sıkıntıların bir benzeri de Chrome’un bu şekilde çalışmasının sağlanması adına yaşanmış. Bu girişimlerin başarıya ulaşıp ulaşmayacağını önümüzdeki günlerde göreceğiz.