- 【最強CUI】PowerShell -Part 1
450 :デフォルトの名無しさん[sage]:2015/08/26(水) 18:42:05.99 ID:rtOTeoRp - そんな部門があるのか
|
- Perlについての質問箱 64箱目 [転載禁止]©2ch.net
370 :デフォルトの名無しさん[sage]:2015/08/26(水) 19:11:52.55 ID:rtOTeoRp - >>369
myは使わないほうがいい。 ベンチは取ってないけど、keysは使わずに、シミュレートしたほうがいいかもしれない $array[n*2]。 もし$::widget{$name}->[1]->{$name2}が指すリファレンスが変わらないことが保証されるならば、 $back{$address} = $value もまた保証される。 そうでないのなら、今までのコードと同じでなければならない。 実行環境に最新に近いPerlが保証されるのならば、%backはクロージャでなくとも構わない。が、これで速くなる量はほぼ0だろう。 ourを使わないのは正解。丁寧な形式から乱雑なourに直す必要はない。ただしmod_perlなどコンパイルが自動維持されない場合に限る。 ちな動作が速い順序 $main::aaa > $::aaa >>>>> ourした$aaa >= localした$aaa > stateした$aaa >> myした$aaa > 宣言なし$aaa 関数外の変更が可能であるならば、どこが変更された可能性があるのかと言う基準で%::widgetの種類を分ける。 その際、可読性や保守性ではなく変更の可能性がある場所で区分けする。 または、変更が加えられた際、その場でそれを知ることが出来るのが最も望ましい。 その際、オブジェクト指向を利用しても良いが、クロージャが好きならそれでも構わない。 ただし、既存の記述の代入は、全て関数の呼び出しに書き換える必要がある。 保守性が失われても良いのなら、pack_widget_allの先頭で最初に一度だけout_printを呼び、pack_widget_all内では直接printを記述する。 これで@::outの順位性が崩れることはないはず。ただしタイミングも厳格に同期させている場合はだめ。 unix系であればforkする。これは速い。 その関数だけ見た結論としては、関数内の最適化では難しいように思う。 あと保守性と可読性を重視しすぎ、記述に楽をしすぎ、に感じる。 もしかして、なんでも%::widgetにスタックして、あとから自動判別させればいい、と考えてはいないだろうか? 楽をしたり保守性を考えなければ、60秒が5秒に縮まるのもよくあることよ。 あと、出力行数よりも、$nameのと$name2の量比率を。 もし互換性について間違ってても保証はしない。 むしろこうゆうのを考えるマニアがよくいるので、そうゆうのが出て来るまで待て
|
- Perlについての質問箱 64箱目 [転載禁止]©2ch.net
372 :デフォルトの名無しさん[sage]:2015/08/26(水) 20:52:40.93 ID:rtOTeoRp - それはない
|
- Perlについての質問箱 64箱目 [転載禁止]©2ch.net
374 :デフォルトの名無しさん[sage]:2015/08/26(水) 22:10:15.12 ID:rtOTeoRp - myとtateとourは書式は似てるけど別物だからそのベンチマークでは意味ないかもね
まあ遅いのはそこじゃないと思うが
|
- Perlについての質問箱 64箱目 [転載禁止]©2ch.net
376 :デフォルトの名無しさん[sage]:2015/08/26(水) 23:15:23.15 ID:rtOTeoRp - 何と戦ってるんだ?
君はずいぶん無意味なコードばかり書いてホルホルしてそうだね。推定だけど。 こっちゃ君に用はないよ
|