回答編集履歴

3

訂正

2018/04/21 09:22

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

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

綴り間違いを訂正

2018/04/21 09:22

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

test CHANGED
@@ -64,7 +64,7 @@
64
64
 
65
65
  追記:もう少し具体例を挙げてみます。300個ぐらいの円を描画する以下のコードを自分の環境(Windows 10 64bit)実行してみるとだいたい20%ぐらいのCPU使用率でした。
66
66
 
67
- drawEllipsysをsetupで呼び出すように変えると見た目はかわらず、CPU使用率はほぼ0%になりました。
67
+ drawEllipsesをsetupで呼び出すように変えると見た目はかわらず、CPU使用率はほぼ0%になりました。
68
68
 
69
69
 
70
70
 
@@ -112,13 +112,13 @@
112
112
 
113
113
  void draw() {
114
114
 
115
- drawEllipsys();
115
+ drawEllipses();
116
116
 
117
117
  }
118
118
 
119
119
 
120
120
 
121
- void drawEllipsys() {
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

追記

2018/04/21 08:24

投稿

KSwordOfHaste
KSwordOfHaste

スコア18394

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
+ ```