くまりゅう日記

もっと過去の日記
[.NET | BeOS | Blender | COLLADA | fossil | mono | monotone | NPR | OpenGL | PeerCastStation | Riko | Ruby | Silverlight | TRPG | XNA | ゲーム | ゲーム作り | プログラム | | 模型]

2014-04-07

日記

急に寒くなったりもした。

晴れてたのに急に大雨が降ったりまた晴れたり雷が鳴ってみたりと面白い天気だ。

[PeerCastStation] 重い

さいきんPeerCastStationがすごくCPUをもっていくというので調べていた。

とくに最近何かそれらしいところを変更した覚えがないんだが、 聞いてると単に最近気になったというだけで開発版では前から重かったっぽい? 確実な再現方法があるわけではなく、報告もCPU使用率が上がることがあるというだけで 継続的にか瞬間的にかもわからない物がぼちぼちあって分類もできん。 よくわからんというのが正直なところ。

重いだけだと正常には動いてるしログをもらってもわかる物でもなく、再現方法もよくわからんとなれば手元でなんとか起こしてみるしかない。 で、しばらく動かしてみると500kbpsくらいのデータを受信するだけで使用率10%以上持っていくという状況が発生させられた。 でもデバッグしたりしてみるものの、特におかしいことはないですね。

再現できる状況を手元で作ろうとしてみると、PeerCastStationの1.5.3から今のバージョンに4.5Mbpsくらいのリレーを流すとやっぱり10%くらいCPU使用率を持っていくことがわかった。データ受信するだけで10%はでかいからなんとかしようと思ったんだが……。

再現できたので速くならないかいろいろ試してみたんだがよくわからん。データ受信する間隔を適当に空けて一度にたくさんのデータ受信ができるようにしたら速くなったり(ちょっと不思議だがまあまだ理解できる)、一度に沢山のデータを受信したら今度は受信したデータを処理するスレッドが逆に重くなって20%くらいの使用率になったりした。流量は変わってないんだから単位時間に処理するデータ量は同じで重くなる理由がわからんのだけど?

コードを見直しても重くなりそうなところはほとんど見当たらないのも困った。こうなるとC#で書いてるから遅いとかいう話になりそうだが、しかしC#はそんなに遅くないはずだ。

土曜日はここでよくわからなくなったので寝たんだが、日曜に起きてからまた続きをやってみるとなんか軽い。CPU使用率が1%くらいになってる。コードはいじってたところほとんど元に戻したんだけどな。 前日と何が違うのかしばらく考えてたんだが、バンダイチャンネルでアニメ見ながら作業してるんだった。 そっか、アニメ見てると軽くなるんだね!

って、そんなわけないだろ!ここでようやくCPUのクロックに思い当たった。 クロック変動とか余裕でしてるし、そんな軽い負荷かけてCPU使用率見ても意味ないじゃん! バンダイチャンネルはやたらと重いのでアニメ見てるとCPUクロックが上がって、PeerCastStationのCPU使用率が相対的に下がったんですね。

ARROWS TabのAtomだとタスクマネージャで現在のクロックが表示されるんだが、デスクトップマシンで使ってるKaveriだと変動表示してくれなくて常に3.7GHz弱を指している。てなもんですっかりクロック変動を忘れてたんだけど、変動しないわけないしなー。 あと普通重いだとかいう話をする場合はCPUを100%使ってなお時間がかかる場合なので、軽いけど使いすぎでねーのなんてのを調べるのは初めてだった。

Kaveriの現クロックを表示できそうなCPU-Zを落としてきてみると、いつもは1.7GHz弱になっててウィンドウ動かしただけでもちょくちょく上がるのを確認できた。1コア分しか表示されないのでこれがどれだけ正確なのかというと謎だが、まあ上がってんのか否かが分かるだけでも十分だ。

あらためてCPU使用率をクロックと合わせて見てみると、10%くらいにまで使用率が上がる時はクロックも最低の1.7GHz弱で張り付いてる。やっぱりねー。 なんか動画でも再生させてみるとクロックが3GHzくらいまで上がって、PeerCastStationの使用率は相対的に下がって1%前後になる。 今まで調べてた軽いだの重いだのは使用率だけ見てその時点のCPUクロックがわからないから完全に無駄だったわけだな。 最初からやり直しだ……。

こうなると貰ってる報告もどこからどこまであてになるかわからん。 安定版より重そうってのはそうなのかなぁとも思うし、比較すればすぐわかるんだが、 それ以外にもやたらと重い状況ってのがあるかどうかだ。 やたらと重いとは言えなくとも個人的には1.7Ghzで10%てのは思ったより重いので単純に下げられないか試すのはいいけどな。 でも普通にデータ受け取ってパースする以上のことやってないから軽くするあてもないんだよなぁ。

最近のCPUは省電力機能が発達してるから、CPUクロック表示もどの程度あてになるかわからんなー。 CPUの単位時間あたり電力消費量(現在値)とか取れれば比較しやすいんだけど無理だろうか。


ページのトップへ | トップ «前の日記(2014-03-31) 最新 次の日記(2014-04-22)» | 編集 | kumaryu.net by kumaryu