Elephant Stress (ストレス象さん)
Elephant Stressはシステム(特にCPU)に負荷を掛ける事でアプリケーション開発に役立てる開発用ツールです。
簡易なベンチマークとしても活用できるかと思います。WUの数値が大きい程、CPUの速度が早いことを示します。特にMulticoreを搭載している場合、数値がほぼ倍の値が計測されるので気分がいいです
=)。

Twitter経由にて対応中。何が不具合・要望があればお気軽にどうぞ。
Android Market : https://market.android.com/details?id=com.synchack.android.elephantstress
動作
- Stressを有効にするとMD5を計算するThreadを立ち上げ、CPU時間を吸い上げます
パフォーマンス泥棒なので通常で使うツールではないです。あくまで開発用途、時々CPU計測。
- WU(WorkUnit)とは、1MBの空データのハッシュを計算する作業の単位です
例えば75WUの場合、1秒間に1MBのハッシュ計算を75回こなしたことになります。
- 画面には1秒間にこなしたWU数を表示しています
WUの数が多ければ多いほどCPUの性能が高いことを示します。メモリは殆ど使用しません。
- 標準設定ではハッシュアルゴリズムは「MD5」、立ち上げるThread数を「4」にしています
設定はメニューから変更可能です。MD5の他に、SHA-1等も使用可能です。
- Multicore CPUでは素直に良い数値が得られます
Threadを複数立ち上げていますので効率よくCPU時間を吸い上げています =)。MulticoreでThreadが1つしか動作しない場合、CPUの内、1つしかStressが掛かりません。
- Source code付き
SyncHack/ElephantStress - GitHub
計測
| |
MD5 |
SHA-1 |
SHA-224 |
SHA-256 |
SHA-384 |
SHA-512 |
| HT-03A (1.6) |
12.0 |
0.289 |
8.101 |
8.018 |
0.105 |
0.111 |
| Nexus One (2.3.4) |
75.5 |
50.2 |
- |
33.6 |
18.0 |
18.0 |
| Nexus S (2.3.4) |
95.8 |
51.6 |
- |
35.8 |
21.6 |
21.5 |
| XOOM (3.1) |
203.0 |
119.3 |
- |
79.7 |
38.9 |
38.8 |
HT-03AのSHA関連が遅いのはどうしてなんでしょうね。Nativeで作られていないのかしら。SHA-224ってなあに?
XOOMは流石Dual-core。単純にNexus Sの速度が倍になっている。時折、終了直後の動作が重くなるのだがこれはOSのチューニング不足なんだろうか。、よく分からない。
| |
Thread(1) |
Thread(2) |
Thread(4) |
Thread(8) |
Thread(16) |
| XOOM (Dual-core, 1GHz) |
103.0 |
203.8 |
203.3 |
202.3 |
203.7 |
想定通り =)。
理論的には、Dual-coreなのでThreadを2つ立てた状態がもっとも高パフォーマンスかと。
雑談
アプリがバックに回ると全然Stressが加わんないYO!
実の所、結構な企画倒れでございまして期待していた動作と随分イメージが変わってしまいましたorz。
このツールは、システムのCPU使用時間を奪うことで、他のアプリの実行タイミングが遅くなり、思わぬバグを見つけるというのが当初の目的でした。ところがAndroidでは、前面に実行されるアプリに対して積極的にCPU時間の割り当てを行っているようです。常にシステムのCPU時間を吸い上げられるかと思いきや、バックに回ったり他のアプリケーションが前面に出てくると途端にCPU時間が他のアプリに持っていかれます。
TOPコマンドによる観察では以下のような様子でした。
- 前面で実行した場合「95%」
CPU時間の殆どを奪うことが出来ました =)。自分自身のバグ潰しには役に立ちました。残りの5%は入力系と表示系の予備に割り当てられているのだと思います。この状態で画面タッチをグリグリしたりするとCPU時間が入力系に殆ど持っていかれます。
- バックに回った場合「80~85%」
ホームボタンを押した直後の状態で大体80~85%程度の使用率になるようです。wallpaperにCPU使用率の10%程度を奪われているようです。
- 他のアプリが前面に出た場合「5~20%」
ブラウザを立ち上げてみて観察してみました。画面表示やデータ取得等のCPUが必要なタイミングで積極的にCPU時間が割り当てられ、Elephant
Stressにはその残りの数%が割り当てられるに過ぎませんでした。システム全体としては98%前後のCPU使用率となっています。
- 前面で実行しパワーボタンで表示をOffにした場合「98%」
このパターンが最もCPU使用率を吸い上げることが出来ました。画面処理に3%のCPU時間を予約しているのでしょう。このままの状態を続けると一定時間でシステムがdeep
sleepしてしまいます =)。
バックに回されると他のアプリに対してStressが加わらず実に詰まらない。niceが欲しい!
何故に「ストレス象さん」?
昔、WindowsのPlatform SDKかResource Kitにストレスを加えるツールがあったのよ。そのツールのアイコンが象だったんで、あのツールのことを「ストレス象さん」って言ってたのよ。それを思い出して命名しました
=)。
Evernoteとは関係無いYO!
TODO
- Core数の判定
Core数が分かっていないので、CPUUsageが倍付けになって格好悪し。TOPでやるのは嫌だ。/proc/statでなんとかしようかな。
- Zip圧縮・展開の計測機能
ハッシュですら無いw。
History
- 0.2.0 : 12.03.18 - Display CPU Clock, and supported Actionbarsherlock.
- 0.1.0 : 11.07.18 -
初号機。
Copyright (c) 2011 Makoto NARA (Mc.N), All rights reserved.