Skip to content

Commit c01e710

Browse files
committed
WIP 1
1 parent 4eb1273 commit c01e710

File tree

5 files changed

+300
-266
lines changed

5 files changed

+300
-266
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,92 @@
1+
package com.datadog.profiling.controller.openjdk.events;
2+
3+
final class SimpleParser {
4+
private final String line;
5+
6+
private int pos;
7+
8+
public SimpleParser(String line) {
9+
this.line = line;
10+
this.pos = 0;
11+
}
12+
13+
void skipToNextValue(boolean acceptDash) {
14+
int limit = line.length();
15+
while (pos < limit && isDelimiter(line.charAt(pos), acceptDash)) {
16+
pos++;
17+
}
18+
}
19+
20+
void skipValue(boolean acceptDash) {
21+
int limit = line.length();
22+
char c = 0;
23+
while (pos < limit && !isDelimiter(line.charAt(pos), acceptDash)) {
24+
pos++;
25+
}
26+
}
27+
28+
int getPosition() {
29+
return pos;
30+
}
31+
32+
void setPosition(int pos) {
33+
this.pos = pos;
34+
}
35+
36+
long nextLongValue(int base) {
37+
if (base != 10 && base != 16) {
38+
throw new UnsupportedOperationException("Unsupported base: " + base);
39+
}
40+
int limit = line.length();
41+
skipToNextValue(true);
42+
if (pos == limit) {
43+
pos = -1;
44+
return -1;
45+
}
46+
long val = 0;
47+
char c = 0;
48+
while (pos < limit && !isDelimiter(c = line.charAt(pos), true)) {
49+
if (c < '0' || c > '9') {
50+
if (base == 10 || (c < 'a' || c > 'f')) {
51+
skipValue(true);
52+
return -1;
53+
}
54+
}
55+
int digit = c >= 'a' ? 10 + (c - 'a') : (c - '0');
56+
val = val * base + digit;
57+
pos++;
58+
}
59+
return val;
60+
}
61+
62+
String nextStringValue() {
63+
int limit = line.length();
64+
skipToNextValue(false);
65+
if (pos == limit) {
66+
pos = -1;
67+
return null;
68+
}
69+
long val = 0;
70+
StringBuilder sb = new StringBuilder();
71+
char c = 0;
72+
while (pos < limit && !isDelimiter(c = line.charAt(pos), false)) {
73+
sb.append(c);
74+
pos++;
75+
}
76+
return sb.toString();
77+
}
78+
79+
String slurpStringValue() {
80+
int limit = line.length();
81+
skipToNextValue(false);
82+
if (pos == limit) {
83+
pos = -1;
84+
return null;
85+
}
86+
return line.substring(pos).trim();
87+
}
88+
89+
private static boolean isDelimiter(char c, boolean acceptDash) {
90+
return c == ' ' || (acceptDash && c == '-');
91+
}
92+
}

dd-java-agent/agent-profiling/profiling-controller-openjdk/src/main/java/com/datadog/profiling/controller/openjdk/events/SmapEntryEvent.java

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -19,120 +19,120 @@
1919
public class SmapEntryEvent extends Event {
2020

2121
@Label("Region Start Address")
22-
private final long startAddress;
22+
long startAddress;
2323

2424
@Label("Region End Address")
25-
private final long endAddress;
25+
long endAddress;
2626

2727
@Label("Region Permissions")
28-
private final String perms;
28+
String perms;
2929

3030
@Label("Offset into mapping")
31-
private final long offset;
31+
long offset;
3232

3333
@Label("Device")
34-
private final String dev;
34+
String dev;
3535

3636
@Label("INode ID")
37-
private final int inodeID;
37+
int inodeID;
3838

3939
@Label("Path associated with mapping")
40-
private final String pathname;
40+
String pathname;
4141

4242
@Label("Mapping Size")
43-
private final long size;
43+
long size;
4444

4545
@Label("Page Size")
46-
private final long kernelPageSize;
46+
long kernelPageSize;
4747

4848
@Label("Memory Management Unit Page Size")
49-
private final long mmuPageSize;
49+
long mmuPageSize;
5050

5151
@Label("Resident Set Size")
5252
@DataAmount
53-
private final long rss;
53+
long rss;
5454

5555
@Label("Proportional Set Size")
5656
@DataAmount
57-
private final long pss;
57+
long pss;
5858

5959
@Label("Dirty Proportional Set Size")
6060
@DataAmount
61-
private final long pssDirty;
61+
long pssDirty;
6262

6363
@Label("Shared Clean Pages")
64-
private final long sharedClean;
64+
long sharedClean;
6565

6666
@Label("Shared Dirty Pages")
6767
@DataAmount
68-
private final long sharedDirty;
68+
long sharedDirty;
6969

7070
@Label("Private Clean Pages")
7171
@DataAmount
72-
private final long privateClean;
72+
long privateClean;
7373

7474
@Label("Private Dirty Pages")
7575
@DataAmount
76-
private final long privateDirty;
76+
long privateDirty;
7777

7878
@Label("Referenced Memory")
79-
private final long referenced;
79+
long referenced;
8080

8181
@Label("Anonymous Memory")
8282
@DataAmount
83-
private final long anonymous;
83+
long anonymous;
8484

8585
@Label("Kernel Same-page Merging")
8686
@DataAmount
87-
private final long ksm;
87+
long ksm;
8888

8989
@Label("Lazily Freed Memory")
9090
@DataAmount
91-
private final long lazyFree;
91+
long lazyFree;
9292

9393
@Label("Anon Huge Pages")
9494
@DataAmount
95-
private final long anonHugePages;
95+
long anonHugePages;
9696

9797
@Label("Shared Memory Huge Pages")
9898
@DataAmount
99-
private final long shmemPmdMapped;
99+
long shmemPmdMapped;
100100

101101
@Label("Page Cache Huge Pages")
102102
@DataAmount
103-
private final long filePmdMapped;
103+
long filePmdMapped;
104104

105105
@Label("Shared Huge Pages")
106106
@DataAmount
107-
private final long sharedHugetlb;
107+
long sharedHugetlb;
108108

109109
@Label("Private Huge Pages")
110110
@DataAmount
111-
private final long privateHugetlb;
111+
long privateHugetlb;
112112

113113
@Label("Swap Size")
114114
@DataAmount
115-
private final long swap;
115+
long swap;
116116

117117
@Label("Proportional Swap Size")
118118
@DataAmount
119-
private final long swapPss;
119+
long swapPss;
120120

121121
@Label("Locked Memory")
122122
@DataAmount
123-
private final long locked;
123+
long locked;
124124

125125
@Label("THP Eligible")
126-
private final boolean thpEligible;
126+
boolean thpEligible;
127127

128128
@Label("VM Flags")
129-
private final String vmFlags;
129+
String vmFlags;
130130

131131
@Label("Encountered foreign keys")
132-
private final boolean encounteredForeignKeys;
132+
boolean encounteredForeignKeys;
133133

134134
@Label("NMT Category")
135-
private final String nmtCategory;
135+
String nmtCategory;
136136

137137
public SmapEntryEvent() {
138138
startAddress = 0;

0 commit comments

Comments
 (0)