- PR -

c# 高速化についての質問

投稿者投稿内容
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-10-20 10:24
書き忘れたので追記。

引用:

・usingで宣言すると速度に関係があるのか?


から、using ステートメントではなく、using ディレクティブの事を言ってるのかなぁと思ったんですが、違うかな。以下そうだという前提で。

using で名前空間をインポートしてもしなくても速度に影響はありません。
C# コンパイラにクラスを探す情報を教えているだけですね。
IL になったら結局その都度フルの名前が書かれています。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-10-20 10:51
引用:

囚人さんの書き込み (2005-10-20 10:24) より:

引用:

・usingで宣言すると速度に関係があるのか?


から、using ステートメントではなく、using ディレクティブの事を言ってるのかなぁと思ったんですが、違うかな。


これは、"何を" 宣言するのか書いてなかったのですが、あくまで「宣言」ですよね?
「using (ステートメントの開始位置で変数を) 宣言すると」と脳内補完していました。

using ディレクティブの場合は「定義」しかないですよね。
もちろん、using ステートメントも
 「オブジェクトが破棄されるスコープを "定義" する」
という意味では定義です。

しかしながら、(変数の)「宣言」という概念があるのは、using ステートメントだけだと思います。

また、

引用:

VBのwith(だったけか?)のように使うと多少コードの速度があがるのか?


とあるので、メソッド内で "局所的に使う" という意味合いで捉えました。

違ってましたら申し訳ないです。(*_ _)

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2005-10-20 11:20
「using(名前空間を)宣言すると」
・・・確かに宣言とは言いませんね^^;

引用:

VBのwith(だったけか?)のように使うと多少コードの速度があがるのか?


から、[System.]Console.WriteLine() みたいに"省ける"という意味合いで捉えてしまいました。

ん〜、むっずかしぃ。失礼しました。

笊頭刹那
ベテラン
会議室デビュー日: 2005/10/17
投稿数: 55
お住まい・勤務地: オーストラリア
投稿日時: 2005-11-04 14:58
返信大変遅くなりましたすいません。

>囚人さん
ありがとうございます、そういう基本的なことも裏づけがないと疑問に思ってしまう性なので、おかげでいろいろと納得できました。

配列の関係はコーディングの楽さからもいったん代入するようにしています(笑。速度面でも「毎回インデックスの値探しに行ったら遅そうだなー」と思ってました(笑。

>karajanさん
留学中でなければ大きな本屋にいって(あるかな…汗)参考に見てみるのですが、まぁ英語で1000ページは…ちょっとつらいです汗

>Jittaさん
えーっと…ランチャーを作るついでに普段からの「どっちのほうが早いんだろう?(どっちがコーディングとして正しいのだろう?)」という疑問を解決しようと思って質問させていただいただけなので、あまりランチャーは関係ないです(いろいろと実験しながら作っていたのでナノよりも問題ある速度的なものが出てきていますし…)独学だと正しいコードってわかりにくいので(汗。

>囚人さん・じゃんぬさん
えー僕の場合"省ける"という意味合いで聞きました、舌足らずで…さらに宣言と定義がごっちゃになってしまっていて、本当にすみません(汗。

using{}の安全性は一通り把握しているつもりです(最近のコードで)安全という意味で使用しています。

using namespaceでは、速度関係ないのですね、ありがとうございます、豆知識増えました(笑。



みなさんこんなくだらない(ただの好奇心に近いような)質問に対していろいろとありがとうございました。
NHUL
会議室デビュー日: 2005/11/08
投稿数: 1
投稿日時: 2005-11-08 13:38
高速化について、私が効果があると思った項目です。

・参照DLLを削除する(System.〜.dllへの参照を減らす)
起動時読み込み処理が減りますので、起動が早くなります。

・ngen.exeでプリコンパイルする
・structよりclassを用いる(参照型を利用する)
structは毎回メモリーコピーが発生する仕様の様なので、遅いです。

・マルチスレッド化を行う。(GUIと計算の分離など)

複雑な計算処理などでは、プロファイラを使って効果のあると思われる部分のみを
高速化したほうが楽だと思います。

スキルアップ/キャリアアップ(JOB@IT)