アニメ『Charlotte』(シャーロット)(2015)
特殊能力を持つ高校生たちが悩みます。一話目から主人公悪い奴だったので、期待して見ていたのですが、だんだん良い奴になってきました。
やはり、パワーを手にいれてたら普通の人間は、良くないことに使うような気がしまうので、主人公はダークな方が共感できます。
特殊能力の中で最強なのは、能力のコピーでしょうか。奥義、水影心で、一度戦った相手の拳法が使えるようになってしまう、北斗神拳のケンシロウのように、コピースキルってずるくて最強です。
ケンシロウは、強いのにぜんぜんダークじゃないですね。ストイックなところに憧れます。
コピースキルということで、コピーの方法いろいろです。
まずは普通のコピー、cpコマンドから。
takk~$ echo AAAAA>a takk~$ cat a AAAAA takk~$ cp a b takk~$ cat b AAAAA
リダイレクトでコピー。
takk~$ rm b takk~$ cat a > b takk~$ cat b AAAAA
ddコマンドでコピー。
takk~$ rm b takk~$ dd if=a of=b bs=1 count=6 6+0 レコード入力 6+0 レコード出力 6 バイト (6 B) コピーされました、 0.000385437 秒、 15.6 kB/秒 takk~$ cat b AAAAA takk~$
perlでコピー
takk~$ time perl -e'open(IN,"<a");open(OUT,">b");while(<IN>){print OUT $_};' takk~$ cat b AAAAA takk~$
それぞれのコピー時間を確認してみましょう。
比較しやすくするためファイルサイズを大きくしてみます。
ddコマンドでオール0の1MByteのファイルaを作成します。
takk~$ rm * takk~$ dd if=/dev/zero of=a bs=1 count=1M 1048576+0 レコード入力 1048576+0 レコード出力 1048576 バイト (1.0 MB) コピーされました、 1.51342 秒、 693 kB/秒 takk~$
まずはcpコマンドの測定から。
takk~$ time cp a b real 0m0.005s user 0m0.000s sys 0m0.004s takk~$
リダイレクト。
takk~$ rm b takk~$ time cat a > b real 0m0.004s user 0m0.000s sys 0m0.000s takk~$
perl。
takk~$ rm b takk~$ time perl -e'open(IN,"<a");open(OUT,">b");while(<IN>){print OUT $_};' real 0m0.008s user 0m0.000s sys 0m0.004s takk~$
最後にddコマンド。
takk~$ rm b takk~$ time dd if=a of=b bs=1 count=1M 1048576+0 レコード入力 1048576+0 レコード出力 1048576 バイト (1.0 MB) コピーされました、 1.65015 秒、 635 kB/秒 real 0m1.652s user 0m0.096s sys 0m1.552s takk~$
まとめると、
cp 0.005s
catからリダイレクト 0.004s
perl 0.008s
dd 1.652s
ddコマンドは遅いようです。
オール0のファイルの生成もddは1.5sかかっていましたが、perlでやると、
takk~$ time perl -e'open(FH,">a");for($i=0;$i<1024*1024;$i++){ print FH "\0"} close(FH)' real 0m0.183s user 0m0.180s sys 0m0.000s takk~$
0.183sです。
さらに、openを使う必要もないので、
takk~$ time perl -e'for($i=0;$i<1024*1024;$i++){print "\0"}' > a real 0m0.133s user 0m0.132s sys 0m0.000s takk~$
もっと早くなりました。
物の上手って最初はどれだけモノマネできるかだと思います。まずは、モノマネして、上手くできるようになったら、自分流に改良していくってやり方が、手っ取り早くスキルアップする方法かと思います。
コメント