Processing実行中にタスクマネージャーを見てみると、Java(TM) Platform SE binaryが常に30%以上ものCPUを使っています。数行程度の簡単なコードでも一度走らせるとその後ずっとCPUが働いているようです。
Windows 10 proを使用していて、Javaも新しいものをインストールしました。
解決策を教えてください。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答1件
0
ベストアンサー
訂正:
回答コメントのやりとりからProcessingの動作モデルの把握云々の問題ではなくProcessing自体の問題であるように思えました(確証があるわけではないのですが自分の環境でも3.3.6では問題なく、3.3.7で再現したからです)
回答コメントにも書きましたが、3.3.7の利用を止めて3.3.6を試すことをお奨めしてみます。
なおProcessingは(少なくともデフォルトでは)PCにインストールされているJREではなくProcessing自身に同梱されたJREを使うようになっていますので、PCにインストールされているJavaバージョンには左右されないと思います。
以下は元の回答
コードがないので推測でコメントします。
質問者さんはProcessingの基本動作、すなわち「setupは最初だけ起動される」「drawはごく短い期間中に何度も呼び出される」という点をよく把握しておられないのではないでしょうか?
void setup() { size(100, 100); } void draw() { text("hello world", 50, 50); }
drawは概ね10msecぐらいごとに何度も呼び出されます。
上のコードのように同じ内容の処理をdrawで毎回やってないでしょうか?例えば固定的な描画ならsetupで一度だけやればいいのですがそれを毎回drawでやるとそれなりのCPUを消費してしまうと思います。
上の例でしたら下のようにするのが妥当です。
void setup() { size(100, 100); text("hello world", 50, 50); } void draw() { // 特に何もしない }
追記:もう少し具体例を挙げてみます。300個ぐらいの円を描画する以下のコードを自分の環境(Windows 10 64bit)実行してみるとだいたい20%ぐらいのCPU使用率でした。
drawEllipsesをsetupで呼び出すように変えると見た目はかわらず、CPU使用率はほぼ0%になりました。
どの程度の描画でどのくらいの負荷がかかるかの実例として参考になればと思います。
int N = 300; float[] xs = new float[N]; float[] ys = new float[N]; float[] rs = new float[N]; color[] fills = new color[N]; color[] strokes = new color[N]; void setup() { size(500,500); for (int i = 0; i < N; i++) { xs[i] = random(width); ys[i] = random(height); rs[i] = 10 + random(10); fills[i] = color(random(256), random(256), random(256)); strokes[i] = color(random(256), random(256), random(256)); } } void draw() { drawEllipses(); } void drawEllipses() { fill(0); noStroke(); rect(0,0,width,height); for (int i = 0; i < N; i++) { fill(fills[i]); stroke(strokes[i]); ellipse(xs[i], ys[i], rs[i], rs[i]); } }
追記:最初つづりを間違ってdrawEllipsysとしてました。drawEllipsesに訂正しました。
お恥ずかしい限りです。orz
投稿2018/04/21 07:33
編集2018/04/21 09:22総合スコア18392
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/04/21 08:15
2018/04/21 08:20
2018/04/21 08:23
2018/04/21 08:47 編集
2018/04/21 08:42
2018/04/21 08:50
2018/04/21 09:09
2018/04/21 09:17
2018/04/21 14:13
2018/04/21 14:21