]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.nativemem/src/org/simantics/nativemem/internal/CMemoryInfo.java
Allow tab-separated columnized logging of memory use
[simantics/platform.git] / bundles / org.simantics.nativemem / src / org / simantics / nativemem / internal / CMemoryInfo.java
1 /*******************************************************************************
2  * Copyright (c) 2016, 2017 Association for Decentralized Information Management
3  * in Industry THTH ry.
4  * All rights reserved. This program and the accompanying materials
5  * are made available under the terms of the Eclipse Public License v1.0
6  * which accompanies this distribution, and is available at
7  * http://www.eclipse.org/legal/epl-v10.html
8  *
9  * Contributors:
10  *     Semantum Oy - initial API and implementation
11  *******************************************************************************/
12 package org.simantics.nativemem.internal;
13
14 import org.simantics.nativemem.ProcessMemoryInfo;
15
16 /**
17  * @author Tuukka Lehtonen
18  */
19 public class CMemoryInfo implements ProcessMemoryInfo {
20
21     public long currentRSS;
22     public long peakRSS;
23
24     @Override
25     public String toString() {
26         return "CMemoryInfo [Current RSS="
27                 + currentRSS + ", Peak RSS="
28                 + peakRSS + "]";
29     }
30
31     @Override
32     public String toHumanReadableString() {
33         StringBuilder sb = new StringBuilder();
34         sb.append("RSS ").append(Util.toMb(currentRSS))
35         .append("M / ").append(Util.toMb(peakRSS))
36         .append("M");
37         return sb.toString();
38     }
39
40     @Override
41     public String headerRow() {
42         return "RSS [MB]\tPeak RSS [MB]";
43     }
44
45     @Override
46     public String dataRow() {
47         return Util.toMb(currentRSS) + "\t" + Util.toMb(peakRSS);
48     }
49
50     public static void main(String[] args) {
51         System.out.println(new CMemoryInfo().toHumanReadableString());
52         System.out.println(new CMemoryInfo().headerRow());
53         System.out.println(new CMemoryInfo().dataRow());
54     }
55
56 }