[過去ログ] awkについて語るスレ $2 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
795(2): デフォルトの名無しさん [] 2016/09/14(水)00:22 ID:YCeX8Gov(1/3)
同じじゃないぞ。数値と文字列だ。
ところで、君が使ってる awk はどれ?
apropos awk
ってやってみたら、こんなん出てきた。
gawk (1) - パターン検索・処理言語
igawk (1) - インクルードファイルを使う gawk
a2p (1) - Awk to Perl translator
awk (1) - pattern scanning and text processing language
English (3perl) - use nice English (or awk) names for ugly punctuation v...
mawk (1) - pattern scanning and text processing language
nawk (1) - pattern scanning and text processing language
796(1): デフォルトの名無しさん [] 2016/09/14(水)22:01 ID:DqYC5LBT(1)
>>795
例が悪くてスマソ、Cygwin上でgawk4.1.4使って
for(i=1;i<=1000000;i++){a[i]="1"}
と
for(i=1;i<=1000000;i++){a[i]=sprintf("1")}
でループ脱出直後のメモリ使用量を比較すると
上が60MBytes、下が600MBytesとかになった
cmdで動くgawkの3.1.7でも同じような差がでた
Linuxは試していないけど、もし大丈夫ならWindows版の問題かも
798: 795 [] 2016/09/14(水)23:40 ID:YCeX8Gov(2/3)
やってみたよ。環境は Debian jessie。
テストプログラム
#!/usr/bin/perl -w
use strict;
{
my $do_ps = 'system("ps p $PPID o pid,sz,args")';
foreach ( 1,'sprintf("1")'){
system('gawk',"BEGIN { for(i=1;i<=1000000;i++){a[i]=$_} $do_ps;}");
}
}
実行結果
PID SZ COMMAND
7389 7693 gawk BEGIN { for(i=1;i<=1000000;i++){a[i]=1} system("ps p $PPID o pid,sz,args");}
PID SZ COMMAND
7392 158116 gawk BEGIN { for(i=1;i<=1000000;i++){a[i]=sprintf("1")} system("ps p $PPID o pid,sz,args");}
KB 単位らしいから 8MB と 160MB 。ただごとじゃない差だね。
1 を "1" に変更してもこんな感じだから数値と文字列の差というわけではなさそう。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.043s