ラベル タスク の投稿を表示しています。 すべての投稿を表示
ラベル タスク の投稿を表示しています。 すべての投稿を表示

2011年12月24日土曜日

Windows で特定のアプリケーションのメモリ使用量を監視する - コマンドラインの tasklist とバッチファイル、Ruby を利用

1. 特定のアプリケーションのメモリの使用状況を手軽に把握したい

アドオンをたくさんインストールした状態で、Firefox を使っていると、メモリを大量に消費する。メモリの消費量が増えると、動作が緩慢になるので、メモリの使用状況を、逐次、確認しておきたい。

Firefox には、メモリの使用状況を表示してくれるアドオンがある。

また、メモリの状況を把握するなら、タスクマネージャを起動すれば良い。Process Lasso のようなプロセスを監視するアプリケーションにも、メモリの使用状況が、細かく表示される。

しかし、一つアプリケーションのメモリの使用状況だけを、監視したい目的には大げさすぎる。もっと、小さなウィンドウで表示させておきたい。

Firefox 以外のアプリケーションでも利用できるように、コマンドラインを利用することにした。

 

2. tasklist でタスクの状態を把握する

Windows のコマンドラインで、タスク一覧を表示させるコマンドは、

talklist

一覧の中から、特定のアプリケーションだけを表示させたい。

例えば、firefox だけを表示させたい場合、

/fi オプション

により、次のように指定する。

tasklist /fi "imagename eq firefox.exe"

書式については、help tasklist を参照。

コマンドを実行した結果は、以下のようになった。

イメージ名      PID セッション名     セッション# メモリ使用量
============= ======== ============= =========== ============
firefox.exe   9048 Console   1  1,003,824 K

プロセスの ID で抽出したい場合は、tasklist で一覧した後、目的の PID を覚えておく。

例えば、PID が 9048 の場合、次のようにコマンドを入力すれば良い。

tasklist /fi "PID eq 9048"

 

3. バッチファイルで定期的にコマンドを実行

1秒おきに、メモリの使用量を表示させたい場合、以下の内容のバッチファイル (task.bat) を作成し、実行。

@echo off
:LOOP
	tasklist /fi "imagename eq firefox.exe"
	sleep 1
	cls
goto :LOOP

 

4. Ruby のキャリッジリターンを使い、表示のチラツキを抑える

ただし、上記の方法では、更新されるたびに、画面がちらつく。

これに対処するためには、Ruby 初心者スレッド Part 46 - READ2CH によると、

176 + 1:デフォルトの名無しさん[sage] 2011/10/16(日) 21:39:16.43
clsはWindowsのcmd.exeのコマンドじゃまいか
一行だけクリアすればいいのなら
 
loop { print Time.now; sleep 1; print "\r" }
 
とかできるけど、数行とかそれ以上のことがしたいなら
Ruby向けのライブラリを探すかWindowsのコンソール用のAPIを
使うはめになるんじゃないだろうか

print メソッドにおける “\r” は、バックスラッシュ記法 によると、

\r

キャリッジリターン(0x0d)

キャリッジ・リターン - Wikipedia とは、

キャリッジ・リターン(carriage return)は本来、テレタイプ端末Baudot Code における制御文字を指す用語で、行末から行頭に戻す復帰コードであって、改行コードを含まない。…

コンピューティングでは、キャリッジ・リターン (CR) はASCIIUnicodeEBCDICにおける制御文字の一種で、プリンターまたは何らかの表示装置にカーソルを同一行の先頭位置に移動させる意味を持つ。

Ruby で、コマンドを実行するには、

コマンド出力 

バッククォート(`)で囲まれた文字列は、ダブルクォートで囲まれた文字列と同様にバックスラッシュ記法 の解釈と式展開 が行なわれた後、コマンドとして実行され、その標準出力が文字列として与えられます。

RubyInstaller for Windows などで、Ruby がインストール済みだとする。以下の内容を task.rb として、実行。

loop do 
    lines = `tasklist /fi "imagename eq firefox.exe "`.split("\n")
    line = lines[3].split
    print "#{line[0]}: #{line[4]}"
    sleep 1
    print "\r"
end

実行した後、ウィンドウの大きさを小さくしした。

img_0020

常にウィンドウを前面に表示し、監視するには、Dexpot を使いウィンドウを全面に表示させる機能を利用した。

 

参考サイト

2009年10月20日火曜日

ウィンドウを切り替える「窓替え」で Migemo を使う

タスク切り替えユーティリティ「窓替え」を見やすい設定に」の続き。

 

Migemo

Migemo はローマ字のまま日本語をインクリメンタル検索するためのツールです。

(Migemo より)

Firefox でもアドオンを使って利用。

 

窓替えの設定

窓替え」でも Migemo を使うための設定があったのでこれを使うことに。なぜなら、たくさんのウィンドウを開いていると、目で見て探すのが負担になるため。(+_+) 検索した方が余程早い。それに Migemo が使えるなら言うことなし。

以下、窓替えのある C:\Program Files\madokae_XXXXX フォルダ内の「readme.txt」の 「9.2. Migemoを使ったインクリメンタルサーチ」を見て設定した。

 

インストール

以下をダウンロードして解凍。

C:\Program Files\madokae_XXXXX フォルダ内に必要なものを置く。

091020-004

 

Migemo の利用

タスクトレイ > 窓替え > オプション > 窓替えの設定 > その他 > Migemo において、「Migemo を使用する」にチェック。すぐに Migemo での検索がされるように「閾値」を 1 に設定。

091020-001

 

窓替え起動と同時に Migemo による検索

これまでは Alt + Q で窓替えを起動するようにしてたけれど、起動と同時に Migemo で検索したい。

窓替えの設定 > ユーザーインタフェース > ホットキー において、「タスクトレイ入れる/出す|アクティブにする」のホットキーをクリアし、代わりに「I-searchモードでアクティブにする」に Alt + Q を割り当てた。

091020-002

 

Emacs ライクな移動

ユーザーインタフェース > ショートカットキーの設定を見たら、カーソルの移動にショートカットが付いていた。デフォルトで Meadow と同じ操作なのでこのままにしておく。これでカーソルまで手を伸ばす手間が省ける。 ^^

091020-003

 

インクリメンタルサーチ をした後、移動

例えば、「切り替えたいウィンドウの名前が思い出せないけれど、explorer のウィンドウのいずれか」を表示させたい場合、

  1. `exp’ で Migemo によるインクリメンタルサーチ
  2. Ctrl + N などで移動

によって素早く切り替えることができる。

カーソルの移動をした後は、インクリメンタルサーチモードが終了するので、ウィンドウ名の先頭についている英字を押すことによってアクティブにできる。

2009年9月27日日曜日

タスク切り替えユーティリティ「窓替え」を見やすい設定に

B0028AEE6QPC の画面が小さいので仮想デスクトップを使っていたけれど、最近全然使っていない。そうすると必然的に見える範囲でウィンドウを切り替えるか、タスクバー、もしくは、Alt + Tab で切り替える羽目に。しかし、たくさんアプリを起動しているので結構大変。 (+_+) あぁ~、でかいモニタ欲しい。。

それにしても、標準のタスク切り替えの Alt + Tab は使いにくい。直前に使っていたものに切り替えるのには都合がいいけれど。bb4win_mod を使っていたときに利用していた 窓替え をまた使うことにしよう。

 

表示を大きく

デフォルトの設定ままでは字が小さくて視認性が良くないので設定を変更。

タスクトレイにある「窓替え」を右クリック > 「オプション」 を選択。

設定画面の「表示 > リスト」 のフォントを メイリオ してサイズを 10pt に変更。

090927-003.png

 

これだと Alt + Q で表示させる窓替えの横幅広すぎるので、「表示> ウィンドウ > ウィンドウスタイル」の横幅を 500 ピクセルに設定。

090927-004.png

 

関連記事

2008年2月22日金曜日

タスクに対する優先順位の付け方 - どれもが同じくらいに見えて、手を付けられないとき

1. どのタスクを選択して行えば良いのか分からない

緊急にやることがなくて、今一、何から手をつけていいかわからない。

どのタスクからこなそうか?いずれの課題も、重要度が同じように見える。

どれでもいいから順番に一つづつ処理していけば良いと思える。しかし、そう思えるからこそ、逆に選択できない。 (@_@;)

 

2. 評価方法

このような状況のとき、次の 4 つの基準を、5 段階で、素早く・直観的に評価して、意思決定を行なっている。

  1. 重要度
  2. すぐにできるか
  3. リスク
  4. 成果

5 段階評価の内容は、次の通り。例えば、重要度を1点から5点で評価する場合、

  • 5 : とても重要だ
  • 4 : やや重要だ
  • 3 : どちらとも言えない
  • 2 : あまり重要ではない
  • 1 : 重要でない

重要度以外の基準も、上記と同様につける。

`3’ が「どちらでもない」というように、点数が真ん中に来るようにすればよい。

計算が面倒だと感じたら、3 段階評価にする。

 

3. 評価基準

  1. 重要度」: 自分が、どのくらいそのタスクを重要だと思うか直感的に判断する。
  2. すぐにできるか」: タスクの複雑性を問題にしている。簡単な作業から手を付けるための基準。
  3. リスク」: タスクを処理しなかった場合、どのような面倒なことが生じるか?で判断する。
  4. 成果」は、ちょっと曖昧な評価基準。
  • そのタスクをこなした場合、どのくらいの報酬が得られるか?
  • どのくらい達成感を得られるか?
  • プロジェクト全体に対して、そのタスクできた場合、どのくらい良い影響を与えるか?

というようなところから評定する。

 

4. 計算方法

各タスクごとに評価をしたら、評定値をかけ算して得点を出す。そして、得点の高いものから順に消化していく。

評価値を「かけ算」にした理由は、足し算するよりも、点数がハッキリとバラつくので判断しやすいため。

「得点を変換」の列は、得点を 0 ~ 1 の間になるように、

得点 / 最大の得点

を計算する。

もし、4項目全てに答えるのが難しい場合、「成果」を省くことにしている。