よろずなブログ?
このブログにある、マジックの動画や、ペン回しの動画、ピアノの音声、動画などはホームページのほうにもだいたいまとめてあります。

2009年12月29日

マジック コイン







自分へのクリスマスプレゼントということでマジックのコインと欲しかったDVDを買ってしまいました。


まずワンダラー5枚です
one.JPG
アイゼンハワー呼ばれているアメリカの1ドルコインです。


後もう一つチャイニーズコインを買いました。
Chinese coin.JPG



シルバーイーグルと比べると全然軽く、滑りやすく使い勝手が全然違いました。
マジックよって使い分けたいですね。


ホームページ





posted by みんつ at 17:39 | Comment(1) | マジック | このブログの読者になる | 更新情報をチェックする

2009年12月25日

アセンブリ 速度比較




前回に続きインラインアセンブラを使ってみました。

今回は速度を比較してみました。
速度の計測方法がこれで正しいのかわからないけど

比較に使ったのはa=a+1という単純な加算これを1000000000回繰り返した時にかかった時間を計測しました。

↑のコードでかかった時間は(5回実行しその平均)
2.6318秒

次に上のコードのfor文のところを

として実行しました
結果は
2.6370秒

a=a+1と書いた場合も2.6318秒だったのでほとんど速度に差はありませんでした。

アセンブラで書いたのに早くならないじゃん!と思いましたが
a=a+1の時にコンパイラが出力したアセンブリのコードを見ると
mov eax, DWORD PTR _a$[ebp]
add eax, 1
mov DWORD PTR _a$[ebp], eax
となっていて自分が書いたアセンブリと同じでした。
どおりで速度が変わらないわけですね。
ですので、アセンブリで書けば早いというわけではないようです。
コンパイラの最適化がうまくいってない場合に自分で書けばきっと早くなるでしょう。

ちなみに

こんな書き方をした場合は
2.2920秒と早かったです。


あとポインタを使った計算もしてみました。

この場合の時間は
2.4758秒
とa=a+1と書いた場合より少しだけ早かったです。

アセンブリをうまく使うことができれば早く処理ができそうですが、コンパイラの最適化とか最近のは多分性能がいいと思うので、下手にアセンブリで書くと逆に遅くなったりすることもありそうですね。


posted by みんつ at 01:58 | Comment(0) | プログラミング | このブログの読者になる | 更新情報をチェックする

2009年12月23日

インラインアセンブラ 速度比較




アセンブリ言語で記述すると処理が早いらしいので使ってみました。
今日がアセンブリ言語初体験です

アセンブリ言語を使ったといってもVCで使えるインラインアセンブラというのを使い途中の処理だけアセンブリで記述しました。

今回は前回やったリーマン和(区分求積分)のコードを使います

↑はこの前書いたコードに処理時間の表示を加えました。
その結果5回の平均をとったところ
7.0138秒
という結果が出ました。

次にアセンブリを使ったコードです。

元のコードのfor文とfor文中の計算をアセンブリで記述しました。

そして、こちらの実行の処理時間を5回の平均をとると
4.4086秒
という結果が出ました

7.0138秒 と 4.4086秒だいぶ早くなりましたね。


早くなったんですが、for文の中身だけをアセンブリで記述した場合つまり元のコードの
sum = sum + f(a+dx*i) * dx;
のみをアセンブリで記述した場合は処理速度にあまり変化がありませんでした。

自分のアセンブリの書き方が悪かったのか、コンパイラがしっかり最適化しているので差がなかったのかもしれません。

ホームページ

posted by みんつ at 18:07 | Comment(0) | プログラミング | このブログの読者になる | 更新情報をチェックする
×

この広告は1年以上新しい記事の投稿がないブログに表示されております。