中の技術日誌ブログ

C#とC++/CLIと
VBと.NETとWindowsで戯れる
 

目次

Blog 利用状況

ニュース

自己紹介

東京でソフトウェアエンジニアをやっています。
お仕事大募集中です。
記事執筆や、講師依頼とかでも何でもどうぞ(*^_^*)
似顔絵 MSMVPロゴ
MSMVP Visual C# Since 2004/04-2013/03

記事カテゴリ

書庫

日記カテゴリ

00-整理

01-MSMVP

そんなところにこだわってどうするの? じゃないよ!

http://d.hatena.ne.jp/masa-k/20090427/1240805446

http://d.hatena.ne.jp/masa-k/20090428/1240881938

アキラさんに戴いたコメントも尤もな話で、間の思考を端折って短絡的に「そんなことにこだわるくらいなら .NET 使うなよ」と結論付けてしまったのは私の怠慢ですね。最初からちゃんと書くべきでした。

もちろん、マネージドであってもパフォーマンスチューニングは重要です。

ただ、 null チェック( if 文)ひとつのコストを考慮しなきゃいけない場面と云うのはそうあるものじゃないし、そこを考慮する前にやるべき事がたくさんあるだろう、と云うのが私の主張。

で、そう云った前段の考慮を諸々やった上で、なおそこ( = if 文と try/catch のコスト差の様なところ)まで考慮しなきゃいけない様なクリティカルなシステムなら、マネージドを使うのをやめた方が余程費用対効果が高いんじゃないの? と。

http://blogs.wankuma.com/naka/archive/2009/04/27/172140.aspx

この辺の話です。

ローレベルなこだわりってのは非常に大事です。

実際にアセンブリコード見て最適化するのか?ってのとは全く違うレベルで。

それは誰かのいうエセ思考実験っとは全く違って、本当の”理屈”を理解するため。

#出来てるのか?とかいうツッコミは勘弁して><

漠然とこっちの方がパフォーマンス良さそう。ってんじゃなくってこっちはこんなコストがある、あっちはこんなコスト。全体を勘案してこっちと言うためには知らないとね。

ベタな仕事じゃなくってこうやってコミュニティでやってることなんだから、掘り下げすぎで怒られることもないのでいろいろやってみると良いと思うのです。

投稿日時 : 2009年4月28日 12:38

コメントを追加

# re: そんなところにこだわってどうするの? じゃないよ! 2009/04/28 12:56 こくぶん

>ベタな仕事じゃなくってこうやってコミュニティでやってることなんだから、掘り下げすぎで怒られることもないのでいろいろやってみると良いと思うのです。

その通りだと思います。
実際、「費用対効果」を量るにはそう云った確固たる裏づけが必要不可欠ですし。

なので、別にその行為をムダだとか言っているわけじゃないですし、blogでやるのはむしろ歓迎です。
(自分がやらなくても情報得られるし :p)

あくまでも、私のコメントは「業務」視点で書いてました。(その前提を書き忘れた時点で文章としてアウトなんですが><)

# re: そんなところにこだわってどうするの? じゃないよ! 2009/04/30 10:18 甕星

C++でも構造化例外を使うとコードの肥大化とパフォーマンスの低下が大きいのは結構知られているんだよね。「.NET使うな」ってレベルの話ではないんだよ。embeded C/C++で構造化例外が外されたり、カーネルドライバで構造化例外をサポートしないのは伊達じゃないんだな。

# re: そんなところにこだわってどうするの? じゃないよ! 2009/04/30 10:18 甕星

C++でも構造化例外を使うとコードの肥大化とパフォーマンスの低下が大きいのは結構知られているんだよね。「.NET使うな」ってレベルの話ではないんだよ。embeded C/C++で構造化例外が外されたり、カーネルドライバで構造化例外をサポートしないのは伊達じゃないんだな。

# re: そんなところにこだわってどうするの? じゃないよ! 2009/05/02 1:49 あんどちん

とりあえず切り分けて発言された方がよろしいかと。
「C++の例外」と「構造化例外」は別です。
「例外」はC++言語が提供する機能で「構造化例外」はWindowsが提供する機能です。
Windows環境下においてメモリ保護違反などの例外をC++の「例外」で補足する時、それは「構造化例外」をランタイムライブラリが補足してC++の例外としているものですよね?但しこれは言語の範囲外と思います。C++の例外はWindows環境以外でも利用可能です。
「構造化例外」であればC++でなくCでも利用可能です。

embedded C++では仰られるように例外、テンプレート、多重継承などはサポートされません。Cはもともとそのような機能は無いですし、僕の知識不足かもしれませんがembedded Cというものも聞いたことがありません。
# GreenHills以外でembedded C++を見たことがないのでこの辺の知識はあまりありません

タイトル
名前
URL
コメント