Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/C/Android/build/build/soong/ui/metrics/proc/   (Android Betriebssystem Version 17©)  Datei vom 26.5.2026 mit Größe 2 kB image not shown  

Quelle  status.go   Sprache: Unknown

 

Spracherkennung für: .go vermutete Sprache: Abap {ABAP[49] C[31] Corba[31]} [Methode: maximale Elemente, drei Dimensionen]

// package proc contains functionality to read proc status files.
package proc

import (
 "strconv"
 "strings"
)

// ProcStatus holds information regarding the memory usage of
// an executing process. The memory sizes in each of the field
// is in bytes.
type ProcStatus struct {
 // Process PID.
 pid int

 // Peak virtual memory size.
 VmPeak uint64

 // Virtual memory size.
 VmSize uint64

 // Locked Memory size.
 VmLck uint64

 // Pinned memory size.
 VmPin uint64

 // Peak resident set size.
 VmHWM uint64

 // Resident set size (sum of RssAnon, RssFile and RssShmem).
 VmRss uint64

 // Size of resident anonymous memory.
 RssAnon uint64

 // Size of resident shared memory.
 RssShmem uint64

 // Size of data segments.
 VmData uint64

 // Size of stack segments.
 VmStk uint64

 //Size of text segments.
 VmExe uint64

 //Shared library code size.
 VmLib uint64

 // Page table entries size.
 VmPTE uint64

 // Size of second-level page tables.
 VmPMD uint64

 // Swapped-out virtual memory size by anonymous private.
 VmSwap uint64

 // Size of hugetlb memory page size.
 HugetlbPages uint64
}

// fillProcStatus takes the key and value, converts the value
// to the proper size unit and is stored in the ProcStatus.
func fillProcStatus(s *ProcStatus, key, value string) {
 v := strToUint64(value)
 switch key {
 case "VmPeak":
  s.VmPeak = v
 case "VmSize":
  s.VmSize = v
 case "VmLck":
  s.VmLck = v
 case "VmPin":
  s.VmPin = v
 case "VmHWM":
  s.VmHWM = v
 case "VmRSS":
  s.VmRss = v
 case "RssAnon":
  s.RssAnon = v
 case "RssShmem":
  s.RssShmem = v
 case "VmData":
  s.VmData = v
 case "VmStk":
  s.VmStk = v
 case "VmExe":
  s.VmExe = v
 case "VmLib":
  s.VmLib = v
 case "VmPTE":
  s.VmPTE = v
 case "VmPMD":
  s.VmPMD = v
 case "VmSwap":
  s.VmSwap = v
 case "HugetlbPages":
  s.HugetlbPages = v
 }
}

// strToUint64 takes the string and converts to unsigned 64-bit integer.
// If the string contains a memory unit such as kB and is converted to
// bytes.
func strToUint64(v string) uint64 {
 // v could be "1024 kB" so scan for the empty space and
 // split between the value and the unit.
 var separatorIndex int
 if separatorIndex = strings.IndexAny(v, " "); separatorIndex < 0 {
  separatorIndex = len(v)
 }
 value, err := strconv.ParseUint(v[:separatorIndex], 10, 64)
 if err != nil {
  return 0
 }

 var scale uint64 = 1
 switch strings.TrimSpace(v[separatorIndex:]) {
 case "kB", "KB":
  scale = 1024
 case "mB", "MB":
  scale = 1024 * 1024
 }
 return value * scale
}

¤ Dauer der Verarbeitung: 0.0 Sekunden  (vorverarbeitet am  2026-11-04) ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

PVS Prover

Isabelle Prover


Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.