トップページ > プログラム > 2015年08月26日 > g32nt69a

書き込み順位&時間帯一覧

21 位/150 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000001000110000003



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
Perlについての質問箱 64箱目 [転載禁止]©2ch.net
【最強CUI】PowerShell -Part 1

書き込みレス一覧

Perlについての質問箱 64箱目 [転載禁止]©2ch.net
365 :デフォルトの名無しさん[sage]:2015/08/26(水) 12:19:13.34 ID:g32nt69a
# 以下の記述があからさまに遅いです。(Perlのループ自体が遅いです)
# なにか速くなる方法のご提案があればよろしくお願いします。
# 普段、楽な記述を優先させているため、速くするための妥当な記述がよくわかりません。(何をやってもどうでもいいから速くするならいろいろ手はあるのですが)
# あとおそらく意図した通りに動いてるとは思いますが、これはあからさまに違うだろってのがもしあれば、お願いします。
# なお、pack_widget_all は何度も呼び出されるほか、一度の呼び出しでの出力量が2万行前後です。
#--------------------------------------------
open G_OUT, ">", "g_out.txt";
sub out_print{
while(my $line = shift @::out){
print G_OUT $line . "\n"; #デバッグ用。あまりに大量送信されるので不要な時は消しておく。
print $line . "\n";
}
}

{
#▼%::widgetが保持してるものを成型して送信
my %back; #前回と同じデータを再出力しないための記憶 (受信側が、同じ物と違う物の区別を付けずに全く同じ処理をやり直してしまうため)。
sub pack_widget_all {
foreach my $name (keys %::widget){
foreach my $name2 (keys %{ $::widget{$name}->[1] }){
my $back = join ',', @{ $::widget{$name}->[1]->{$name2} };
next if($back{$name}->{$name2} eq $back); #; 前回と同じ物は再出力しない
$back{$name}->{$name2} = $back;
push @::out, (join ',', $name2, $::widget{$name}->[0], $back);
out_print; #受信側の都合上、小刻みに何度も出力したほうが速かった。perl側やこの質問には関係ない
}
}
push @::out, "pack_widget";
out_print;
}
}
Perlについての質問箱 64箱目 [転載禁止]©2ch.net
369 :デフォルトの名無しさん[sage]:2015/08/26(水) 16:34:24.56 ID:g32nt69a
our 使えばそのまま動くけど、
ベンチが遅くなったので無理でごわすです。
(たしか最速が名前付きのグローバル変数だったと思うけど、カレント空間名は一度しか参照されないのでループによる遅延はないはず。この辺記憶あいまい)

>>368 すみませんが違うです…
それはバグ出るです
【最強CUI】PowerShell -Part 1
447 :デフォルトの名無しさん[sage]:2015/08/26(水) 17:18:58.18 ID:g32nt69a
まぁ本業じゃなければ形として完成させることに満足する人はいっぱいいるから。
プログラムが本業で本は趣味で、さらに趣味で利益なく何かプログラムしているとか、そんな人はいっぱいいるだろう。
と適当なことを書いてみた


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。