لپتاپم را پس از یک مسیر رفتوآمد کمی بیش از یکساعته از کیفم بیرون کشیدم و گرم بود. نه گرمیِ «تازه از روی میز آمده». گرمیِ درونکیفی، با ۱۸٪ از باتریِ ازدسترفتهی دستگاهی که ظاهراً تمام آن مدت در خواب بود.
سالها Modern Standby را مقصر میدانستم و هر بار که لپتاپم گرمتر و باتریاش کمتر از انتظارم از کیف بیرون میآمد، زیر لب زمزمه میکردم که «خوابِ ویندوز بد است». آن توضیح آنقدر راحت شده بود که هیچوقت مکث نکردم بررسی کنم اصلاً لپتاپم از Modern Standby استفاده میکرد یا نه.
وقتی بالاخره از ویندوز خواستم نشانم دهد چه شده بود، تقریباً بلافاصله تشخیصم را برهم زد. لپتاپم از خواب سنتی S3 استفاده میکرد و در طولِ نشستِ متناظرِ یکساعته و بیستویکدقیقهای، هرگز وارد آن حالت خواب نشده بود.
نوع اشتباهی از خواب را مقصر میدانستم
این لپتاپ حتی از Modern Standby پشتیبانی هم نمیکند

ابتدا ترمینال ویندوز را باز کردم تا حالتهای انرژی پشتیبانیشدهی لپتاپم را بررسی کنم:
powercfg /a
این دستور تمام حالتهای خواب موجود را روی یک رایانهی ویندوزی فهرست میکند، در کنار دلایلی که حالتهای غیرقابلدسترسی نمیتوانند استفاده شوند. روی لپتاپ من، ساکتن (S3) و خواب زمستانی زیر حالتهای موجود ظاهر شدند. ساکتن با شبکه (S0 Low Power Idle) پایینتر بهعنوان غیرقابلدسترسی ظاهر شد زیرا سیستم فیرمویر آن را پشتیبانی نمیکرد. این، Modern Standby را پیش از آنکه أصلاً گزارشی تولید کنم حذف کرد.
Modern Standby ویندوز از حالت S0 Low Power Idle استفاده میکند و به رایانه اجازه میدهد بدون ترکِ S0 میان فعالیت پایین و بالاتر جابهجا شود. خواب سنتی S3 رفتار متفاوتی دارد. پردازنده و برخی سختافزارهای دیگر خاموش میشوند، کار محاسباتی عادی متوقف میشود و فقط حافظهی سیستم روشن میماند تا ویندوز بتواند نشست را هنگام بیدار شدن رایانه بازگرداند.
لپتاپم بنابراین از مدل خوابِ قدیمیتری برخوردار بود که بهاشتباه فرض کرده بودم ویندوز آن را کنار گذاشته. اگر هنگام بستن درب وارد S3 میشد، کاربردها نباید در طول مسیر رفتوآمد به کار продолж میدادند. پرسش دیگر این نبود که چرا لپتاپ در طول Modern Standby اینقدر انرژی مصرف کرد. لازم بود بدانم اصلاً وارد خواب شده بود یا نه.
ویندوز تفاوت میان صفحهی تاریک و خواب را ثبت کرده بود
نمایشگر خاموش شد، اما رایانه بیzur مشغول ماند

ابزاری که نیاز داشتم قبلاً در ویندوز ساخته شده بود. ترمینال ویندوز را با امتیازات مدیر باز کردم و اجرا کردم:
powercfg /sleepstudy /output "C:\sleepstudy-report.html"
در عرض چند ثانیه، ویندوز یک فایل HTML در ریشهی درایو C من ذخیره کرد. با وجود نام دستور، سند بهعنوان System Power Report باز شد و سرتیتر آن همان چیزی را تأیید کرد که powercfg /a قبلاً آشکار ساخته بود:
MODERN STANDBY ENABLED No

مایکروسافت هر دو /sleepstudy و /systempowerreport را دستوراتی توصیف میکند که گزارشهای تشخیصی دربارهی انتقالهای انرژی سیستم تولید میکنند. گزارش حاصل میتواند اطلاعات مفیدی نیز دربارهی رایانههایی که از مدل انرژی سنتی S3 پیروی میکنند داشته باشد. زیر سرتیتر یک جدول زمانی وجود داشت که نشان میداد لپتاپم چگونه میان فعال، صفحه خاموش، ساکتن، خواب زمستانی و خاموش جابهجا شده است.
خاموش کردن نمایشگر لزوماً به این معنا نیست رایانه وارد S3 شده. ویندوز میتواند صفحه را تاریک کند در حالی که بقیهی سیستم فعال میماند و به کاربردها و سختافزار اجازه میدهد به مصرف انرژی ادامه دهند.

زمان آغاز گزارش را با زمانی که در ابتدای مسیر درب را بستم تنظیم کردم. ویندوز مدتِ ۱ ساعت، ۲۱ دقیقه و ۴۲ ثانیهی بعد را بهجای ساکتن بهعنوان صفحه خاموش ثبت کرد. در آن دوره، لپتاپ ۹٬۹۶۸ میللیواتساعت مصرف کرد، ۱۸٪ از باتریاش را از دست داد و نرخ تخلیهی میانگین ۷٬۳۲۰ میللیوات را نگه داشت.
نشستهای خواب واقعی در جای دیگری از همان جدول بهعنوان ورودیهای جداگانهی ساکتن ظاهر شدند. ویندوز به من نمیگفت که لپتاپ در طول مسیر بهطور ناکارآمد خوابیده است. نشان میداد که دستگاه در آن مدت هرگز وارد S3 نشده بود. بستن درب نمایشگر را خاموش کرده بود، اما سیستم زیرین بیدار مانده بود. این، گرما داخل کیفم و افت باتری را بدون نیاز به هیچ نظریهای دربارهی رفتار شکستهی Modern Standby توضیح میداد.

این همچنین توضیح میداد چرا ستونِ «زمان حالت کممصرف» در گزارش فقط خط تیره داشت. آن معیار به رفتار کممصرفِ سیستمهای Modern Standby تعلق دارد. لپتاپم از S0 Low Power Idle استفاده نمیکرد، بنابراین درصدی DRIPS برای بررسی وجود نداشت. مستندات مایکروسافت همچنین فازهای صفحه خاموش و خوابِ استفادهشده در گزارشهای Modern Standby را از مدل سنتی S3 متمایز میکند، جایی که فعالیت نرمافزاری با رسیدن دستگاه به S3 متوقف میشود.
گزارش مشکل را بدوناختراع مقصر دقیقسازی کرد
ویندوز جوابی به من داد، ولی پاسخ مرتبی نبود





در ابتدا انتظار داشتم یک برنامه با رفتار نامناسب که رایانه را بیدار نگه میداشت پیدا کنم. برای بررسی، فرمان داخلی دیگری اجرا کردم:
powercfg /requests
این فرمان درخواستهای برق که در حال حاضر توسط برنامهها و درایورها نگه داشته شدهاند فهرست میکند و یکی از مفیدترین فرمانها برای عیبیابی مشکلات حالت خواب ویندوز است. مثلاً یک درخواست SYSTEM میتواند به ویندوز بگوید به جای ورود به خواب پس از دورهای بیفعالیتی، روشن بماند. نتیجهام چشمگیر نبود. DISPLAY، SYSTEM، AWAYMODE و EXECUTION همگی None برگرداندند. تنها مورد فهرستشده یک Legacy Kernel Caller زیر PERFBOOST بود، نه برنامهای که درخواست SYSTEM را که انتظار داشتم پیدا کنم نگه داشته باشد.
این ثابت نمیکرد که هیچ درخواستی با گذار خواب قبلی تداخل نداشته است. powercfg /requests تنها درخواستهای فعال در لحظه اجرای فرمان را ضبط میکند، پس هر چیزی که درخواست خود را پیشتر آزاد کرده بود تا زمانی که درِ لپتاپ را باز کردم و بررسی کردم غایب بود. مایکروسافت ابزارهای تشخیصی با مدتزمان طولانیتری برای موقعیتهایی که درخواست باید هنگام ظاهر شدن و ناپدید شدن ثبت شود ارائه میدهد.
با این حال، گزارش برق سیستم مسیر تحقیق را تغییر داده بود. دیگر به دنبال برنامهای که هنگام خواب رایانه باتری را تخلیه میکرد نبودم. به دنبال چیزی بودم که مانع رسیدن لپتاپ به S3 شده بود.

اولین جایی که باید در تنظیمات خواب ویندوز بررسی شود، عملکرد درِ لپتاپ است در مسیر Control Panel -> Hardware and Sound -> Power Options -> Choose what closing the lid does. گزینه On battery باید روی Sleep تنظیم شده باشد، نه Do nothing. از آنجا، تمیزترین آزمون این است که سطح باتری را یادداشت کنید، لپتاپ را از برق بکشید، در آن را حداقل یک ساعت ببندید و پس از باز کردن، گزارش دیگری تولید کنید.
نتیجه مهم صرفاً تخلیه کمتر باتری نیست. جلسه مطابق باید به صورت Standby ظاهر شود و نشان دهد ویندوز گذار به S3 را کامل کرده است به جای اینکه در Screen Off متوقف شود.
مشکل خواب بد نبود؛ اصلاً خوابی در کار نبود.
ویندوز ثابت نکرد که لپتاپم در خوابیدن بد است. نشان داد پس از بستن در، ماشین برای کل جلسه ۸۱ دقیقهای در Screen Off باقی ماند به جای اینکه وارد S3 شود. این راحتتر از مقصر دانستن Modern Standby نبود، ولی چیزی بسیار مفیدتر به من داد: مشکلی درست برای حل کردن.
منبع: این مطلب ترجمه و بومیسازی مقالهای از MakeUseOf به قلم Oluwademilade Afolabi است. مشاهده مقاله اصلی