こんにちは。エクセルソフトの田淵です。
Visual Studio の Android プロジェクトで CPU 利用率が高くなる件ですが、
2015/2/26 に Beta チャンネルでリリースされた Xamarin for VS 3.9.344 と Xamarin Studio 5.7.2.7 で直りました!!!!!
Fixed Bug 26122 - Debugging Android project causes real time antivirus to spike CPU
いやいや、良かった。昨日ノマドで資料作ってたら MacBookAir のバッテリーがものの 1時間半で残り 10% まで減りましたからねw CPU 静かなの大事ですねw
以上です。
気になった点がありますので、エントリー書きます。 Visual Studio で Xamarin.Android のプロジェクトを作成すると、Java のプロセスが 3秒~5秒に一回くらい立ち上がって消える。というのを繰り返し、CPU 利用率が上がってしまいます。
次期バージョンで直るみたいですので、アップデートを待ちたいと思います。良かった!
@ytabuchi XVS 3.10で直るらしいです
— Atsushi Eno (@atsushieno) 2015, 2月 12
定期的にプロセスが立ち上がり重くなる
環境:Windows 8.1 Update / Visual Studio 2013 Update 4 / Xamarin 3.9.289.0 / Xamarin.Android 4.20.0.34 / Xamarin.iOS 8.6.1.0 です。
2015/2/12 現在の Stable/Beta 最新版です。(たまたまですが現在は Stable も Beta も同じバージョンのようです。)
こんな感じ
1個目の矢印が Visual Studio 起動時で、2個めの矢印が Visual Studio 再起動して Console プロジェクトを起動したところです。
Xamarin Studio だと問題ありません。iOS プロジェクトでも問題ありませんでした。
直接何か問題が発生するということはないのですが、ちょっと気になりますね。(特にこの画面写真を撮ったマシンが X220 で Core i5 2450M (2.5GHz) の 2 コア 4スレッド なので利用率が 100% 近くになってしまいます。別の Core i7 4コア 8スレッドのマシンでは 25% くらいまでしか利用率は上がりませんでした。)
何をしているの?
facebook で Process Explorer で調べると良いよと教えていただいたので、実行パラメーターなどを取得してみました。
java と cmd のパラメーターが以下です。
"C:\PROGRA~1\Java\JDK17~1.0_7\bin\java.exe " "-Dcom.android.sdkmanager.toolsdir=D:\_dev\Android\sdk\tools" "-Dcom.android.sdkmanager.workdir=C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE" -classpath "lib\sdkmanager.jar;lib\swtmenubar.jar;lib\x86_64\swt.jar" com.android.sdkmanager.Main list avd
C:\Windows\system32\cmd.exe /c ""D:\_dev\Android\sdk\tools\android.bat" list avd"
これを見る限り、avd のリストを取得しているようです。ちなみに普通に android.bat list avd
を叩くと
Available Android Virtual Devices: Name: ARM_Lollipop Device: SmartPhone (User) Path: D:\_dev\Android\.android\avd\ARM_Lollipop.avd Target: Android 5.0.1 (API level 21) Tag/ABI: default/armeabi-v7a Skin: 720x1280 Sdcard: 64M --------- Name: x86_4.4.2_19 Device: SmartPhone (User) Path: D:\_dev\Android\.android\avd\x86_4.4.2_19.avd Target: Android 4.4.2 (API level 19) Tag/ABI: default/x86 Skin: 720x1280 Sdcard: 64M --------- Name: x86_Lollipop Device: SmartPhone (User) Path: D:\_dev\Android\.android\avd\x86_Lollipop.avd Target: Android 5.0.1 (API level 21) Tag/ABI: default/x86 Skin: 720x1280 Sdcard: 64M --------- Name: x86_Wear_20 Device: wear_square (Google) Path: D:\_dev\Android\.android\avd\x86_Wear_20.avd Target: Android 4.4W.2 (API level 20) Tag/ABI: android-wear/x86 Skin: AndroidWearSquare
と帰ってきました。VS のデバッグのデバイス一覧をアップデートしていると思われますが、ちょっと短期間すぎますよね。
Xamarin から何か回答があればアップデートします。また、情報をお持ちの方がいらっしゃれば教えてください。
Xamarin 気になった方は
是非 ダウンロード(直接) / ダウンロード(弊社経由) して触ってみてください。 学習用リソース や JXUG リンクページ に参考資料を纏めてますので併せてどうぞ。
以上です。