覚えたら書く

IT関係のデベロッパとして日々覚えたことを書き残したいです。twitter: @yyoshikaw

MS-DOSコマンドで処理時間を計測する

Windowsでコマンドの処理時間を計測したい場合、DOSコマンドだけだと面倒なのでPowerShellの力を借ります。


具体的には、以下のようなコマンドを実行すると処理時間を計測できます

powershell -C Measure-Command {計測したいコマンド}


たとえば以下のようにtreeコマンドの処理時間を計測してみると

powershell -C Measure-Command {tree}


処理時間が以下のように表示されます。(ミリ秒、秒、分・・・などいろんな単位で処理時間が表示されます)

Days              : 0
Hours             : 0
Minutes           : 0
Seconds           : 1
Milliseconds      : 746
Ticks             : 17464202
TotalDays         : 2.02131967592593E-05
TotalHours        : 0.000485116722222222
TotalMinutes      : 0.0291070033333333
TotalSeconds      : 1.7464202
TotalMilliseconds : 1746.4202


場合によってはミリ秒の単位でだけ処理時間を表示してほしいということがあると思います。
そのような場合は以下のように実行します

powershell -C (Measure-Command {計測したいコマンド}).TotalMilliseconds


たとえば以下のようにtreeコマンドの処理時間を計測してみると

powershell -C (Measure-Command {tree}).TotalMilliseconds


ミリ秒単位の処理時間が以下のように表示されます。

1724.2524


無事に、処理時間の計測が実現できました。

IntelliJ IDEA - Ctrl + マウスホイール操作でフォントサイズを変更できるようにする

人にソースコードを見せる時などに、IntelliJ IDEAのエディタ上のフォントをさっと大きくしたい場合があります。
以下の設定をしておくことで実現可能です。


File > Settings > Editor > General を選択し 「Change font size(Zoom) with Ctrl+Mouse Wheel」 にチェックを入れます。

f:id:nini_y:20171017125133p:plain

その後「OK」ボタンをクリックする。


これで、Ctrlキー + マウスのホイール操作 でエディタ上のフォントを大きくしたり小さくしたりできます。

MS-DOSコマンドでファイルパスからディレクトリのパスやファイル名を取得する

C:\app\SampleApp\Launcher.exe というパスがあった時に、
ファイルが存在するディレクトリのパス C:\app\SampleApp\ と ファイル名 Launcher.exe を抽出したい。という要件があった場合

これをWindowsのDOSコマンドで実現するために、

ディレクトリの抽出には以下を使用します。(以下は、 %1 のパラメータを対象としています)

%~dp1

ファイル名の抽出には以下を使用します。(以下は、 %1 のパラメータを対象としています)

%~nx1


上記のコマンドを実行するExtractPath.cmdというファイルを以下のように記述して

@echo off

echo [DirPath]:  %~dp1

echo [FileName]: %~nx1

パラメータにパスを与えて実行すると

ExtractPath.cmd C:\app\SampleApp\Launcher.exe


結果は以下のようになります。

C:\Samples\ExtractPath.cmd C:\app\SampleApp\Launcher.exe
[DirPath]:  C:\app\SampleApp\
[FileName]: Launcher.exe


実行したコマンド自体のパスの抽出

上記と同様でしかないですが、引数ではなく自分自身のコマンドのディレクトリとファイル名の抽出は

%~dp0%~nx0 で可能です。


ExtractPath2.cmdというファイルを以下のように記述して

@echo off

echo [DirPath]:  %~dp0

echo [FileName]: %~nx0

これを実行すると

ExtractPath.cmd


結果は以下のようになります。

C:\Samples\ExtractPath2.cmd
[DirPath]:  C:\Samples\
[FileName]: ExtractPath2.cmd


無事に、DOSコマンドでもファイルパスからディレクトリのパスやファイル名の抽出が実現できました。

Visual Studio Code(vscode-go)のコード補完が効かなくなる

Golangのバージョンを1.9にアップデートしたら、Visual Studio Codeでのコード補完が全く効かなくなりました。
vscode-goプラグインで問題が起こっちゃってるようです。


オートコンプリートの候補としてPANICしか出てこない謎現象が発生します。


以下の手順で gocode をアップデートして、gocode close することで解消できます。

go get -u github.com/nsf/gocode
gocode close 


これでまともな候補が表示されるようになりました。よかったよかった。

PostgreSQL - テーブルとindexのサイズを確認する

PostgreSQLでテーブルのレコード数ではなく容量(サイズ)を知りたい場合があります。
その場合には以下のSQLを実行することで各テーブルと各indexのサイズを確認できます。

select
  objectname,
  to_char(pg_relation_size(objectname::regclass), '999,999,999,999') as bytes 
from (
  select 
   tablename as objectname 
  from pg_tables 
  where schemaname = 'public'

  UNION

  select 
   indexname as objectname 
  from pg_indexes
  where schemaname = 'public'
) as objectlist

order by bytes desc;


■実行結果サンプル

       objectname       |      bytes       
------------------------+------------------
 auditlog               |       99,589,824
 sampletbl1             |          294,912
 sampletbl1_col1_idx    |          172,032
 sampletbl1_seq_idx     |           73,728
 sampletbl1_pkey        |           65,536
 master1_pkey           |           16,384
 master2_pkey           |           16,384
 sampletbl2_seq_idx     |            8,192
 sampletbl2s_pkey       |            8,192
 master1                |            8,192
 master2                |            8,192
 sampletbl2             |                0


とても便利



関連エントリ