回答編集履歴
3
訂正
test
CHANGED
@@ -1,3 +1,21 @@
|
|
1
|
+
訂正:
|
2
|
+
|
3
|
+
回答コメントのやりとりからProcessingの動作モデルの把握云々の問題ではなくProcessing自体の問題であるように思えました(確証があるわけではないのですが自分の環境でも3.3.6では問題なく、3.3.7で再現したからです)
|
4
|
+
|
5
|
+
|
6
|
+
|
7
|
+
回答コメントにも書きましたが、3.3.7の利用を止めて3.3.6を試すことをお奨めしてみます。
|
8
|
+
|
9
|
+
|
10
|
+
|
11
|
+
なおProcessingは(少なくともデフォルトでは)PCにインストールされているJREではなくProcessing自身に同梱されたJREを使うようになっていますので、PCにインストールされているJavaバージョンには左右されないと思います。
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
以下は元の回答
|
16
|
+
|
17
|
+
---
|
18
|
+
|
1
19
|
コードがないので推測でコメントします。
|
2
20
|
|
3
21
|
|
2
綴り間違いを訂正
test
CHANGED
@@ -64,7 +64,7 @@
|
|
64
64
|
|
65
65
|
追記:もう少し具体例を挙げてみます。300個ぐらいの円を描画する以下のコードを自分の環境(Windows 10 64bit)実行してみるとだいたい20%ぐらいのCPU使用率でした。
|
66
66
|
|
67
|
-
drawEllips
|
67
|
+
drawEllipsesをsetupで呼び出すように変えると見た目はかわらず、CPU使用率はほぼ0%になりました。
|
68
68
|
|
69
69
|
|
70
70
|
|
@@ -112,13 +112,13 @@
|
|
112
112
|
|
113
113
|
void draw() {
|
114
114
|
|
115
|
-
drawEllips
|
115
|
+
drawEllipses();
|
116
116
|
|
117
117
|
}
|
118
118
|
|
119
119
|
|
120
120
|
|
121
|
-
void drawEllips
|
121
|
+
void drawEllipses() {
|
122
122
|
|
123
123
|
fill(0);
|
124
124
|
|
@@ -139,3 +139,7 @@
|
|
139
139
|
}
|
140
140
|
|
141
141
|
```
|
142
|
+
|
143
|
+
追記:最初つづりを間違ってdrawEllipsysとしてました。drawEllipsesに訂正しました。
|
144
|
+
|
145
|
+
お恥ずかしい限りです。orz
|
1
追記
test
CHANGED
@@ -57,3 +57,85 @@
|
|
57
57
|
}
|
58
58
|
|
59
59
|
```
|
60
|
+
|
61
|
+
|
62
|
+
|
63
|
+
---
|
64
|
+
|
65
|
+
追記:もう少し具体例を挙げてみます。300個ぐらいの円を描画する以下のコードを自分の環境(Windows 10 64bit)実行してみるとだいたい20%ぐらいのCPU使用率でした。
|
66
|
+
|
67
|
+
drawEllipsysをsetupで呼び出すように変えると見た目はかわらず、CPU使用率はほぼ0%になりました。
|
68
|
+
|
69
|
+
|
70
|
+
|
71
|
+
どの程度の描画でどのくらいの負荷がかかるかの実例として参考になればと思います。
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
```
|
76
|
+
|
77
|
+
int N = 300;
|
78
|
+
|
79
|
+
float[] xs = new float[N];
|
80
|
+
|
81
|
+
float[] ys = new float[N];
|
82
|
+
|
83
|
+
float[] rs = new float[N];
|
84
|
+
|
85
|
+
color[] fills = new color[N];
|
86
|
+
|
87
|
+
color[] strokes = new color[N];
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
void setup() {
|
92
|
+
|
93
|
+
size(500,500);
|
94
|
+
|
95
|
+
for (int i = 0; i < N; i++) {
|
96
|
+
|
97
|
+
xs[i] = random(width);
|
98
|
+
|
99
|
+
ys[i] = random(height);
|
100
|
+
|
101
|
+
rs[i] = 10 + random(10);
|
102
|
+
|
103
|
+
fills[i] = color(random(256), random(256), random(256));
|
104
|
+
|
105
|
+
strokes[i] = color(random(256), random(256), random(256));
|
106
|
+
|
107
|
+
}
|
108
|
+
|
109
|
+
}
|
110
|
+
|
111
|
+
|
112
|
+
|
113
|
+
void draw() {
|
114
|
+
|
115
|
+
drawEllipsys();
|
116
|
+
|
117
|
+
}
|
118
|
+
|
119
|
+
|
120
|
+
|
121
|
+
void drawEllipsys() {
|
122
|
+
|
123
|
+
fill(0);
|
124
|
+
|
125
|
+
noStroke();
|
126
|
+
|
127
|
+
rect(0,0,width,height);
|
128
|
+
|
129
|
+
for (int i = 0; i < N; i++) {
|
130
|
+
|
131
|
+
fill(fills[i]);
|
132
|
+
|
133
|
+
stroke(strokes[i]);
|
134
|
+
|
135
|
+
ellipse(xs[i], ys[i], rs[i], rs[i]);
|
136
|
+
|
137
|
+
}
|
138
|
+
|
139
|
+
}
|
140
|
+
|
141
|
+
```
|