質問編集履歴

2

新たに気づいた点を追記

2021/03/02 17:41

投稿

longcat
longcat

スコア11

test CHANGED
File without changes
test CHANGED
@@ -106,6 +106,66 @@
106
106
 
107
107
 
108
108
 
109
+ ### Javaコマンドのオプションによる結果の違い(追記)
110
+
111
+ 環境により結果が変わると思っていたのですが、
112
+
113
+ 同じ環境でもjavaコマンドのオプションで-Xms32g -Xmx64gをつけるかどうかで、
114
+
115
+ 結果が変わるということがわかりました。
116
+
117
+ 具体的には環境Bでつけていた場合は
118
+
119
+ ```
120
+
121
+ >java -jar -Xms32g -Xmx64g *****.jar
122
+
123
+ str1 = "abcdefghij" size(byte) -> 80
124
+
125
+ str2 = "山田太郎" size(byte) -> 64
126
+
127
+ ```
128
+
129
+ となるのですが、
130
+
131
+ 環境Bでもつけていない場合、
132
+
133
+ ```
134
+
135
+ >java -jar *****.jar
136
+
137
+ ```
138
+
139
+
140
+
141
+ ```
142
+
143
+ >java -jar -Xms4g -Xmx8g *****.jar
144
+
145
+ ```
146
+
147
+ では、
148
+
149
+ ```
150
+
151
+ str1 = "abcdefghij" size(byte) -> 64
152
+
153
+ str2 = "山田太郎" size(byte) -> 48
154
+
155
+ ```
156
+
157
+ となり、環境Aと同じになりました。
158
+
159
+ なので、もしかしたら環境の違いではなく、こちらが本質なのかもしれません。
160
+
161
+ 逆に環境Aで-Xms32g -Xmx64gを指定したらどうなるのかは、
162
+
163
+ そんなにメモリを搭載していないため、確認できていません。
164
+
165
+
166
+
167
+
168
+
109
169
  ### メモリ使用量測定に使用したライブラリ(pom.xmlの記載)
110
170
 
111
171
 

1

情報追加依頼により、System.out.println(System.getProperty("os.arch"))の出力結果を追記

2021/03/02 17:41

投稿

longcat
longcat

スコア11

test CHANGED
File without changes
test CHANGED
@@ -142,6 +142,16 @@
142
142
 
143
143
 
144
144
 
145
+ ### System.out.println(System.getProperty("os.arch"))の出力結果
146
+
147
+ (情報追加依頼により追記)
148
+
149
+ System.out.println(System.getProperty("os.arch"));
150
+
151
+ の出力結果は環境A、Bともに同じで、"amd64"でした。
152
+
153
+
154
+
145
155
  ### 知りたいこと
146
156
 
147
157
  1.環境により同じデータのインスタンスであっても異なるメモリ使用量となるのは「普通のこと」なのか?それとも、「本来は同じになるはず」…だが、自分の何らかのミス、勘違いにより異なっているのか?