]> gerrit.simantics Code Review - simantics/platform.git/blobdiff - bundles/org.simantics.nativemem/src/org/simantics/nativemem/ProcessMemoryCounters.java
Tycho compilation changes for SVN version also.
[simantics/platform.git] / bundles / org.simantics.nativemem / src / org / simantics / nativemem / ProcessMemoryCounters.java
diff --git a/bundles/org.simantics.nativemem/src/org/simantics/nativemem/ProcessMemoryCounters.java b/bundles/org.simantics.nativemem/src/org/simantics/nativemem/ProcessMemoryCounters.java
new file mode 100644 (file)
index 0000000..d2192d3
--- /dev/null
@@ -0,0 +1,54 @@
+package org.simantics.nativemem;\r
+\r
+/**\r
+ * Architecture-independent version of the Windows PsApi PROCESS_MEMORY_COUNTERS\r
+ * structure.\r
+ * \r
+ * @author Tuukka Lehtonen\r
+ */\r
+public class ProcessMemoryCounters {\r
+    public int PageFaultCount;\r
+    public long PeakWorkingSetSize;\r
+    public long WorkingSetSize;\r
+    public long QuotaPeakPagedPoolUsage;\r
+    public long QuotaPagedPoolUsage;\r
+    public long QuotaPeakNonPagedPoolUsage;\r
+    public long QuotaNonPagedPoolUsage;\r
+    public long PagefileUsage;\r
+    public long PeakPagefileUsage;\r
+    public long PrivateUsage;\r
+\r
+    @Override\r
+    public String toString() {\r
+        return "ProcessMemoryCounters [PageFaultCount="\r
+                + PageFaultCount + ", PeakWorkingSetSize=" + PeakWorkingSetSize\r
+                + ", WorkingSetSize=" + WorkingSetSize\r
+                + ", QuotaPeakPagedPoolUsage=" + QuotaPeakPagedPoolUsage\r
+                + ", QuotaPagedPoolUsage=" + QuotaPagedPoolUsage\r
+                + ", QuotaPeakNonPagedPoolUsage=" + QuotaPeakNonPagedPoolUsage\r
+                + ", QuotaNonPagedPoolUsage=" + QuotaNonPagedPoolUsage\r
+                + ", PagefileUsage=" + PagefileUsage + ", PeakPagefileUsage="\r
+                + PeakPagefileUsage + ", PrivateUsage=" + PrivateUsage + "]";\r
+    }\r
+\r
+    public String toHumanReadableString() {\r
+        StringBuilder sb = new StringBuilder();\r
+        sb.append("ProcessMemoryCounters [\n\tPageFaultCount             = ").append(PageFaultCount)\r
+        .append(",\n\tPeakWorkingSetSize         = ").append(toMb(PeakWorkingSetSize))\r
+        .append(" MB,\n\tWorkingSetSize             = ").append(toMb(WorkingSetSize))\r
+        .append(" MB,\n\tQuotaPeakPagedPoolUsage    = ").append(toMb(QuotaPeakPagedPoolUsage))\r
+        .append(" MB,\n\tQuotaPagedPoolUsage        = ").append(toMb(QuotaPagedPoolUsage))\r
+        .append(" MB,\n\tQuotaPeakNonPagedPoolUsage = ").append(toMb(QuotaPeakNonPagedPoolUsage))\r
+        .append(" MB,\n\tQuotaNonPagedPoolUsage     = ").append(toMb(QuotaNonPagedPoolUsage))\r
+        .append(" MB,\n\tPagefileUsage              = ").append(toMb(PagefileUsage))\r
+        .append(" MB,\n\tPeakPagefileUsage          = ").append(toMb(PeakPagefileUsage))\r
+        .append(" MB,\n\tPrivateUsage               = ").append(toMb(PrivateUsage))\r
+        .append(" MB]");\r
+        return sb.toString();\r
+    }\r
+\r
+    private double toMb(long bytes) {\r
+        return (double) bytes / 1048576.0;\r
+    }\r
+\r
+}
\ No newline at end of file