質問編集履歴

3

タイトルを変更しました。

2021/06/13 10:46

投稿

Lapis_nul
Lapis_nul

スコア6

test CHANGED
@@ -1 +1 @@
1
- AudioInputStream.read()の処理速度につ
1
+ AudioInputStream.read()の処理速度が140msと遅く改善したい。
test CHANGED
File without changes

2

y_waiwaiさんのコメントをソースコード・追記に反映しました。一応OSのスペックも記載します。

2021/06/13 10:46

投稿

Lapis_nul
Lapis_nul

スコア6

test CHANGED
File without changes
test CHANGED
@@ -12,33 +12,219 @@
12
12
 
13
13
  ```Java
14
14
 
15
- import javax.swing.JFrame;
16
-
17
-
18
-
19
- public class Spectrum extends JFrame{
20
-
21
- public Spectrum() {
22
-
23
- Recorder recorder = new Recorder();
24
-
25
- this.add(recorder);
26
-
27
- this.setSize(1100, 800);
28
-
29
- this.setDefaultCloseOperation(EXIT_ON_CLOSE);
30
-
31
- this.setVisible(true);
32
-
33
- this.setTitle("波形表示");
34
-
35
- recorder.doRecord();
36
-
37
- }
38
-
39
- public static void main(String args[]) {
40
-
41
- new Spectrum();
15
+ import java.awt.BasicStroke;
16
+
17
+ import java.awt.Graphics;
18
+
19
+ import java.awt.Graphics2D;
20
+
21
+ import java.awt.geom.Line2D;
22
+
23
+ import java.io.IOException;
24
+
25
+
26
+
27
+ import javax.sound.sampled.AudioFormat;
28
+
29
+ import javax.sound.sampled.AudioInputStream;
30
+
31
+ import javax.sound.sampled.AudioSystem;
32
+
33
+ import javax.sound.sampled.LineUnavailableException;
34
+
35
+ import javax.sound.sampled.TargetDataLine;
36
+
37
+ import javax.swing.JPanel;
38
+
39
+
40
+
41
+ public class Recorder extends JPanel implements Runnable {
42
+
43
+
44
+
45
+ private AudioFormat fmt;
46
+
47
+ private byte data[];
48
+
49
+ private byte dataCopy[];
50
+
51
+ private TargetDataLine line;
52
+
53
+
54
+
55
+ private static final int SAMPLE_RATE = 44100;
56
+
57
+ private static final int SAMPLE_BITS = 8;
58
+
59
+ private static final int CHANNELS = 1;
60
+
61
+ private static final boolean IS_SIGNED = true;
62
+
63
+ private static final boolean IS_BIG_ENDIEN = true;
64
+
65
+ private static final double READ_LENGTH = 0.03; // 30fps
66
+
67
+
68
+
69
+ private int loop;
70
+
71
+ private static final boolean DEBUG = true;
72
+
73
+
74
+
75
+ public Recorder() {
76
+
77
+ fmt = new AudioFormat(SAMPLE_RATE, SAMPLE_BITS, CHANNELS, IS_SIGNED, IS_BIG_ENDIEN);
78
+
79
+ data = new byte[(int) (SAMPLE_RATE * READ_LENGTH)];
80
+
81
+ dataCopy = data.clone();
82
+
83
+
84
+
85
+ try {
86
+
87
+ line = AudioSystem.getTargetDataLine(fmt);
88
+
89
+ line.open();
90
+
91
+ } catch (LineUnavailableException e) {
92
+
93
+ e.printStackTrace();
94
+
95
+ }
96
+
97
+ }
98
+
99
+
100
+
101
+ public void doRecord() {
102
+
103
+ // 別スレッドに分ける
104
+
105
+ Thread thread = new Thread(this);
106
+
107
+ thread.start();
108
+
109
+ }
110
+
111
+
112
+
113
+ public void run() {
114
+
115
+ AudioInputStream in = new AudioInputStream(line);
116
+
117
+ line.start();
118
+
119
+ try {
120
+
121
+ if (DEBUG) {
122
+
123
+ for (loop = 1; loop <= 100; loop++) {
124
+
125
+ long c0 = System.nanoTime();
126
+
127
+ in.read(data, 0, data.length);
128
+
129
+ long c1 = System.nanoTime();
130
+
131
+ dataCopy = data.clone(); // 読み取りと書き取りの衝突防止
132
+
133
+ long c2 = System.nanoTime();
134
+
135
+ repaint();
136
+
137
+ long c3 = System.nanoTime();
138
+
139
+ System.out
140
+
141
+ .println("[Main Loop] Loop " + loop + ": " +
142
+
143
+ (c1 - c0)/1000000.0 + " " + (c2 - c1)/1000000.0 + " " + (c3 - c2)/1000000.0);
144
+
145
+ }
146
+
147
+ } else {
148
+
149
+ while (true) {
150
+
151
+ in.read(data, 0, data.length);
152
+
153
+ dataCopy = data.clone(); // 読み取りと書き取りの衝突防止
154
+
155
+ repaint();
156
+
157
+ }
158
+
159
+ }
160
+
161
+ } catch (IOException e) {
162
+
163
+ e.printStackTrace();
164
+
165
+ }
166
+
167
+ line.stop();
168
+
169
+ line.close();
170
+
171
+ }
172
+
173
+
174
+
175
+ @Override
176
+
177
+ public void paintComponent(Graphics g) {
178
+
179
+ long c0 = System.nanoTime();
180
+
181
+ super.paintComponent(g);
182
+
183
+ Graphics2D g2 = (Graphics2D) g;
184
+
185
+ BasicStroke wideStroke = new BasicStroke(4.0f);
186
+
187
+ g2.setStroke(wideStroke);
188
+
189
+ for (int i = 0; i < data.length - 1; i++) {
190
+
191
+ Line2D line = new Line2D.Double(
192
+
193
+ toXCoodinate(i, 1000), toYCoodinate(dataCopy[i], 600),
194
+
195
+ toXCoodinate(i + 1, 1000), toYCoodinate(dataCopy[i + 1], 600));
196
+
197
+ g2.draw(line);
198
+
199
+ }
200
+
201
+ long c1 = System.nanoTime();
202
+
203
+ if (DEBUG) {
204
+
205
+ System.out.println("[Repeint] Loop " + loop + ": " + (c1 - c0)/1000000.0);
206
+
207
+ }
208
+
209
+ }
210
+
211
+
212
+
213
+ private int toXCoodinate(int pos, int width) {
214
+
215
+ double w = (double) width;
216
+
217
+ return (int) (pos * w / dataCopy.length);
218
+
219
+ }
220
+
221
+
222
+
223
+ private int toYCoodinate(byte data, int height) {
224
+
225
+ int amp = (int) data;
226
+
227
+ return (int) ((amp - 128) * (height / 255.0) * -1 + 50);//タイトルバーで隠れるので少し下げる
42
228
 
43
229
  }
44
230
 
@@ -48,531 +234,149 @@
48
234
 
49
235
  ```
50
236
 
51
- Recorder.java
52
-
53
- ```Java
54
-
55
- import java.awt.BasicStroke;
56
-
57
- import java.awt.Graphics;
58
-
59
- import java.awt.Graphics2D;
60
-
61
- import java.awt.geom.Line2D;
62
-
63
- import java.io.IOException;
64
-
65
-
66
-
67
- import javax.sound.sampled.AudioFormat;
68
-
69
- import javax.sound.sampled.AudioInputStream;
70
-
71
- import javax.sound.sampled.AudioSystem;
72
-
73
- import javax.sound.sampled.LineUnavailableException;
74
-
75
- import javax.sound.sampled.TargetDataLine;
76
-
77
- import javax.swing.JPanel;
78
-
79
-
80
-
81
- public class Recorder extends JPanel implements Runnable {
82
-
83
-
84
-
85
- private AudioFormat fmt;
86
-
87
- private byte data[];
88
-
89
- private byte dataCopy[];
90
-
91
- private TargetDataLine line;
92
-
93
-
94
-
95
- private static final int SAMPLE_RATE = 44100;
96
-
97
- private static final int SAMPLE_BITS = 8;
98
-
99
- private static final int CHANNELS = 1;
100
-
101
- private static final boolean IS_SIGNED = true;
102
-
103
- private static final boolean IS_BIG_ENDIEN = true;
104
-
105
- private static final double READ_LENGTH = 0.03; // 30fps
106
-
107
-
108
-
109
- private int loop;
110
-
111
- private static final boolean DEBUG = false;
112
-
113
-
114
-
115
- public Recorder() {
116
-
117
- fmt = new AudioFormat(SAMPLE_RATE, SAMPLE_BITS, CHANNELS, IS_SIGNED, IS_BIG_ENDIEN);
118
-
119
- data = new byte[(int) (SAMPLE_RATE * READ_LENGTH)];
120
-
121
- dataCopy = data.clone();
122
-
123
-
124
-
125
- try {
126
-
127
- line = AudioSystem.getTargetDataLine(fmt);
128
-
129
- line.open();
130
-
131
- } catch (LineUnavailableException e) {
132
-
133
- e.printStackTrace();
134
-
135
- }
136
-
137
- }
138
-
139
-
140
-
141
- public void doRecord() {
142
-
143
- // 別スレッドに分ける
144
-
145
- Thread thread = new Thread(this);
146
-
147
- thread.start();
148
-
149
- }
150
-
151
-
152
-
153
- public void run() {
154
-
155
- AudioInputStream in = new AudioInputStream(line);
156
-
157
- line.start();
158
-
159
- try {
160
-
161
- if (DEBUG) {
162
-
163
- for (loop = 0; loop < 100; loop++) {
164
-
165
- long c0 = System.currentTimeMillis();
166
-
167
- in.read(data, 0, data.length);
168
-
169
- long c1 = System.currentTimeMillis();
170
-
171
- dataCopy = data.clone(); // 読み取りと書き取りの衝突防止
172
-
173
- long c2 = System.currentTimeMillis();
174
-
175
- repaint();
176
-
177
- long c3 = System.currentTimeMillis();
178
-
179
- System.out
180
-
181
- .println("[Main Loop] Loop " + loop + ": " + (c1 - c0) + " " + (c2 - c1) + " " + (c3 - c2));
182
-
183
- }
184
-
185
- } else {
186
-
187
- while (true) {
188
-
189
- in.read(data, 0, data.length);
190
-
191
- dataCopy = data.clone(); // 読み取りと書き取りの衝突防止
192
-
193
- repaint();
194
-
195
- }
196
-
197
- }
198
-
199
- } catch (IOException e) {
200
-
201
- e.printStackTrace();
202
-
203
- }
204
-
205
- line.stop();
206
-
207
- line.close();
208
-
209
- }
210
-
211
-
212
-
213
- @Override
214
-
215
- public void paintComponent(Graphics g) {
216
-
217
- long c0 = System.currentTimeMillis();
218
-
219
- super.paintComponent(g);
220
-
221
- Graphics2D g2 = (Graphics2D) g;
222
-
223
- BasicStroke wideStroke = new BasicStroke(4.0f);
224
-
225
- g2.setStroke(wideStroke);
226
-
227
- for (int i = 0; i < data.length - 1; i++) {
228
-
229
- Line2D line = new Line2D.Double(
230
-
231
- toXCoodinate(i, 1000), toYCoodinate(dataCopy[i], 600),
232
-
233
- toXCoodinate(i + 1, 1000), toYCoodinate(dataCopy[i + 1], 600));
234
-
235
- g2.draw(line);
236
-
237
- }
238
-
239
- long c1 = System.currentTimeMillis();
240
-
241
- if (DEBUG) {
242
-
243
- System.out.println("[Repeint] Loop " + loop + ": " + (c1 - c0));
244
-
245
- }
246
-
247
- }
248
-
249
-
250
-
251
- private int toXCoodinate(int pos, int width) {
252
-
253
- double w = (double) width;
254
-
255
- return (int) (pos * w / dataCopy.length);
256
-
257
- }
258
-
259
-
260
-
261
- private int toYCoodinate(byte data, int height) {
262
-
263
- int amp = (int) data;
264
-
265
- return (int) ((amp - 128) * (height / 255.0) * -1 + 50);//タイトルバーで隠れるので少し下げる
266
-
267
- }
268
-
269
- }
237
+ ###発生した課題
238
+
239
+ 波形は正常に表示されているものの、想定してたものよりもFPSが非常に小さい。(おおよそ10FPS?)
240
+
241
+ ![プログラム実行例](c0097e81c53b7b038443536532adf049.png)
242
+
243
+ ### 試したこと
244
+
245
+
246
+
247
+ runメソッド内での各ステップごとの所要時間、およびpaintComponentメソッドの処理時間をログで表示したら以下のようになりました。特にAudioInputStream.read()の所要時間がおおよそ140ミリ秒であるか0秒であるかのどちらかであり、30ミリ秒で完結すると思っていたがかけ離れたものとなりました。ここには載せていないが、録音間隔を10ミリ秒、50ミリ秒にした場合でも同じ結果が得られました(「AudioInputStream.read()の所要時間」が「0秒」になっているループ数は異なった)。
248
+
249
+ 恐らく140ミリ秒がAudioInputStream.read()の所要時間の限界であるように思えるのですが、本当にそうでしょうか。なにか改善点があったらお願いします。
270
250
 
271
251
  ```
272
252
 
273
- ###発生した課題
274
-
275
- 波形は正常に表示されているものの、想定してたものよりもFPSが非常に小さい。(おおよそ10FPS?)
276
-
277
- ![プログラム実行例](c0097e81c53b7b038443536532adf049.png)
278
-
279
- ### 試したこと
280
-
281
-
282
-
283
- runメソッド内での各ステップごとの所要時間、およびpaintComponentメソッドの処理時間をログで表示したら以下のようになりました。特にAudioInputStream.read()の所要時間がおおよそ140ミリ秒であるか0秒であるかのどちらかであり、30ミリ秒で完結すると思っていたがかけ離れたものとなりました。ここには載せていないが、録音間隔を10ミリ秒、50ミリ秒にした場合でも同じ結果が得られました(「AudioInputStream.read()の所要時間」が「0秒」になっているループ数は異なった)。
284
-
285
- 恐らく140ミリ秒がAudioInputStream.read()の所要時間の限界であるように思えるのですが、本当にそうでしょうか。なにか改善点があったらお願いします。
253
+ [Repeint] Loop 1: 4
254
+
255
+ [Main Loop] Loop 1: 142 0 1
256
+
257
+ [Main Loop] Loop 2: 0 0 0
258
+
259
+ [Main Loop] Loop 3: 0 0 0
260
+
261
+ [Main Loop] Loop 4: 0 0 0
262
+
263
+ [Repeint] Loop 5: 3
264
+
265
+ [Repeint] Loop 5: 2
266
+
267
+ [Main Loop] Loop 5: 137 0 0
268
+
269
+ [Main Loop] Loop 6: 1 0 0
270
+
271
+ [Main Loop] Loop 7: 0 0 0
272
+
273
+ [Main Loop] Loop 8: 1 0 0
274
+
275
+ [Repeint] Loop 9: 4
276
+
277
+ [Repeint] Loop 9: 4
278
+
279
+ [Main Loop] Loop 9: 137 0 0
280
+
281
+ [Main Loop] Loop 10: 1 0 0
282
+
283
+ [Main Loop] Loop 11: 0 0 0
284
+
285
+ [Main Loop] Loop 12: 1 0 0
286
+
287
+ [Main Loop] Loop 13: 0 0 0
288
+
289
+ [Repeint] Loop 14: 4
290
+
291
+ [Main Loop] Loop 14: 139 0 0
292
+
293
+ [Main Loop] Loop 15: 0 0 2
294
+
295
+ [Repeint] Loop 15: 2
296
+
297
+ [Main Loop] Loop 16: 0 0 0
298
+
299
+ [Main Loop] Loop 17: 0 0 0
300
+
301
+ [Repeint] Loop 18: 1
302
+
303
+ [Main Loop] Loop 18: 140 0 0
304
+
305
+ [Main Loop] Loop 19: 1 0 0
306
+
307
+ [Main Loop] Loop 20: 0 0 0
308
+
309
+ (以下文字数制限のため略)
286
310
 
287
311
  ```
288
312
 
289
- [Repeint] Loop 1: 4
313
+ ### 追記1
290
-
291
- [Main Loop] Loop 1: 142 0 1
314
+
292
-
293
- [Main Loop] Loop 2: 0 0 0
294
-
295
- [Main Loop] Loop 3: 0 0 0
296
-
297
- [Main Loop] Loop 4: 0 0 0
298
-
299
- [Repeint] Loop 5: 3
300
-
301
- [Repeint] Loop 5: 2
302
-
303
- [Main Loop] Loop 5: 137 0 0
304
-
305
- [Main Loop] Loop 6: 1 0 0
306
-
307
- [Main Loop] Loop 7: 0 0 0
308
-
309
- [Main Loop] Loop 8: 1 0 0
310
-
311
- [Repeint] Loop 9: 4
312
-
313
- [Repeint] Loop 9: 4
314
-
315
- [Main Loop] Loop 9: 137 0 0
316
-
317
- [Main Loop] Loop 10: 1 0 0
318
-
319
- [Main Loop] Loop 11: 0 0 0
320
-
321
- [Main Loop] Loop 12: 1 0 0
322
-
323
- [Main Loop] Loop 13: 0 0 0
324
-
325
- [Repeint] Loop 14: 4
326
-
327
- [Main Loop] Loop 14: 139 0 0
315
+ System.nanoTimeを使用した場合はこうなりました。
328
-
329
- [Main Loop] Loop 15: 0 0 2
330
-
331
- [Repeint] Loop 15: 2
332
-
333
- [Main Loop] Loop 16: 0 0 0
334
-
335
- [Main Loop] Loop 17: 0 0 0
336
-
337
- [Repeint] Loop 18: 1
338
-
339
- [Main Loop] Loop 18: 140 0 0
340
-
341
- [Main Loop] Loop 19: 1 0 0
342
-
343
- [Main Loop] Loop 20: 0 0 0
344
-
345
- [Main Loop] Loop 21: 1 0 0
346
-
347
- [Main Loop] Loop 22: 0 0 0
348
-
349
- [Repeint] Loop 23: 3
350
-
351
- [Repeint] Loop 23: 3
352
-
353
- [Main Loop] Loop 23: 138 0 0
354
-
355
- [Main Loop] Loop 24: 0 0 0
356
-
357
- [Main Loop] Loop 25: 1 0 0
358
-
359
- [Main Loop] Loop 26: 0 0 0
360
-
361
- [Main Loop] Loop 27: 0 0 0
362
-
363
- [Repeint] Loop 28: 3
364
-
365
- [Repeint] Loop 28: 2
366
-
367
- [Main Loop] Loop 28: 136 0 0
368
-
369
- [Main Loop] Loop 29: 1 0 0
370
-
371
- [Main Loop] Loop 30: 0 0 0
372
-
373
- [Main Loop] Loop 31: 0 0 0
374
-
375
- [Main Loop] Loop 32: 0 0 0
376
-
377
- [Repeint] Loop 33: 3
378
-
379
- [Repeint] Loop 33: 1
380
-
381
- [Main Loop] Loop 33: 139 0 0
382
-
383
- [Main Loop] Loop 34: 0 0 0
384
-
385
- [Main Loop] Loop 35: 0 0 0
386
-
387
- [Main Loop] Loop 36: 0 0 0
388
-
389
- [Repeint] Loop 37: 1
390
-
391
- [Repeint] Loop 37: 1
392
-
393
- [Main Loop] Loop 37: 139 0 0
394
-
395
- [Main Loop] Loop 38: 0 0 0
396
-
397
- [Main Loop] Loop 39: 1 0 0
398
-
399
- [Main Loop] Loop 40: 0 0 0
400
-
401
- [Main Loop] Loop 41: 0 0 0
402
-
403
- [Repeint] Loop 42: 2
404
-
405
- [Repeint] Loop 42: 1
406
-
407
- [Main Loop] Loop 42: 140 0 0
408
-
409
- [Main Loop] Loop 43: 1 0 0
410
-
411
- [Main Loop] Loop 44: 0 0 0
412
-
413
- [Main Loop] Loop 45: 0 0 0
414
-
415
- [Repeint] Loop 46: 5
416
-
417
- [Repeint] Loop 46: 1
418
-
419
- [Main Loop] Loop 46: 139 0 0
420
-
421
- [Main Loop] Loop 47: 0 1 0
422
-
423
- [Main Loop] Loop 48: 0 0 0
424
-
425
- [Main Loop] Loop 49: 1 0 0
426
-
427
- [Main Loop] Loop 50: 0 0 0
428
-
429
- [Main Loop] Loop 51: 0 0 0
430
-
431
- [Repeint] Loop 52: 3
432
-
433
- [Repeint] Loop 52: 4
434
-
435
- [Main Loop] Loop 52: 138 0 0
436
-
437
- [Main Loop] Loop 53: 0 0 0
438
-
439
- [Main Loop] Loop 54: 1 0 0
440
-
441
- [Main Loop] Loop 55: 0 0 0
442
-
443
- [Main Loop] Loop 56: 0 0 0
444
-
445
- [Repeint] Loop 57: 3
446
-
447
- [Repeint] Loop 57: 1
448
-
449
- [Main Loop] Loop 57: 139 0 0
450
-
451
- [Main Loop] Loop 58: 1 0 0
452
-
453
- [Main Loop] Loop 59: 0 0 0
454
-
455
- [Main Loop] Loop 60: 0 0 0
456
-
457
- [Repeint] Loop 61: 4
458
-
459
- [Repeint] Loop 61: 3
460
-
461
- [Main Loop] Loop 61: 138 0 0
462
-
463
- [Main Loop] Loop 62: 0 0 0
464
-
465
- [Main Loop] Loop 63: 1 0 0
466
-
467
- [Main Loop] Loop 64: 0 0 0
468
-
469
- [Main Loop] Loop 65: 1 0 0
470
-
471
- [Repeint] Loop 66: 4
472
-
473
- [Repeint] Loop 66: 1
474
-
475
- [Main Loop] Loop 66: 136 0 0
476
-
477
- [Main Loop] Loop 67: 0 0 0
478
-
479
- [Main Loop] Loop 68: 1 0 0
480
-
481
- [Main Loop] Loop 69: 0 0 0
482
-
483
- [Repeint] Loop 70: 2
484
-
485
- [Repeint] Loop 70: 1
486
-
487
- [Main Loop] Loop 70: 139 0 0
488
-
489
- [Main Loop] Loop 71: 0 0 0
490
-
491
- [Main Loop] Loop 72: 0 0 1
492
-
493
- [Main Loop] Loop 73: 0 0 0
494
-
495
- [Main Loop] Loop 74: 1 0 0
496
-
497
- [Repeint] Loop 75: 3
498
-
499
- [Repeint] Loop 75: 3
500
-
501
- [Main Loop] Loop 75: 138 0 0
502
-
503
- [Main Loop] Loop 76: 0 0 0
504
-
505
- [Main Loop] Loop 77: 0 0 0
506
-
507
- [Main Loop] Loop 78: 0 0 1
508
-
509
- [Main Loop] Loop 79: 0 0 0
510
-
511
- [Repeint] Loop 80: 1
512
-
513
- [Repeint] Loop 80: 1
514
-
515
- [Main Loop] Loop 80: 140 0 0
516
-
517
- [Main Loop] Loop 81: 0 0 0
518
-
519
- [Main Loop] Loop 82: 0 0 0
520
-
521
- [Main Loop] Loop 83: 0 0 0
522
-
523
- [Repeint] Loop 84: 1
524
-
525
- [Repeint] Loop 84: 1
526
-
527
- [Main Loop] Loop 84: 140 0 0
528
-
529
- [Main Loop] Loop 85: 0 0 0
530
-
531
- [Main Loop] Loop 86: 0 0 0
532
-
533
- [Main Loop] Loop 87: 0 0 0
534
-
535
- [Main Loop] Loop 88: 0 0 0
536
-
537
- [Repeint] Loop 89: 2
538
-
539
- [Main Loop] Loop 89: 140 0 0
540
-
541
- [Main Loop] Loop 90: 0 0 0
542
-
543
- [Main Loop] Loop 91: 0 0 0
544
-
545
- [Main Loop] Loop 92: 0 0 0
546
-
547
- [Repeint] Loop 93: 1
548
-
549
- [Main Loop] Loop 93: 138 0 0
550
-
551
- [Main Loop] Loop 94: 1 0 0
552
-
553
- [Main Loop] Loop 95: 0 0 0
554
-
555
- [Main Loop] Loop 96: 0 0 0
556
-
557
- [Main Loop] Loop 97: 0 0 0
558
-
559
- [Repeint] Loop 98: 2
560
-
561
- [Repeint] Loop 98: 1
562
-
563
- [Main Loop] Loop 98: 139 0 0
564
-
565
- [Main Loop] Loop 99: 0 0 0
566
-
567
- [Main Loop] Loop 100: 0 0 0
568
-
569
- [Repeint] Loop 101: 1
570
-
571
- [Repeint] Loop 101: 1
572
316
 
573
317
  ```
574
318
 
575
-
319
+ [Repeint] Loop 1: 3.7141
320
+
321
+ [Main Loop] Loop 1: 147.1323 0.0092 0.4591
322
+
323
+ [Main Loop] Loop 2: 0.1487 0.0016 0.0283
324
+
325
+ [Main Loop] Loop 3: 0.111 0.0018 0.0112
326
+
327
+ [Main Loop] Loop 4: 0.0723 0.0022 0.0071
328
+
329
+ [Repeint] Loop 5: 1.0374
330
+
331
+ [Repeint] Loop 5: 0.9224
332
+
333
+ [Main Loop] Loop 5: 125.0524 0.0281 0.1598
334
+
335
+ [Main Loop] Loop 6: 0.3004 0.0086 0.1049
336
+
337
+ [Main Loop] Loop 7: 0.2658 0.0218 0.0207
338
+
339
+ [Main Loop] Loop 8: 0.2519 0.0071 0.0212
340
+
341
+ [Repeint] Loop 9: 3.4221
342
+
343
+ [Repeint] Loop 9: 0.9553
344
+
345
+ [Main Loop] Loop 9: 139.1244 0.0095 0.1027
346
+
347
+ [Main Loop] Loop 10: 0.1454 0.0037 0.0404
348
+
349
+ [Main Loop] Loop 11: 0.1752 0.0071 0.0256
350
+
351
+ [Main Loop] Loop 12: 0.1436 0.0029 0.0097
352
+
353
+ [Repeint] Loop 13: 1.3418
354
+
355
+ [Repeint] Loop 13: 1.0709
356
+
357
+ [Main Loop] Loop 13: 139.2908 0.013 0.1875
358
+
359
+ [Main Loop] Loop 14: 0.3437 0.0318 0.1382
360
+
361
+ [Main Loop] Loop 15: 0.327 0.0083 0.0256
362
+
363
+ [Main Loop] Loop 16: 0.2782 0.025 0.0255
364
+
365
+ [Main Loop] Loop 17: 0.3119 0.0083 0.0496
366
+
367
+ [Repeint] Loop 18: 3.5176
368
+
369
+ [Repeint] Loop 18: 2.3505
370
+
371
+ [Main Loop] Loop 18: 138.5742 0.0124 0.1887
372
+
373
+ [Main Loop] Loop 19: 0.339 0.0096 0.1255
374
+
375
+ [Main Loop] Loop 20: 0.3278 0.0071 0.0243
376
+
377
+ (以下文字数制限のため略)
378
+
379
+ ```
576
380
 
577
381
  ### 補足情報(FW/ツールのバージョンなど)
578
382
 
@@ -589,3 +393,15 @@
589
393
  Java(TM) SE Runtime Environment (build 16.0.1+9-24)
590
394
 
591
395
  Java HotSpot(TM) 64-Bit Server VM (build 16.0.1+9-24, mixed mode, sharing)
396
+
397
+
398
+
399
+ デバイス名 LAPTOP-L49P9QG6
400
+
401
+ プロセッサ Intel(R) Core(TM) i7-9750H CPU @ 2.60GHz 2.59 GHz
402
+
403
+ 実装 RAM 16.0 GB (15.9 GB 使用可能)
404
+
405
+ システムの種類 64 ビット オペレーティング システム、x64 ベース プロセッサ
406
+
407
+ ペンとタッチ このディスプレイでは、ペン入力とタッチ入力は利用できません

1

タグ修正

2021/06/12 13:15

投稿

Lapis_nul
Lapis_nul

スコア6

test CHANGED
File without changes
test CHANGED
File without changes