Clear Sky Science · tr
Batarya ile çalışan IoT cihazlarında Java uygulamalarının enerji verimliliği üzerinde sanal iş parçacıkları ve çöp toplamaya etkisi
Neden küçük cihazlar ve pilleri önemlidir
Spor bantlarından fabrikalardaki kablosuz sensörlere kadar etrafımızdaki giderek daha fazla nesne, küçük pillerle çalışan küçük bilgisayarlardır. Bu piller bittiğinde maliyet, zahmet ve elektronik atık ortaya çıkar. Bu makale, bu pilleri daha uzun süre dayanıklı kılmanın şaşırtıcı derecede etkili bir yolunu inceliyor: yeni bir çip ya da pil kimyası değil, daha akıllı yazılım. Bir akıllı saat benzeri cihazı test vakası olarak kullanarak yazarlar, donanımı hiç değiştirmeden modern bir Java programlama tarzının pil ömrünü yaklaşık %40 kadar uzatabileceğini gösteriyor.
Günlük yazılımın sessizce enerji israf etmesi
Birçok pil ile çalışan cihaz ömrünün büyük kısmını bekleyerek geçirir: bir nabız ölçümü alınmasını, bir düğmeye basılmasını veya Wi‑Fi üzerinden bir mesaj gönderilmesini bekler. Geleneksel Java programları bu işleri etkinlik başına bir işletim sistemi iş parçacığı kullanarak ve basit bir "bunu yap, sonra bekle" tarzıyla ele alır. Bu programcılar için kolay olsa da, işlemci işe yaramazken bile uyanık kalmasına neden olur ve ayrıca Java kullanılmayan belleği temizlediğinde ani iş patlamaları tetikler. Prizde takılı bir telefon veya dizüstü bilgisayarda bu çoğunlukla fark edilmez. İnce bir pil ile tüm gün çalışması gereken küçük bir saatte ise bu ekstra uyanışlar ve duraklamalar çalışma süresini sessizce tüketir.
Aynı anda çok işi yapmanın yeni bir yolu
Java’nın modern sürümleri bu resmi değiştiren iki önemli araç ekler. Birincisi "sanal iş parçacıkları"dır; bunlar Java çalışma zamanının sadece birkaç gerçek donanım iş parçacığı üzerinde binlerce hafif görevi idare etmesini sağlar. Bir görev ağ yanıtı ya da sensör okumayı beklerken ucuzca park edilebilir ve işlemciyi meşgul etmez. İkincisi, ZGC gibi yeni bir "düşük gecikmeli" çöp toplayıcı ailesidir; bunlar işleri tüm programı uzun süre durdurmak yerine küçük dilimlere böler. Birlikte bu özellikler çipin daha sık ve daha uzun süre derin uykuya geçmesini sağlar; bu mevcut en düşük güç durumudur. Cihaz sürekli yarı uyanık olmak yerine kısa süreli uyanışlarla işleri yapar ve hızla dinlenmeye döner.

İki akıllı saatin hikayesi
Bunun pratikte ne kadar fark yarattığını görmek için araştırmacılar aynı basit akıllı saat uygulamasının iki sürümünü inşa ettiler. Her iki sürüm de periyodik olarak kalp atış hızı verisi okuyor ve bunu Wi‑Fi üzerinden bir bulut servisine gönderiyordu; bu, giyilebilir cihazlar ve diğer Nesnelerin İnterneti cihazlarında yaygın bir desendir. İlk sürüm geleneksel iş parçacıkları ve varsayılan çöp toplama ile eski, engelleyen (blocking) kod tarzını kullandı. İkinci sürüm ise sanal iş parçacıkları ve ZGC çöp toplayıcı üzerine kurulu olay güdümlü, asenkron bir tarz kullandı. Donanım, pil ve iş yükü özdeş tutuldu: Wi‑Fi modüllü bir ARM Cortex‑M4 kartı, 1000 mAh lityum-polimer pil ile çalıştırıldı ve hassas ölçüm cihazları akım çekişini ve işlemci etkinliğini kaydederken 24 saat sürekli çalıştırıldı.
Güç ölçümlerinin ortaya koydukları
Eski tasarım sürekli dolaşan gergin bir insan gibi davrandı: işlemci ağ beklerken bile zamanın yaklaşık %85’i aktif kaldı ve cihaz yalnızca sığ bir uyku durumuna ulaşabildi. Boşta akım yaklaşık 50 miliamper civarında seyretti, ağ kullanımında ve bellek temizliğinde 250 miliampere kadar sivri yükselişler oldu. Sonuç olarak pil yaklaşık yedi saatte tükendi. Buna karşılık modern tasarım kısa patlamalar halinde çalışan ve sonra derin dinlenen bir sprinter gibiydi. Engellemeyen ağ çağrıları ve zamanlayıcı tabanlı uyanışlar çipin zamanın yaklaşık %70’ini derin uykuda geçirmesine izin verdi; boşta akım yaklaşık 5 miliamper civarındaydı ve güç izleri çok daha düzgün oldu. Ortalama akım yaklaşık 100 miliampere düştü ve ölçülen pil ömrü yaklaşık on saate çıktı—yüzde 42’lik bir iyileşme.

Daha çevreci cihazlar için pratik dersler
Bu tek akıllı saatin ötesinde çalışma, pil ile çalışan cihazlar inşa eden herkes için genel dersler çıkarıyor. Olay güdümlü, asenkron tasarımlar, hafif iletişim yöntemleri ve dikkatli zamanlama ile birleştiğinde cihazların etkinlik patlamaları arasında gerçekten kapalı kalmasını sağlar. Modern Java özellikleri böyle kodları güvenlikten veya taşınabilirlikten ödün vermeden yazmayı kolaylaştırır ve testler yüzlerce görevin yalnızca mütevazı ek akım çekişi ile yönetilebileceğini gösterdi. Başka bir deyişle, enerji verimliliği sadece doğru çipi seçmekle ilgili değildir—uyku süresini en yüksek performans biçimi olarak gören yazılımlar yazmakla ilgilidir. Akıllı şehirler, tıbbi izleyiciler ve ev sensörleri için bu zihniyet doğrudan daha az pil değişimi, daha düşük maliyet ve daha az atık anlamına gelebilir.
Atıf: Shanjai Kumar, S., Sanjai, B.N., Etheeswar Kaarthi, S. et al. Impact of virtual threads and garbage collection on energy efficiency of Java applications for battery powered IoT devices. Sci Rep 16, 13507 (2026). https://doi.org/10.1038/s41598-026-40112-6
Anahtar kelimeler: IoT enerji verimliliği, pil ömrü, Java sanal iş parçacıkları, düşük güçlü yazılım, akıllı saat cihazları