Hangi sanallaştırma teknolojisini kullanıyorsam
512 MB'den fazla RAM'e sahip sistemlerin kanama kenarı olarak kabul edildiği günleri hatırlıyor musunuz? Günlerimi önceden kod yazarak geçiriyorum.
Çoğunlukla Xen ortamında ayrıcalıklı etki alanında çalışan düşük düzeyli programlarda çalışıyorum. Ayrıcalıklı alan için tavanımız 512 MB olup, geri kalan RAM'i müşterilerimizin kullanması için boş bırakır. Ayrıcalıklı etki alanını yalnızca bir CPU çekirdeğiyle sınırlamak bizim için tipiktir.
İşte buradayım, yepyeni bir $ 6k sunucu üzerinde çalışacak kod yazma ve her programın 100kb tahsis edilmiş tavanda (ideal olarak) çalışması veya dinamik bellek tahsisinden tamamen kaçınması gerekiyor.
Kısaca, aşağıdakiler için optimize ediyorum:
- Bellek alanı
- Sıralar (kodumun çoğunun zamanının çoğunu geçirdiği yer)
Kilitleri beklemek, G / Ç'yi beklemek veya sadece genel olarak beklemek için harcanan zaman söz konusu olduğunda da gayretli olmalıyım. Zamanımın önemli bir kısmı, mevcut engelleme olmayan soket kitaplıklarını geliştirmeye ve kilitsiz programlama için daha pratik yöntemlere bakmaya gidiyor.
Her gün, 15 yıl önce yaptığım gibi, geçen ay satın alınan sistemlerde, teknolojideki gelişmeler nedeniyle kod yazmamın biraz ironik olduğunu düşünüyorum .
Bu, gömülü platformlarda çalışan herkes için de tipiktir, ancak bunların çoğunda bile en az 1GB kullanımdadır. Jason'ın belirttiği gibi, mobil cihazlarda çalıştırılacak programlar yazarken de tipiktir. Liste devam ediyor, Kiosklar, ince istemciler, resim çerçeveleri vb.
Donanım kısıtlamalarının, programcıları gerçekten bir şeyleri gerçekten tükettiklerini umursamadan çalıştırabilecek insanlardan ayırdığını düşünmeye başlıyorum. Endişeliyim (aşağı gerekirse bana oy verin) tamamen soyut tip ve hafızayı kontrol eden ortak akıl havuzuna hangi dillerin farklı disiplinlerin programcıları arasında paylaşıldığı (eskiden).