Clear Sky Science · he

ההשפעה של חוטים וירטואליים ואיסוף אשפה על יעילות האנרגיה של יישומי Java למכשירי IoT המופעלים על סוללות

· חזרה לאינדקס

מדוע הגאדג'טים הזעירים והסוללות שלהם חשובים

מטבעות כושר ועד חיישנים אלחוטיים במפעלים, יותר ויותר מהחפצים שסביבנו הם מחשבים זעירים הפועלים על סוללות זעירות. כאשר סוללות אלה מתרוקנות, זה יוצר עלויות, טרדות ופסולת אלקטרונית. מאמר זה בוחן מנוף מפתיע ועוצמתי להארכת חיי הסוללה: לא שבב חדש או כימיה חדשה לסוללה, אלא תוכנה חכמה יותר. בהסתמך על מכשיר בסגנון שעון חכם כמקרה מבחן, המחברים מראים כיצד סגנון מודרני של תכנות ב‑Java יכול להאריך את חיי הסוללה בכ‑40 אחוז בערך מבלי לשנות את החומרה כלל.

כיצד תוכנה יומיומית יכולה לבזבז אנרגיה בשקט

מכשירים רבים המופעלים על סוללות מבלים את רוב זמנם בהמתנה: המתנה לקראת מדידת דופק, ללחיצה על כפתור או לשליחת הודעה דרך Wi‑Fi. תוכניות Java מסורתיות מטפלות במשימות אלה באמצעות חוט מערכת פעולה לכל פעילות ובסגנון פשוט של "עשה את זה, ואז המתן". בעוד שזה נוח למתכנתים, זה משאיר את המעבד ער גם כאשר אין לו מה לעשות, וגם גורם להתפרצויות פתאומיות של עבודה כאשר Java מנקה זיכרון לא בשימוש. בטלפון או במחשב נייד שמחובר לחשמל זה לרוב לא מורגש. בשעון זעיר שצריך לפעול כל יום מסוללה דקה, ההתעוררוּת וההפסקות הנוספות האלה מאכלות בשקט את זמן הפעולה.

דרך חדשה לעשות הרבה דברים בו‑זמנית

גרסאות מודרניות של Java מוסיפות שני כלים מרכזיים שמשנים את התמונה. הראשון הם "חוטים וירטואליים", שמאפשרים למטמון הריצה של Java לנהל אלפי משימות קלות משקל מעל מספר קטן של חוטי חומרה אמיתיים. כאשר משימה ממתינה לתשובת רשת או לקריאת חיישן, היא יכולה להיחנך בזול בלי לתפוס את המעבד. השני הוא משפחה חדשה של מנקי זיכרון "בתי־השיהוי נמוך", כגון ZGC, שמפרקים את העבודה לפרוסות קטנות במקום לעצור את כל התוכנית להפסקות ארוכות. יחד, התכונות האלה מאפשרות לשבב לצלול לשינה עמוקה בתדירות גבוהה ובמשך זמן רב יותר, המצב החסכוני ביותר באנרגיה הקיים. במקום שהמכשיר יהיה חצי‑מודע כל הזמן, הוא מתעורר בקצרה לעבודה ואז חוזר במהירות למנוחה.

Figure 1
Figure 1.

סיפורם של שני שעונים חכמים

כדי לראות כמה זה משנה בפועל, החוקרים בנו שתי גרסאות של אותו אפליקציית שעון חכם פשוטה. שתי הגרסאות קראו באופן מחזורי נתוני דופק ושלחו אותם לשירות ענן דרך Wi‑Fi, דפוס נפוץ במכשירי לבישים ובמכשירי אינטרנט של הדברים. הגרסה הראשונה השתמשה בסגנון החוסם הישן עם חוטים מסורתיים ואיסוף זיכרון ברירת מחדל. הגרסה השנייה השתמשה בסגנון אסינכרוני מונחה‑אירועים שבנה על חוטים וירטואליים ומנקי ZGC. החומרה, הסוללה והעומס נשמרו זהים: לוח ARM Cortex‑M4 עם מודול Wi‑Fi, המונע על ידי סוללת ליתיום‑פולימר בקיבולת 1000 mAh, שרץ ברצף במשך 24 שעות בעוד מכשירים מדויקים רשמו את צריכת הזרם ופעילות המעבד.

מה מדידות האנרגיה חשפו

העיצוב הישן התנהג כאדם חרד שיודד ללא הפסקה: המעבד נשאר פעיל בערך 85 אחוז מהזמן, גם בזמן ההמתנה לרשת, וההמכשיר הצליח להיכנס רק למצב שינה שטחי. זרם סרק נע סביב 50 מיליאמפר, עם קפיצות חדות מעל 250 מיליאמפר בזמן שימוש ברשת ואיסוף זיכרון. כתוצאה מכך, הסוללה התרוקנה בכ‑שבע שעות. מצד שני, העיצוב המודרני התנהג יותר כמו ספורטאי שנועץ בעבודות קצרות ואז נח לעומק. קריאות רשת שאינן חוסמות והתעוררות מבוססת טיימרים אפשרו לשבב לבלות כ‑70 אחוז מהזמן בשינה עמוקה, עם זרם סרק בסביבות 5 מיליאמפר וחתימות צריכה חלקות הרבה יותר. הזרם הממוצע ירד לכ‑100 מיליאמפר, וחיי הסוללה הנמדדים עלו לכ‑עשר שעות — שיפור של כ‑42 אחוז.

Figure 2
Figure 2.

לקחים מעשיים לגאדג'טים ירוקים יותר

מעבר לשעון החכם הבודד הזה, המחקר מפיק לקחים כלליים לכל מי שבונה מכשירים המופעלים על סוללות. עיצובים מונחי‑אירועים ואסינכרוניים, בשילוב עם שיטות תקשורת קלות ותזמון זהיר, מאפשרים למכשירים להיות כבויים באמת בין פרצי פעילות. תכונות מודרניות של Java מקלות על כתיבת קוד כזה מבלי לפגוע בבטיחות או בניידות, והמבחנים הראו שניתן לטפל במאות משימות עם צריכת זרם עודפת מתונה בלבד. במילים אחרות, יעילות אנרגטית אינה רק בחירת השבב הנכון — היא כתיבת תוכנה שמתייחסת לזמן השינה כצורת הביצועים הגבוהה ביותר. לעבורין חכמים, מערכות ניטור רפואיות וחיישנים ביתיים, גישה זו יכולה להתרגם ישירות לפחות החלפות סוללה, עלויות נמוכות יותר ופחות פסולת.

ציטוט: 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

מילות מפתח: יעילות אנרגטית ב‑IoT, חיי סוללה, חוטים וירטואליים ב‑Java, תוכנה צריכת‑אנרגיה נמוכה, מכשירי שעון חכם