新しいものを表示
orange さんがブースト

あとReflexilとかdnSpyでILいじって遊ぶのも楽しいです

orange さんがブースト

これなにがいいって、命令にカーソル乗せると意味が表示されるんですよ

スレッドを表示
orange さんがブースト

あれ?><; 最適化無しで試したら
C# 版: 3295ms
MSIL版: 1453ms
System.Math: 63ms
って結構差が・・・><;

orange さんがブースト

(Delphiじゃなくbccだったかもしれない・・・><(よく覚えてない><;))

でも、生まれて初めてアセンブラで書き直して高速化に成功できたから一応うれしい><(DelphiでMMX使って数命令の短いインラインアセンブラなコードで速くした事なら前にあるけど、処理丸ごとアセンブラで書いて速く出来たのは初めて><)

やっとdllに出来たのでベンチマークしてみたけど、10000000回ループで、
C# 版: 1477ms
手書きMSIL版: 1458ms
って速くはなったけどものすごく微妙><; そして
System.Math: 3ms
・・・・・・・・><

dllとしてアセンブルしてもなぜかVSのオブジェクトエクスプローラで中身が表示されない・・・><

ループの中身、C#バージョンではnop抜いて27命令だったのを、19命令に減らせたっぽい><

なんか頭の使い方がパズルっぽくて、普段のプログラミングよりもテラリアとかで計算機の回路作って遊んでる時に近くておもしろかった><

orange さんがブースト

コメントの // F hoge, fuga みたいなのはスタックの状態のメモです><;

pastebin貼れたっぽい><
sqrtを計算するやつCIL(MSIL)版><
pastebin.com/mL2AxsQc
(シンタックスハイライトがilは流石に無いっぽいのでC# に設定しました><;)

orange さんがブースト

どこかスペース消えずにテキスト貼れるところってないかな?><;

不等号が逆だったっぽくて直したけど6桁あってる・・・?><
Sqrt(2)=1.41421294212341

done.
ExitCode:0

古いものを表示
:realtek:

思考の /dev/null