読者です 読者をやめる 読者になる 読者になる

Xamarin 日本語情報

Xamarin(ザマリン) の代理店だったエクセルソフト田淵のブログです。主に Xamarin に関するエントリーをアップしていきます。(なるべく正しい有益な情報を掲載していきたいと考えていますが、このブログのエントリーは所属組織の公式見解ではありませんのでご注意ください)

【修正されました】 Visual Studio の Android プロジェクトで CPU 利用率が高くなる件

こんにちは。エクセルソフトの田淵です。

Visual StudioAndroid プロジェクトで 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

f:id:ytabuchi:20150226114932p:plain

いやいや、良かった。昨日ノマドで資料作ってたら MacBookAir のバッテリーがものの 1時間半で残り 10% まで減りましたからねw CPU 静かなの大事ですねw

以上です。













気になった点がありますので、エントリー書きます。 Visual Studio で Xamarin.Android のプロジェクトを作成すると、Java のプロセスが 3秒~5秒に一回くらい立ち上がって消える。というのを繰り返し、CPU 利用率が上がってしまいます。

次期バージョンで直るみたいですので、アップデートを待ちたいと思います。良かった!

定期的にプロセスが立ち上がり重くなる

環境: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 も同じバージョンのようです。)

f:id:ytabuchi:20150212150301p:plain
こんな感じ

f:id:ytabuchi:20150212150641p:plain
1個目の矢印が Visual Studio 起動時で、2個めの矢印が Visual Studio 再起動して Console プロジェクトを起動したところです。

f:id:ytabuchi:20150212150940p:plain
Xamarin Studio だと問題ありません。iOS プロジェクトでも問題ありませんでした。

直接何か問題が発生するということはないのですが、ちょっと気になりますね。(特にこの画面写真を撮ったマシンが X220 で Core i5 2450M (2.5GHz) の 2 コア 4スレッド なので利用率が 100% 近くになってしまいます。別の Core i7 4コア 8スレッドのマシンでは 25% くらいまでしか利用率は上がりませんでした。)

何をしているの?

facebookProcess 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 リンクページ に参考資料を纏めてますので併せてどうぞ。

以上です。