MZ@ !L!This program cannot be run in DOS mode. $Rؕ3}3}3}H̴3}H̱3}Rich3}PEL!  Tp@R.rsrc`T@@8P h!9?@E F8LPMhNOPQRSXY(^@_Xepfklmnopq0rHs`wxx~ 8PP h x           ( 8 H X h x           ( 8 H X h x     DT@"F)0@8@v,IQPWP[`tdhkbhsDvbxd@  \N   Ը,jlT0@0F@4tH|GL WMUIIDR_XML_BATTERY_TRANSFORMIDR_XML_DEFAULT_TRANSFORM.XSLIDR_XML_SLEEPSTUDY_TRANSFORM3_: r ȫЇi| =a2 MUI fr-FRchec de l analysehL analyse n a pas abouti. Ceci peut tre d un fichier de suivi endommag ou des vnements ignors.Erreur d analyselL analyse a en partie chou. Certains rsultats sont disponibles, mais il se peut qu ils soient incomplets.Analyse accomplieqL analyse a abouti. Aucun problme d efficacit nergtique n a t dtect. Aucune information n a t renvoye.Informations systmeInformations systmeDtail des informations systmeNom de l ordinateurFabricant du systmeNom du produit systme Date du BIOSVersion du BIOS+Numro de version du systme d exploitationRle de la plateformeNombre de processusNombre de threads Sur secteur/Rsolution de la temporisation de la plateforme/Rsolution de la temporisation de la plateformePar dfaut, la rsolution de la temporisation de la plateforme est de 15,6ms (15625000ns) et doit tre utilise chaque fois que le systme est inactif. En cas d augmentation de cette valeur, les technologies de gestion d alimentation du processeur risquent de ne pas tre efficaces. La rsolution de la temporisation peut tre augmente pour la lecture multimdia ou des animations graphiques.PA:Rsolution actuelle de la temporisation (units de 100ns)4Priode de temporisation maximale (units de 100ns)#Demande de temporisation en attenteUn programme ou un service a demand une rsolution de la temporisation infrieure la rsolution de temporisation maximale de la plateforme.Priode demandeID de processus demandeur%Chemin d accs au processus demandeur,Demande de temporisation du noyau en attenteUn composant du noyau ou un pilote de priphrique a demand une rsolution de la temporisation infrieure la rsolution maximale de la temporisation de la plateforme.Priode demandeNombre de demandesUn programme ou un service a demand une rsolution de la temporisation infrieure ou gale la rsolution maximale de la temporisation de la plateforme. Pile de demande de temporisationfPile de modules responsable du paramtre de temporisation de plateforme le plus bas dans ce processus.Module appelantPAStratgie d'alimentation!Mode de gestion de l'alimentation)Le mode de gestion d'alimentation utilisGUID du mode de gestionACaractristiques du mode de gestion d'alimentation (sur batterie)bCaractristiques du mode de gestion de l'alimentation actif lorsque l'ordinateur est sur batterie.CaractristiqueZCaractristique du mode de gestion de l'alimentation: Performances leves (sur batterie)}La caractristique du mode de gestion de l'alimentation actif est Performances leves lorsque l'ordinateur est sur batterie.3Dlai d'attente de l cran dsactiv (sur batterie)KL'cran n est pas configur pour s'teindre aprs une priode d'inactivit..Dlai d'attente de l'cran long (sur batterie)?L affichage est configur pour s teindre au bout de 5minutes.Dlai d attente (secondes)?Dlai d affaiblissement de l affichage dsactiv (sur batterie)iL affichage n est pas configur pour baisser automatiquement en intensit aprs une priode d inactivit.:Dlai d affaiblissement de l affichage long (sur batterie)YL affichage est configur pour baisser automatiquement en intensit au bout de 5minutes.Dlai d attente (secondes)2Mise en veille du disque dsactive (sur batterie)PLe disque n est pas configur pour se dsactiver aprs une priode d inactivit.-Dlai d attente du disque long (sur batterie)ALe disque est configur pour se dsactiver au bout de 30minutes.Dlai d attente (secondes)0Dlai de mise en veille dsactiv (sur batterie)iL ordinateur n est pas configur pour se mettre automatiquement en veille aprs une priode d inactivit.+Dlai de mise en veille long (sur batterie)ZL ordinateur est configur pour se mettre en veille automatiquement au bout de 30minutes.Dlai d attente (secondes)Dtat des performances minimales du processeur: 100% (sur batterie)tLe processeur n est pas configur pour rduire automatiquement la consommation lectrique en fonction de l activit.Dtat des performances minimales du processeur: lev (sur batterie)nL tat des performances minimales du processeur est suprieur 75% des performances maximales du processeur.>tat des performances minimales (% des performances maximales)CLes tats d inactivit du processeur sont dsactivs (sur batterie)wLa stratgie actuelle de gestion de l alimentation du processeur a dsactiv les tats d inactivit en basse puissance.2Suspension slective USB dsactive (sur batterie)YLa stratgie d alimentation actuelle a globalement dsactiv la suspension slective USB.MStratgie d alimentation radio 802.11: Performances maximales (sur batterie)La stratgie d alimentation actuelle applicable aux cartes rseau sans fil compatibles avec la norme 802.11 n est pas configure pour utiliser les modes en basse puissance.2Gestion ASPM PCI Express dsactive (sur batterie){La stratgie d alimentation actuelle en matire de gestion ASPM (Active State Power Management) PCI Express est dsactive.PABCaractristique du mode de gestion de l alimentation (sur secteur)eCaractristique du mode de gestion de l alimentation actif lorsque le systme fonctionne sur secteur.YCaractristique du mode de gestion de l alimentation: Performances leves (sur secteur)zLa caractristique du mode de gestion de l alimentation actif est Performances leves lorsque le systme est sur secteur.6Dlai d attente de l affichage dsactiv (sur secteur)OL affichage n est pas configur pour s teindre aprs une priode d inactivit.1Dlai d attente de l affichage long (sur secteur)@L affichage est configur pour s teindre au bout de 10minutes.>Dlai d affaiblissement de l affichage dsactiv (sur secteur)iL affichage n est pas configur pour baisser automatiquement en intensit aprs une priode d inactivit.9Dlai d affaiblissement de l affichage long (sur secteur)ZL affichage est configur pour baisser automatiquement en intensit au bout de 10minutes.1Mise en veille du disque dsactive (sur secteur)PLe disque n est pas configur pour se dsactiver aprs une priode d inactivit.PA,Dlai d attente du disque long (sur secteur)ALe disque est configur pour se dsactiver au bout de 30minutes./Dlai de mise en veille dsactiv (sur secteur)iL ordinateur n est pas configur pour se mettre automatiquement en veille aprs une priode d inactivit.*Dlai de mise en veille long (sur secteur)ZL ordinateur est configur pour se mettre en veille automatiquement au bout de 30minutes.Ctat des performances minimales du processeur: 100% (sur secteur)tLe processeur n est pas configur pour rduire automatiquement la consommation lectrique en fonction de l activit.Ctat des performances minimales du processeur: lev (sur secteur)nL tat des performances minimales du processeur est suprieur 75% des performances maximales du processeur.BLes tats d inactivit du processeur sont dsactivs (sur secteur)wLa stratgie actuelle de gestion de l alimentation du processeur a dsactiv les tats d inactivit en basse puissance.1Suspension slective USB dsactive (sur secteur)YLa stratgie d alimentation actuelle a globalement dsactiv la suspension slective USB.LStratgie d alimentation radio 802.11: Performances maximales (sur secteur)La stratgie d alimentation actuelle applicable aux cartes rseau sans fil compatibles avec la norme 802.11 n est pas configure pour utiliser les modes en basse puissance.1Gestion ASPM PCI Express dsactive (sur secteur){La stratgie d alimentation actuelle en matire de gestion ASPM (Active State Power Management) PCI Express est dsactive.Qualit vido (sur batterie)kPermet au Lecteur Windows Media de privilgier la qualit ou l conomie d nergie lors de la lecture vido. Mode qualitQualit vido (sur secteur)kPermet au Lecteur Windows Media de privilgier la qualit ou l conomie d nergie lors de la lecture vido.PA$Demandes de disponibilit du systmeDemande de systme obligatoiredLe programme a mis une demande visant empcher le systme de se mettre automatiquement en veille.Processus demandeurDemande de systme obligatoirebLe service a mis une demande visant empcher le systme de se mettre automatiquement en veille.Service demandeurDemande de systme obligatoiretLe priphrique ou le pilote a mis une demande visant empcher le systme de se mettre automatiquement en veille.Instance de pilote demandeur Pilote de priphrique demandeurDemande de systme obligatoiremUn composant du noyau a mis une demande visant empcher le systme de se mettre automatiquement en veille.Demande d affichage obligatoire\Le programme a mis une demande visant empcher l cran de passer en mode basse puissance.Demande de mode AbsenceALe programme a mis une demande visant activer le mode Absence.Demande de mode Absence?Le service a mis une demande visant activer le mode Absence.Demande d excution obligatoire<Le programme a mis une demande visant exiger l excution.Demande d excution obligatoire:Le service a mis une demande visant exiger l excution.Suspension USB<Priphrique USB ne passant pas en mode Suspension slectiveCe priphrique n est pas pass l tat Suspension slective USB. La gestion de l alimentation du processeur peut tre perturbe si un priphrique USB ne passe pas l tat Suspension slective. Notez que ce problme n empche pas l tat de veille du systme.ID du contrleur hteEmplacement du contrleur hteID de priphriqueChemin d accs au port>Priphrique USB passant rarement en mode Suspension slective#Ce priphrique est pass par intermittence en mode Suspension slective USB pendant le suivi. La gestion de l alimentation du processeur peut tre perturbe lorsque le priphrique USB n est pas l tat Suspension slective. Notez que ce problme n empche pas l tat de veille du systme.Temps de suspension (%)RaisonlCe priphrique USB Bluetooth ne prend pas en charge la suspension slective car il n est pas auto-aliment.Ce priphrique USB Bluetooth ne prend pas en charge la suspension slective car il ne possde pas de fonction d veil distance.Utilisation processeur Faible utilisation du processeurL utilisation moyenne du processeur pendant le suivi a t trs faible. La consommation lectrique du systme est plus basse dans le cas d une utilisation moyenne trs faible du processeur.PAUtilisation moyenne (%)!Utilisation modre du processeureL utilisation moyenne du processeur pendant le suivi a t modre. La consommation lectrique du systme est plus basse dans le cas d une utilisation moyenne trs faible du processeur. Examinez l utilisation du processeur pour chaque processus afin d identifier les applications et les services qui contribuent le plus l utilisation totale du processeur. Utilisation leve du processeurdL utilisation moyenne du processeur pendant le suivi a t leve. La consommation lectrique du systme est plus basse dans le cas d une utilisation moyenne trs faible du processeur. Examinez l utilisation du processeur pour chaque processus afin d identifier les applications et les services qui contribuent le plus l utilisation totale du processeur.9Processus individuel sollicitant fortement le processeur.vCe processus est responsable d une part importante de l utilisation totale du processeur enregistre pendant le suivi.Nom du processusPIDUtilisation moyenne (%)Module!Utilisation moyenne du module (%)PABatterieInformations sur la batterieID de batterie FabricantDate de fabricationNumro de srieComposition chimique Long termeNombre de cyclesCapacit thoriqueDernier rechargement complet Dernier rechargement complet (%)eLa batterie a stock moins de 50% de la capacit thorique lors de son dernier rechargement complet. Dernier rechargement complet (%) Dernier rechargement complet (%)eLa batterie a stock moins de 40% de la capacit thorique lors de son dernier rechargement complet. Capacit de la batterie inconnuevLa capacit de la batterie n a pas pu tre dtermine. Cela peut tre le signe d un problme de microprogramme (BIOS).ScellPA7Capacits de gestion de l alimentation de la plateformetats de veille pris en chargeLes tats de veille permettent l ordinateur de passer dans des modes basse puissance aprs une priode d inactivit. L tat de veille S3 est l tat de veille par dfaut des plateformes Windows. Cet tat consomme la quantit d lectricit ncessaire pour conserver le contenu de la mmoire et permet l ordinateur de se remettre rapidement en activit. Trs peu de plateformes prennent en charge les tats de veille S1 ou S2.Veille S1 prise en chargeVeille S2 prise en chargeVeille S3 prise en chargeVeille S4 prise en charge{L tat de veille S1 a t dsactiv en raison d une incompatibilit connue avec les composants matriels de cet ordinateur.Windows dsactive automatiquement la mise en veille sur certains ordinateurs dont les composants matriels ne sont pas compatibles avec cette fonctionnalit. L installation du microprogramme (BIOS) le plus rcent peut rsoudre ce problme.{L tat de veille S2 a t dsactiv en raison d une incompatibilit connue avec les composants matriels de cet ordinateur.Windows dsactive automatiquement la mise en veille sur certains ordinateurs dont les composants matriels ne sont pas compatibles avec cette fonctionnalit. L installation du microprogramme (BIOS) le plus rcent peut rsoudre ce problme.{L tat de veille S3 a t dsactiv en raison d une incompatibilit connue avec les composants matriels de cet ordinateur.Windows dsactive automatiquement la mise en veille sur certains ordinateurs dont les composants matriels ne sont pas compatibles avec cette fonctionnalit. L installation du microprogramme (BIOS) le plus rcent peut rsoudre ce problme.>Le microprogramme du systme (BIOS) ne prend pas en charge S3.YLes composants matriels de cet ordinateur ne prennent pas en charge l tat de veille S3.QLe microprogramme du systme (BIOS) ne prend pas en charge S4 (veille prolonge).bLes composants matriels de cet ordinateur ne prennent pas en charge l tat S4 (veille prolonge).{L tat de veille S3 a t dsactiv en raison d une incompatibilit connue avec les composants matriels de cet ordinateur.Windows dsactive automatiquement la mise en veille sur certains ordinateurs dont les composants matriels ne sont pas compatibles avec cette fonctionnalit. L installation du microprogramme (BIOS) le plus rcent peut rsoudre ce problme.BLa mise en veille est dsactive dans la stratgie d alimentation.FL administrateur systme a dsactiv la mise en veille sur ce systme.uLa mise en veille prolonge a t dsactive car le systme possde une quantit de mmoire physique trop importante.sLa mise en veille prolonge a t dsactive en raison d un problme inconnu au niveau du sous-systme de stockage.La mise en veille prolonge a t dsactive du fait de l impossibilit de gnrer ou d accder au fichier de mise en veille prolonge.CLa mise en veille est dsactive car un pilote hrit est install.La mise en veille exige que tous les pilotes de priphrique soient compatibles avec la fonctionnalit Plug-and-Play et la gestion de l alimentation. Si un pilote hrit est install, la mise en veille est automatiquement dsactive. Nom du piloteOL tat de veille S1 a t provisoirement dsactiv par un composant du systme.}L ordinateur risque de ne pas passer en mode veille si les composants suivants sont installs ou si des tches sont en cours.?Pilote d affichage de base ou pilote de rendu de base Microsoft HyperviseurALe systme dmarre partir d un fichier VHD (Virtual Hard Disk).OL tat de veille S2 a t provisoirement dsactiv par un composant du systme.}L ordinateur risque de ne pas passer en mode veille si les composants suivants sont installs ou si des tches sont en cours.PAOL tat de veille S3 a t provisoirement dsactiv par un composant du systme.}L ordinateur risque de ne pas passer en mode veille si les composants suivants sont installs ou si des tches sont en cours.XL tat S4 (veille prolonge) a t provisoirement dsactiv par un composant du systme.}L ordinateur risque de ne pas passer en mode veille si les composants suivants sont installs ou si des tches sont en cours.<La luminosit adaptative de l affichage est prise en charge.bCet ordinateur permet Windows de contrler automatiquement la luminosit de l affichage intgr.:Prise en charge de la luminosit adaptative de l affichageCet ordinateur ne permet pas Windows de contrler automatiquement la luminosit de l affichage. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.4Capacits de gestion de l alimentation du processeurPar une gestion efficace de l alimentation du processeur, l ordinateur peut tablir automatiquement un quilibre entre performances et consommation d nergie.GroupeIndexNombre d tats d inactivit (C)!Nombre d tats de performance (P)!Nombre d tats d acclration (T)%chec de validation de l tat C2 ACPIPAIl existe un problme de dfinition de l tat d inactivit C2 sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.chec de validation de C3 ACPIIl existe un problme de dfinition de l tat d inactivit C3 sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.1chec de validation des tats d acclration ACPIIl existe un problme de dfinition des tats d acclration sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.(chec de validation de l objet ACPI _CSTIl existe un problme de dfinition de l objet ACPI_CST sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.(chec de validation de l objet ACPI _CSDIl existe un problme de dfinition de l objet ACPI_CSD sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.(chec de validation de l objet ACPI _PCTIl existe un problme de dfinition de l objet ACPI_PCT sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.(chec de validation de l objet ACPI _PSSIl existe un problme de dfinition de l objet ACPI_PSS sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.(chec de validation de l objet ACPI XPSSIl existe un problme de dfinition de l objet ACPI XPSS sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.'chec de validation de l objet ACPI_PPCIl existe un problme de dfinition de l objet ACPI_PPC sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.(chec de validation de l objet ACPI _PSDIl existe un problme de dfinition de l objet ACPI_PSD sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.'chec de validation de l objet ACPI_PTCIl existe un problme de dfinition de l objet ACPI_PTC sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.(chec de validation de l objet ACPI _TSSIl existe un problme de dfinition de l objet ACPI_TSS sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.'chec de validation de l objet ACPI_TPCIl existe un problme de dfinition de l objet ACPI_TPC sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.(chec de validation de l objet ACPI _TSDIl existe un problme de dfinition de l objet ACPI_TSD sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.INombre de membres de domaine d tats d inactivit de processeur incorrectIl existe un problme au niveau du nombre de processeurs dfinis comme membres d un domaine d inactivit de processeur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme. ID de domaineNombre de membres attendusNombre de membres relPA]Nombre de membres de domaine d tats de performance ou d acclration de processeur incorrectIl existe un problme au niveau du nombre de processeurs dfinis comme membres d un domaine d tats de performance ou d acclration de processeur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.+tats d inactivit de processeur dsactivsLes tats d inactivit de processeur ont t automatiquement dsactivs en raison d une incompatibilit connue des composants matriels de cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.-tats de performance de processeur dsactivsLes tats de performance de processeur ont t automatiquement dsactivs en raison d une incompatibilit connue des composants matriels de cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.-tats d acclration de processeur dsactivsLes tats d acclration de processeur ont t automatiquement dsactivs en raison d une incompatibilit connue des composants matriels de cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.CGestion ASPM (Active-State Power Management) PCI Express dsactiveLa gestion ASPM (Active-State Power Management) PCI Express a t dsactive en raison d une incompatibilit connue des composants matriels de cet ordinateur.QLe point d accs sans fil ne prend pas en charge le mode d conomie d nergie WMMLe point d accs sans fil auquel cet ordinateur est connect ne prend pas en charge le mode d conomie d nergie WMM. Le modem Wi-Fi ne peut donc pas passer en mode d conomie d nergie comme dfini dans la stratgie d alimentation des cartes sans fil.SSID Adresse MAC&Prise en charge de la veille connecteLa veille connecte permet l ordinateur de passer en mode faible consommation d nergie tout en restant sous tension et connect. Si elle est prise en charge, la veille connecte est utilise la place des tats de mise en veille systme. Veille connecte prise en charge(chec de validation de l objet ACPI PCCPIl existe un problme de dfinition de l objet ACPI PCCP sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.'chec de validation de l objet ACPI_CPCIl existe un problme de dfinition de l objet ACPI_CPC sur cet ordinateur. L installation du microprogramme systme (BIOS) le plus rcent peut rsoudre ce problme.Nombre d tats d inactivitType d tat d inactivitFrquence nominale (MHz)#Pourcentage de performances maximal%Pourcentage de performances infrieur$Pourcentage d acclration infrieur!Type de contrles de performancesAucun,tats de performance (P)/limitation (T) ACPI)Contrle de synchronisation de plateforme9Contrle des performances de processeur collaboratif ACPIPA Plug-in de moteur d alimentationtats (C) inactifs ACPI Windows To GoRLa mise en veille connecte a t dsactive en raison d un matriel non conforme.Cet ordinateur a indiqu qu il prend en charge la mise en veille connecte, cependant un ou plusieurs composants matriels ne respectent pas les conditions requises pour cet tat. Le ou les composants suivants ne satisfont pas les conditions requises:Matriel de stockage Matriel WiFiMatriel mobile haut dbitMatriel audio Conforme(s)Non conforme(s)%Plug-in de micromoteur d alimentationPilotes de priphriquespLes priphriques dont les pilotes sont manquants ou mal configurs peuvent augmenter la consommation d nergie.Nom du priphriqueID de priphriquetat du priphrique Code de problme du priphriqueAppareil mobile inconnutude de veilleYRemarque: ce rapport ne contient aucune information pour la session en veille connecte.(La premire session en veille connecte a commenc une date antrieure. Si cette date vous intresse, utilisez &lt;code&gt;powercfg sleepstudy -duration DURATION&lt;/code&gt;. Par exemple, pour analyser les dix derniers jours:&lt;br /&gt;&lt;pre&gt;powercfg sleepstudy -duration 10&lt;/pre&gt;0Erreurs d analyse dtectes pour des activateurs5Erreurs d analyse dtectes pour des priphriques Fx/Erreurs d analyse dtectes pour des phases PDC@La somme des dures des phases PDC est suprieure la dure CS.Nom du priphriquePAPP$Informations 4VS_VERSION_INFO@%@%?2StringFileInfo040C04B0LCompanyNameMicrosoft Corporationv'FileDescriptionDiagnostics de consommation lectriquer)FileVersion6.3.9600.16384 (winblue_rtm.130821-1623)6 InternalNameenergy.dll/LegalCopyright Microsoft Corporation. Tous droits rservs.FOriginalFilenameenergy.dll.muiv+ProductNameSystme d exploitation Microsoft WindowsBProductVersion6.3.9600.16384DVarFileInfo$Translation  Suspended Active Report generated Battery changed Connected standby Screen off Battery AC even odd // Formats a number using the current locale (to handle the 1000's separator). // The result is rounded so no decimal point is shown. function numberToLocaleString(value) { var localeString = Math.round(parseFloat(value + '')).toLocaleString(); return localeString.substring(0, localeString.indexOf('.')); } function padLeft(number, length) { var str = '' + number; while (str.length < length) { str = '0' + str; } return str; } // Returns the number of milliseconds between 2 date-times represented as strings. function msBetween(startTime, endTime) { return startTime > endTime ? msBetween(endTime, startTime) : parseDateTime(endTime) - parseDateTime(startTime); } var dateFormat = /(\d{4})-(\d{2})-(\d{2})[T](\d{2}):(\d{2}):(\d{2})/ // Parses a date-time string and returns a Date (i.e. number of milliseconds) function parseDateTime(value) { if (!value) { return 0; } var match = dateFormat.exec(value) if (!match) { return 0; } return Date.parse(match[1] + '/' + match[2] + '/' + match[3] + ' ' + match[4] + ':' + match[5] + ':' + match[6]) } // Parses just the date portion of a date-time string and returns a Date // (i.e. number of milliseconds) function parseDate(value) { if (!value) { return 0; } var match = dateFormat.exec(value) if (!match) { return 0; } return Date.parse(match[1] + '/' + match[2] + '/' + match[3]) } var durationFormat = /P((\d+)D)?T((\d+)H)?((\d+)M)?(\d+)S/ // Convert a string of the form P10DT1H15M40S to a count of milliseconds function parseDurationToMs(value) { var match = durationFormat.exec(value) if (!match) { return 0 } var days = parseInt(match[2] || '0'); var hrs = parseInt(match[4] || '0'); var mins = parseInt(match[6] || '0'); var secs = parseInt(match[7] || '0'); return ((((((days * 24) + hrs) * 60) + mins) * 60) + secs) * 1000; } // Converts milliseconds to days function msToDays(ms) { return (ms / 1000 / 60 / 60 / 24); } function daysToMs(days) { return (days * 24 * 60 * 60 * 1000); } // Formats a number of milliseconds as h:mm:ss function formatDurationMs(value) { var ms = parseInt(value); var secs = ms / 1000; var mins = secs / 60; var hrs = Math.floor(mins / 60); mins = Math.floor(mins % 60); secs = Math.floor(secs % 60); return hrs + ':' + padLeft(mins,2) + ':' + padLeft(secs,2); } // Converts a millisecond timestamp to a day and month string // Note: dayOffset is forward from date. function dateToDayAndMonth(ms, dayOffset) { var adjustedDate = new Date(ms + (dayOffset * 24 * 60 * 60 * 1000)); return padLeft(adjustedDate.getMonth() + 1, 2) + "-" + padLeft(adjustedDate.getDate(), 2); } // Takes a millisecond timestamp and returns a new millisecond timestamp // rounded down to the current day. function dateFloor(ms) { var dt = new Date(ms); return Date.parse(dt.getFullYear() + '/' + (dt.getMonth() + 1) + '/' + dt.getDate()); } Timegraph = { axisTop: 9.5, axisRight: 24.5, axisBottom: 25.5, axisLeft: 25.5, ticks: 10, // Maximum number of 24 hour ticks for showing 12 and 6 hour ticks ticks12Hour: 8, ticks6Hour: 4, // Shading lineColor: "#B82830", shadingColor: "#4d1d35", precompute: function (graph) { var canvas = graph.canvas; var data = graph.data; var min = 0; var max = 0; graph.height = canvas.height - Timegraph.axisTop - Timegraph.axisBottom; graph.width = canvas.width - Timegraph.axisLeft - Timegraph.axisRight; for (var i = 0; i < data.length; i++) { data[i].t0 = parseDateTime(data[i].x0); data[i].t1 = parseDateTime(data[i].x1); if (i == 0) { min = data[i].t0; max = data[i].t1; } if (data[i].t0 < min) { min = data[i].t0; } if (data[i].t1 > max) { max = data[i].t1; } data[i].yy0 = Timegraph.axisTop + graph.height - data[i].y0 * graph.height; data[i].yy1 = Timegraph.axisTop + graph.height - data[i].y1 * graph.height; } if (graph.startTime != null) { graph.startMs = parseDateTime(graph.startTime); } else { graph.startMs = min; } graph.endMs = max; graph.durationMs = max - min; }, drawFrame: function (graph) { var canvas = graph.canvas; var context = graph.context; graph.width = canvas.width - Timegraph.axisRight - Timegraph.axisLeft; graph.height = canvas.height - Timegraph.axisTop - Timegraph.axisBottom; context.beginPath(); context.moveTo(Timegraph.axisLeft, Timegraph.axisTop); context.lineTo(Timegraph.axisLeft + graph.width, Timegraph.axisTop); context.lineTo(Timegraph.axisLeft + graph.width, Timegraph.axisTop + graph.height); context.lineTo(Timegraph.axisLeft, Timegraph.axisTop + graph.height); context.lineTo(Timegraph.axisLeft, Timegraph.axisTop); context.strokeStyle = "#c0c0c0"; context.stroke(); }, drawRange: function (graph) { var canvas = graph.canvas; var context = graph.context; context.font = "12pt Segoe UI"; context.fillStyle = "#00b0f0"; context.fillText("%", 0, Timegraph.axisTop + 5, Timegraph.axisLeft); var tickSpacing = graph.height / 10; var offset = Timegraph.axisTop + tickSpacing; var tickValue = 90; for (var i = 0; i < 9; i++) { context.beginPath(); context.moveTo(Timegraph.axisLeft, offset); context.lineTo(Timegraph.axisLeft + graph.width, offset); context.stroke(); context.fillText(tickValue.toString(), 0, offset + 5, Timegraph.axisLeft); offset += tickSpacing; tickValue -= 10; } }, drawDomain: function (graph, start, end) { var canvas = graph.canvas; var context = graph.context; var data = graph.data; var duration = end - start; if ((end < start)) { return; } var startDay = dateFloor(start); var t0 = startDay; var t1 = dateFloor(end); var dayOffset = 0; if (start > t0) { t0 = t0 + daysToMs(1); dayOffset++; } if (t0 >= t1) { return; } var increment = Math.max(Math.floor((t1 - t0) / daysToMs(Timegraph.ticks)), 1); var incrementMs = daysToMs(increment); var spacing = (incrementMs / duration) * graph.width; var offset = (t0 - start) / duration; var ticksCount = Math.floor((t1 - t0) / incrementMs); for (offset = offset * graph.width + Timegraph.axisLeft; offset < (graph.width + Timegraph.axisLeft); offset += spacing) { context.beginPath(); context.moveTo(offset, Timegraph.axisTop); context.lineTo(offset, Timegraph.axisTop + graph.height); context.stroke(); context.fillText(dateToDayAndMonth(startDay, dayOffset), offset, Timegraph.axisTop + graph.height + 15, spacing); dayOffset += increment; } }, plot: function (graph, start, end) { var canvas = graph.canvas; var context = graph.context var data = graph.data; if ((end < start)) { return; } var duration = end - start; Timegraph.drawDomain(graph, start, end); context.fillStyle = Timegraph.shadingColor; for (var i = 0; i < data.length - 1; i++) { if ((data[i].t0 < start) || (data[i].t0 > end) || (data[i].t1 > end)) { continue; } var x1 = (data[i].t0 - start) / duration; x1 = x1 * graph.width + Timegraph.axisLeft; var x2 = (data[i].t1 - start) / duration; x2 = x2 * graph.width + Timegraph.axisLeft; context.globalAlpha = 0.3; context.fillRect(x1, Timegraph.axisTop, (x2 - x1), graph.height); context.globalAlpha = 1; context.beginPath(); context.strokeStyle = Timegraph.lineColor; context.lineWidth = 1.5; context.moveTo(x1, data[i].yy0); context.lineTo(x2, data[i].yy1); context.stroke(); } }, draw: function (graph) { var canvas = document.getElementById(graph.element); if (canvas == null) { return; } var context = canvas.getContext('2d'); if (context == null) { return; } graph.width = 0; graph.height = 0; graph.context = context; graph.canvas = canvas; Timegraph.precompute(graph); Timegraph.drawFrame(graph); Timegraph.drawRange(graph); Timegraph.plot(graph, graph.startMs, graph.endMs); } }; { x0: "", x1: "", y0: , y1: }, drainGraphData = [ ];

Battery report

COMPUTER NAME
SYSTEM PRODUCT NAME
BIOS
OS BUILD
PLATFORM ROLE
CONNECTED STANDBY Supported Not supported
REPORT TIME

Installed batteries

Information about each currently installed battery
No batteries are currently installed
BATTERY
NAME
MANUFACTURER
SERIAL NUMBER
CHEMISTRY
DESIGN CAPACITY -
FULL CHARGE CAPACITY -
CYCLE COUNT

Recent usage

Power states over the last days
START TIME STATE SOURCE CAPACITY REMAINING
- - - - -

Battery usage

Battery drains over the last days
START TIME STATE DURATION ENERGY DRAINED
- - - - -

Usage history

History of system usage on AC and battery
BATTERY DURATION AC DURATION
PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY
- - - - -
- - - - -

Battery capacity history

Charge capacity history of the system's batteries
PERIOD FULL CHARGE CAPACITY DESIGN CAPACITY
- - -

Battery life estimates

Battery life estimates based on observed drains
AT FULL CHARGE AT DESIGN CAPACITY
PERIOD ACTIVE CONNECTED STANDBY ACTIVE CONNECTED STANDBY
- - - - -
Current estimate of battery life based on all observed drains since OS install
Since OS install - -
/ 16 h
- -
/ 16 h
- -
/ 16 h
- -
/ 16 h
Battery report


- - mWh - mWh - % - % - endTime ? msBetween(endTime, startTime) : parseDateTime(endTime) - parseDateTime(startTime); } var dateFormat = /(\d{4})-(\d{2})-(\d{2})[T](\d{2}):(\d{2}):(\d{2})/ // Parses a date-time string and returns a Date (i.e. number of milliseconds) function parseDateTime(value) { if (!value) { return 0; } var match = dateFormat.exec(value) if (!match) { return 0; } return Date.parse(match[1] + '/' + match[2] + '/' + match[3] + ' ' + match[4] + ':' + match[5] + ':' + match[6]) } // Parses just the date portion of a date-time string and returns a Date (i.e. number of milliseconds) function parseDate(value) { if (!value) { return 0; } var match = dateFormat.exec(value) if (!match) { return 0; } return Date.parse(match[1] + '/' + match[2] + '/' + match[3]) } var durationFormat = /P((\d+)D)?T((\d+)H)?((\d+)M)?(\d+)S/ // Convert a string of the form P10DT1H15M40S to a count of milliseconds function parseDurationToMs(value) { var match = durationFormat.exec(value) if (!match) { return 0 } var days = parseInt(match[2] || '0'); var hrs = parseInt(match[4] || '0'); var mins = parseInt(match[6] || '0'); var secs = parseInt(match[7] || '0'); return ((((((days * 24) + hrs) * 60) + mins) * 60) + secs) * 1000; } // Formats a number of milliseconds as h:mm:ss function formatDurationMs(value) { var ms = parseInt(value); var secs = ms / 1000; var mins = secs / 60; var hrs = Math.floor(mins / 60); mins = Math.floor(mins % 60); secs = Math.floor(secs % 60); return hrs + ':' + padLeft(mins,2) + ':' + padLeft(secs,2); } // Converts a string representing a date time to a day and month string function dateToDayAndMonth(date, dayOffset) { var adjustedDate = new Date(parseDate(date) - (dayOffset * 24 * 60 * 60 * 1000)); return padLeft(adjustedDate.getMonth() + 1, 2) + "-" + adjustedDate.getDate(); } ]]>

Rapport des diagnostics de consommation électrique

Nom de l’ordinateur
Heure de l’analyse
Durée de l’analyse secondes
Fabricant du système
Nom du produit système
Date du BIOS
Version du BIOS
Version du système d’exploitation
Rôle de la plateforme
Sur secteur
Nombre de processus
Nombre de threads
GUID de rapport {}

Résultats de l’analyse

Avertissement : des événements ont été ignorés lors du traçage. Les résultats d’analyse peuvent donc être incomplets.

Erreurs

Avertissements

Informations

error-log-entry warning-log-entry info-log-entry
:
Économies d’énergie Performances élevées Utilisation normale Nom du mode Économies d’énergie OEM Performances élevées OEM Utilisation normale OEM Personnalisé Privilégier la qualité vidéo Qualité vidéo et économies d’énergie Privilégier les économies d’énergie Module Utilisation moyenne du module (%) Pile du module appelant Module inconnu
P Connected standby Screen off // Add support for drawing dashed lines to Canvas CanvasRenderingContext2D.prototype.dashedLine = function (x0, y0, x1, y1, dashArray) { if (dashArray == null) { dashArray = [4, 4]; } var dx = x1 - x0; var dy = y1 - y0; var distance = Math.sqrt(Math.pow((x1 - x0), 2) + Math.pow((y1 - y0), 2)); var theta = Math.atan(dy / dx); if (dx < 0) { theta += Math.PI; } var i = 0; while (distance > 0) { var length = Math.min(distance, dashArray[i]); x0 += length * Math.cos(theta); y0 += length * Math.sin(theta); if (i % 2 == 0) { this.lineTo(x0, y0); } else { this.moveTo(x0, y0); } distance -= length; i = (i + 1) % dashArray.length; } }; // Formats a number using the current locale (to handle the 1000's separator). // The result is rounded so no decimal point is shown. function numberToLocaleString(value) { var localeString = Math.round(parseFloat(value + '')).toLocaleString(); return localeString.substring(0, localeString.indexOf('.')); } function padLeft(number, length) { var str = '' + number; while (str.length < length) { str = '0' + str; } return str; } // Returns the number of milliseconds between 2 date-times represented as strings. function msBetween(startTime, endTime) { return startTime > endTime ? msBetween(endTime, startTime) : parseDateTime(endTime) - parseDateTime(startTime); } var dateFormat = /(\d{4})-(\d{2})-(\d{2})[T](\d{2}):(\d{2}):(\d{2})/ // Parses a date-time string and returns a Date (i.e. number of milliseconds) function parseDateTime(value) { if (!value) { return 0; } var match = dateFormat.exec(value) if (!match) { return 0; } return Date.parse(match[1] + '/' + match[2] + '/' + match[3] + ' ' + match[4] + ':' + match[5] + ':' + match[6]) } // Parses just the date portion of a date-time string and returns a Date // (i.e. number of milliseconds) function parseDate(value) { if (!value) { return 0; } var match = dateFormat.exec(value) if (!match) { return 0; } return Date.parse(match[1] + '/' + match[2] + '/' + match[3]) } var durationFormat = /P((\d+)D)?T((\d+)H)?((\d+)M)?(\d+)S/ // Convert a string of the form P10DT1H15M40S to a count of milliseconds function parseDurationToMs(value) { var match = durationFormat.exec(value) if (!match) { return 0 } var days = parseInt(match[2] || '0'); var hrs = parseInt(match[4] || '0'); var mins = parseInt(match[6] || '0'); var secs = parseInt(match[7] || '0'); return ((((((days * 24) + hrs) * 60) + mins) * 60) + secs) * 1000; } // Converts milliseconds to days function msToDays(ms) { return (ms / 1000 / 60 / 60 / 24); } function daysToMs(days) { return (days * 24 * 60 * 60 * 1000); } // Formats a number of milliseconds as h:mm:ss function formatDurationMs(value) { var ms = parseInt(value); var secs = ms / 1000; var mins = secs / 60; var hrs = Math.floor(mins / 60); mins = Math.floor(mins % 60); secs = Math.floor(secs % 60); return hrs + ':' + padLeft(mins,2) + ':' + padLeft(secs,2); } // Converts a millisecond timestamp to a day and month string // Note: dayOffset is forward from date. function dateToDayAndMonth(ms, dayOffset) { var adjustedDate = new Date(ms + (dayOffset * 24 * 60 * 60 * 1000)); return padLeft(adjustedDate.getMonth() + 1, 2) + "-" + padLeft(adjustedDate.getDate(), 2); } // Takes a millisecond timestamp and returns a new millisecond timestamp // rounded down to the current day. function dateFloor(ms) { var dt = new Date(ms); return Date.parse(dt.getFullYear() + '/' + (dt.getMonth() + 1) + '/' + dt.getDate()); } Timegraph = { axisTop: 9.5, axisRight: 24.5, axisBottom: 25.5, axisLeft: 25.5, ticks: 10, // Maximum number of 24 hour ticks for showing 12 and 6 hour ticks ticks12Hour: 8, ticks6Hour: 4, // Shading shadingColor: "#d0d0d0", precompute: function (graph) { var canvas = graph.canvas; var data = graph.data; var min = 0; var max = 0; graph.height = canvas.height - Timegraph.axisTop - Timegraph.axisBottom; graph.width = canvas.width - Timegraph.axisLeft - Timegraph.axisRight; for (var i = 0; i < data.length; i++) { data[i].t0 = parseDateTime(data[i].x0); data[i].t1 = parseDateTime(data[i].x1); if (i == 0) { min = data[i].t0; max = data[i].t1; } if (data[i].t0 < min) { min = data[i].t0; } if (data[i].t1 > max) { max = data[i].t1; } data[i].yy0 = Timegraph.axisTop + graph.height - data[i].y0 * graph.height; data[i].yy1 = Timegraph.axisTop + graph.height - data[i].y1 * graph.height; } if (graph.startTime != null) { graph.startMs = parseDateTime(graph.startTime); } else { graph.startMs = min; } graph.endMs = max; graph.durationMs = max - min; }, drawFrame: function (graph) { var canvas = graph.canvas; var context = graph.context; graph.width = canvas.width - Timegraph.axisRight - Timegraph.axisLeft; graph.height = canvas.height - Timegraph.axisTop - Timegraph.axisBottom; context.beginPath(); context.moveTo(Timegraph.axisLeft, Timegraph.axisTop); context.lineTo(Timegraph.axisLeft + graph.width, Timegraph.axisTop); context.lineTo(Timegraph.axisLeft + graph.width, Timegraph.axisTop + graph.height); context.lineTo(Timegraph.axisLeft, Timegraph.axisTop + graph.height); context.lineTo(Timegraph.axisLeft, Timegraph.axisTop); context.strokeStyle = "#c0c0c0"; context.stroke(); }, drawRange: function (graph) { var canvas = graph.canvas; var context = graph.context; context.font = "12pt Segoe UI"; context.fillStyle = "#00b0f0"; context.fillText("%", 0, Timegraph.axisTop + 5, Timegraph.axisLeft); var tickSpacing = graph.height / 10; var offset = Timegraph.axisTop + tickSpacing; var tickValue = 90; for (var i = 0; i < 9; i++) { context.beginPath(); context.moveTo(Timegraph.axisLeft, offset); context.lineTo(Timegraph.axisLeft + graph.width, offset); context.stroke(); context.fillText(tickValue.toString(), 0, offset + 5, Timegraph.axisLeft); offset += tickSpacing; tickValue -= 10; } }, drawDomain: function (graph, start, end) { var canvas = graph.canvas; var context = graph.context; var data = graph.data; var duration = end - start; if ((end < start)) { return; } var startDay = dateFloor(start); var t0 = startDay; var t1 = dateFloor(end); var dayOffset = 0; if (start > t0) { t0 = t0 + daysToMs(1); dayOffset++; } if (t0 >= t1) { return; } var increment = Math.max(Math.floor((t1 - t0) / daysToMs(Timegraph.ticks)), 1); var incrementMs = daysToMs(increment); var spacing = (incrementMs / duration) * graph.width; var offset = (t0 - start) / duration; var ticksCount = Math.floor((t1 - t0) / incrementMs); for (offset = offset * graph.width + Timegraph.axisLeft; offset < (graph.width + Timegraph.axisLeft); offset += spacing) { context.beginPath(); context.moveTo(offset, Timegraph.axisTop); context.lineTo(offset, Timegraph.axisTop + graph.height); context.stroke(); context.fillText(dateToDayAndMonth(startDay, dayOffset), offset, Timegraph.axisTop + graph.height + 15, spacing); dayOffset += increment; } }, plot: function (graph, start, end) { var canvas = graph.canvas; var context = graph.context var data = graph.data; if ((end < start)) { return; } var duration = end - start; Timegraph.drawDomain(graph, start, end); context.fillStyle = Timegraph.shadingColor; for (var i = 0; i < data.length - 1; i++) { if ((data[i].t0 < start) || (data[i].t0 > end) || (data[i].t1 > end)) { continue; } var x1 = (data[i].t0 - start) / duration; x1 = x1 * graph.width + Timegraph.axisLeft; var x2 = (data[i].t1 - start) / duration; x2 = x2 * graph.width + Timegraph.axisLeft; context.globalAlpha = 0.3; context.fillRect(x1, Timegraph.axisTop, (x2 - x1), graph.height); context.globalAlpha = 1; context.beginPath(); context.strokeStyle = graph.lineTypes[data[i].type].color; context.lineWidth = 1.5; if (graph.lineTypes[data[i].type].dotted == 1) { context.dashedLine(x1, data[i].yy0, x2, data[i].yy1); } else { context.moveTo(x1, data[i].yy0); context.lineTo(x2, data[i].yy1); } context.stroke(); } }, draw: function (graph) { var canvas = document.getElementById(graph.element); if (canvas == null) { return; } var context = canvas.getContext('2d'); if (context == null) { return; } graph.width = 0; graph.height = 0; graph.context = context; graph.canvas = canvas; Timegraph.precompute(graph); Timegraph.drawFrame(graph); Timegraph.drawRange(graph); Timegraph.plot(graph, graph.startMs, graph.endMs); } }; Histogram = { // Constants yTicks: 10, axisLeft: 30.5, axisBottom: 25.5, paddingTop: 5, maxPadding: 25, barColor: "#1191c1", // Functions precompute: function (graph) { var canvas = graph.canvas; var bucketCount = 0; for (var i = 0; i < graph.data.length; i++) { if (graph.data[i].value > graph.max) { graph.max = graph.data[i].value; } bucketCount++; } if (graph.rangeMax != null) { graph.max = Math.max(graph.max, graph.rangeMax); } graph.bucketCount = bucketCount; graph.tickSpacing = (canvas.width - Histogram.axisLeft) / bucketCount; graph.height = canvas.height; graph.width = canvas.width; }, drawFrame: function (graph) { var context = graph.context; var canvas = graph.canvas; context.beginPath(); context.moveTo(Histogram.axisLeft, Histogram.paddingTop); context.lineTo(Histogram.axisLeft, canvas.height - Histogram.axisBottom); context.lineTo(canvas.width, canvas.height - Histogram.axisBottom); context.stroke(); }, drawDomain: function (graph) { var context = graph.context; var tickOffset = 0; context.font = "8pt Segoe UI"; context.fillStyle = "#00b0f0"; for (var i = 0; i < graph.bucketCount; i++) { context.fillText(graph.data[i].interval, Histogram.axisLeft + tickOffset + 2, graph.height - 10, graph.tickSpacing); tickOffset += graph.tickSpacing; } }, drawRange: function (graph) { var context = graph.context; var tickSpacing = (graph.height - Histogram.axisBottom - 25) / Histogram.yTicks; var tickIncrement = Math.round(graph.max / Histogram.yTicks); var tickOffset = graph.height - Histogram.axisBottom - tickSpacing; var tickValue = tickIncrement; context.font = "12pt Segoe UI"; context.fillStyle = "#00b0f0"; for (var i = 0; i < Histogram.yTicks; i++) { context.beginPath(); context.moveTo(Histogram.axisLeft, tickOffset); context.lineTo(Histogram.axisLeft + 5, tickOffset); context.stroke(); context.fillText(tickValue.toString(), 0, tickOffset + 5, Histogram.axisLeft); tickValue += tickIncrement; tickOffset -= tickSpacing; } }, plot: function (graph) { var tickOffset = 0; var context = graph.context; context.fillStyle = Histogram.barColor; for (var i = 0; i < graph.bucketCount; i++) { if (graph.data[i].value == 0) { tickOffset += graph.tickSpacing;; continue; } var barHeight = Math.round((graph.data[i].value * (graph.height - 50)) / graph.max); context.fillRect(Histogram.axisLeft + tickOffset + Histogram.paddingTop, graph.height - Histogram.axisBottom - barHeight, graph.tickSpacing - 10, barHeight); tickOffset += graph.tickSpacing; } }, draw: function (graph) { var canvas = document.getElementById(graph.element); if (canvas == null) { return; } var context = canvas.getContext("2d"); if (context == null) { return; } if (graph.data == null) { return; } graph.bucketCount = 0; graph.max = 0; graph.tickSpacing = 0; graph.wdith = 0; graph.height = 0; graph.context = context; graph.canvas = canvas; context.strokeStyle = "#c0c0c0"; Histogram.precompute(graph); Histogram.drawFrame(graph); Histogram.drawRange(graph); Histogram.drawDomain(graph); Histogram.plot(graph); } }; Collapser = { topActiveBlockerDivs: {}, detailsContainers: {}, getContainerBody: function (container) { var children = container.childNodes; var containerBody = null; for (var i = 0; i < children.length; i++) { if (children[i].tagName == "DIV" && (children[i].className == "analysis-body-collapsed" || children[i].className == "analysis-body")) { containerBody = children[i]; break; } } return containerBody; }, togglePanel: function (container) { var containerBody = Collapser.getContainerBody(container); if (containerBody == null) { return; } var heading = container.getElementsByTagName("H1")[0]; var expander = heading.getElementsByClassName("expander")[0]; if (containerBody.className == "analysis-body-collapsed") { containerBody.className = "analysis-body"; expander.innerHTML = "- "; } else { containerBody.className = "analysis-body-collapsed"; expander.innerHTML = "+ "; } }, toggleDetails: function (element) { if (element.className == "scenario-details-collapsed") { element.className = "scenario-details"; } else { element.className = "scenario-details-collapsed"; } }, initializePanels: function () { var elements = document.getElementsByClassName("analysis-container"); for (var i = 0; i < elements.length; i++) { var element = elements[i]; var heading = element.getElementsByTagName("h1")[0]; if (heading == null) { continue; } heading.onclick = function () { var container = this.parentNode; Collapser.togglePanel(container); }; } }, initializeDetails: function() { var elements = document.getElementsByClassName("details-expander"); for (var i = 0; i < elements.length; i++) { var element = elements[i]; var targetId = "details-" + element.id.replace("details-expand-", ""); var targetElement = document.getElementById(targetId); Collapser.detailsContainers[element.id] = targetElement; element.onclick = function () { var targetElement = Collapser.detailsContainers[this.id]; Collapser.toggleDetails(targetElement); }; } }, initializeLinks: function () { var links = document.getElementsByClassName("top-active-link"); for (var i = 0; i < links.length; i++) { var link = links[i]; var targetId = link.getAttribute("href").substring(1); var targetElement = document.getElementById(targetId); if (targetElement.tagName.toLowerCase() == "tr") { // tr, tbody, table, div.analysis-body-*, div.analysis-container Collapser.topActiveBlockerDivs[targetId] = targetElement.parentNode.parentNode.parentNode.parentNode; } else { Collapser.topActiveBlockerDivs[targetId] = targetElement; } link.onclick = function () { var targetId = this.getAttribute("href").substring(1); var targetContainer = Collapser.topActiveBlockerDivs[targetId]; var container = targetContainer; while ((container != null) && (container.tagName == "DIV")) { var containerBody = Collapser.getContainerBody(container); if (containerBody == null) { return; } if (containerBody.className == "analysis-body-collapsed") { Collapser.togglePanel(container); } container = container.parentNode.parentNode; } targetContainer.scrollIntoView(true); }; } }, initializeCollapser: function () { Collapser.initializePanels(); Collapser.initializeDetails(); TableDecorator.decorate({ element: ".top-blocker", withClass: "top-active-link" }); Collapser.initializeLinks(); }, initialize: function () { if (window.addEventListener != null) { window.addEventListener("load", Collapser.initializeCollapser, false); } else if (window.attachEvent != null) { window.attachEvent("onload", Collapser.initializeCollapser); } } }; TableDecorator = { decorateTable: function (table, linkClass) { if (table == null) { return; } var rows = table.getElementsByTagName("tr"); for (var i = 0; i < rows.length; i++) { var row = rows[i]; var anchor = row.getElementsByClassName("row-link")[0]; if (anchor == null || anchor.tagName.toLowerCase() != "a") { continue; } var link = anchor.getAttribute("href"); for (var j = 0; j < row.children.length; j++) { var cell = row.children[j]; if (cell == anchor.parentNode) { continue; } var classString = ""; if (linkClass != null) { classString = " class=\"" + linkClass + "\""; } cell.innerHTML = "<a href=\"" + link + "\"" + classString + ">" + cell.innerHTML + "</a>"; } } }, decorate: function (tableData) { var selection = tableData.element; if (selection.charAt(0) == ".") { var className = selection.substring(1); var elements = document.getElementsByClassName(className); for (var i = 0; i < elements.length; i++) { if (elements[i].tagName.toLowerCase() == "table") { TableDecorator.decorateTable(elements[i], tableData.withClass); } } } else if (selection.charAt(0) == "#") { var idName = selection.substring(1); var element = document.getElementById(idName); if (element.tagName.toLowerCase() == "table") { TableDecorator.decorateTable(element, tableData.withClass); } } }, }; function initializeScrollTop() { var elements = document.getElementsByClassName("scroll-top-button"); for (var i = 0; i < elements.length; i++) { var element = elements[i]; element.onclick = function () { window.scroll(0, 0); window.location.replace("#"); if (typeof window.history.replaceState == "function") { history.replaceState({}, "", window.location.href.slice(0, -1)); } } } } { x0: "", x1: "", y0: , y1: , type: 0 2 3 4 1 0 4 }, drainGraphData = [ ]; Histogram.draw({ element: "drips-histogram-", data: dripsBuckets_, rangeMax: 100 }); dripsBuckets_ = [ ]; { interval : " ", value : },

+

COMPUTER NAME
SYSTEM PRODUCT NAME
BIOS
OS BUILD
PLATFORM ROLE
REPORT TIME
Legend
GRAPH LINE DESCRIPTION
Dotted AC power
Solid Battery power
No line System powered off
Grey Active Scenario
Green Low System Activity
Orange Moderate System Activity
Red High System Activity
START TIME DURATION ENERGY CHANGE CHANGE RATE % LOW POWER STATE TIME
- - - - - - - -
row- #connected-standby-session- row-link Drain Charge % HW: % % connected-standby-session-
Top

Connected Standby Session

row-
START TIME DURATION ENERGY CHANGE CHANGE RATE % LOW POWER STATE TIME
Drain Charge % HW: % % details-expander details-expand-
scenario-details-collapsed details-
IR TRUNCATE PERCENTAGE %
PEP PRE-VETO COUNT
PEP VETO COUNT

DRIPS Histogram

Percent of time spent in DRIPS bucketed by time interval length
drips-histogram- 864 300

Top Offenders

Top 5 offenders, ranked by active time
NAME TYPE % ACTIVE TIME ACTIVE TIME
SPM Scenario Time Active Time Disabled Time Suspended Time Disengaged
n/a n/a % row- #offender- top-active-link row-link Unknown

+

analysis-container analysis-

+ Processors

No processor activity reported.
analysis-container analysis- offender-

+

% ACTIVE TIME ACTIVE TIME
analysis-container analysis-

+ Activators

No activator activity reported.
analysis-container analysis- offender-

+

% ACTIVE TIME ACTIVE TIME
offender- row-
analysis-container analysis-

+ PDC Phases

PHASE % TIME TIME
analysis-container analysis-

+ Fx Devices

No device activity reported.
analysis-container analysis- offender-

+

% ACTIVE TIME ACTIVE TIME
COMPONENT % ACTIVE TIME ACTIVE TIME
3 row- No active components.
row-
analysis-container analysis- offender-

+ Networking

No networking activity reported.
analysis-container analysis-

+ Other

analysis-container analysis- offender-

+

% ACTIVE TIME ACTIVE TIME

Installed batteries

Information about each currently installed battery
No batteries are currently installed.
BATTERY
NAME
MANUFACTURER
SERIAL NUMBER
CHEMISTRY
DESIGN CAPACITY -
CAPACITY RATIO %
CYCLE COUNT
Sleep Study

Sleep Study

Connected Standby Transitions

Battery drains over the last days
Connected Standby transitions over the last days

Analysis Results

Analysis of issues that might cause poor battery life



- - mWh - mWh % of battery - - % - mW - % - endTime ? msBetween(endTime, startTime) : parseDateTime(endTime) - parseDateTime(startTime); } var dateFormat = /(\d{4})-(\d{2})-(\d{2})[T](\d{2}):(\d{2}):(\d{2})/ // Parses a date-time string and returns a Date (i.e. number of milliseconds) function parseDateTime(value) { if (!value) { return 0; } var match = dateFormat.exec(value) if (!match) { return 0; } return Date.parse(match[1] + '/' + match[2] + '/' + match[3] + ' ' + match[4] + ':' + match[5] + ':' + match[6]) } // Parses just the date portion of a date-time string and returns a Date (i.e. number of milliseconds) function parseDate(value) { if (!value) { return 0; } var match = dateFormat.exec(value) if (!match) { return 0; } return Date.parse(match[1] + '/' + match[2] + '/' + match[3]) } var durationFormat = /P((\d+)D)?T((\d+)H)?((\d+)M)?(\d+)S/ // Convert a string of the form P10DT1H15M40S to a count of milliseconds function parseDurationToMs(value) { var match = durationFormat.exec(value) if (!match) { return 0 } var days = parseInt(match[2] || '0'); var hrs = parseInt(match[4] || '0'); var mins = parseInt(match[6] || '0'); var secs = parseInt(match[7] || '0'); return ((((((days * 24) + hrs) * 60) + mins) * 60) + secs) * 1000; } // Formats a number of milliseconds as h:mm:ss function formatDurationMs(value) { var ms = parseInt(value); var secs = ms / 1000; var mins = secs / 60; var hrs = Math.floor(mins / 60); mins = Math.floor(mins % 60); secs = Math.floor(secs % 60); return hrs + ':' + padLeft(mins,2) + ':' + padLeft(secs,2); } // Converts a string representing a date time to a day and month string function dateToDayAndMonth(date, dayOffset) { var adjustedDate = new Date(parseDate(date) - (dayOffset * 24 * 60 * 60 * 1000)); return padLeft(adjustedDate.toLocaleDateString()); } ]]>
PPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPADDINGPADDINGXXPAD