C#は電気羊の夢を見るか?(引っ越し中)

dtiブログが閉鎖とのことでhttp://tanocs.blog.fc2.com/へ引っ越します。

小ネタ

■スタイリッシュ配列指定
 ※あくまでスタイリッシュであって、速度のことは知らない

a.First(); //a[0]
a.Last(); //a[a.Count - 1]

考察:
可読性は結構上がる。あとなんとなくカッコイイ。
しかしながら、メソッドであるため、戻り値がメモリにわざわざ置き直されるんじゃなかろうか?

そうすると、配列一つあたりのメモリ使用量が大きい場合、結構速度へ影響があるような気がする。
例えばa.First().ToString()とか言う感じで参照後のメソッドを呼び出すような場合、
顕著に現れる気がする。
もちろん、気がするだけで実証はしてない。


.Last()は速度への影響が少ないところにはぼちぼち使ってみたい。
.Firstは文字数的にも見た目的にも速度的にも微妙。
自身が長年 a[0] の表記に慣れ親しんでいるので、あまり使わない気がする。


■sortedリストのエラーメッセージ
しょぼいミスで『少なくとも 1 つのオブジェクトで icomparable を実装しなければなりません。』とか言うエラーが出たときの対処法。

SortedList.Max() はできないので SortedList.Last() とすること。
結果はよっぽど同じになるはず。


■迷った時は
SortedListかSortedDictionaryで迷った場合、
ランダムアクセスとキー指定の頻度が多ければSortedDictionary。
比較的単純なアクセスが多く速度がほしい時はSortedListが優秀。


■応急処置
現場とかでどうしてもソースをいじるのに
Visual C# 2008 Express Editionを使用する場合、
相手方が64Bitだったりすると、CPUの選択ができずに詰む。

これの対処のためにテキストエディタで
ソリューション(*.sln)とプロジェクトファイル(*.proj)を開き
[Any CPU][AnyCPU]を[x86]にすると対応できる上、
何故か構成マネージャが有効になる。
このエントリーをはてなブックマークに追加
LINEで送る

コメント

コメントの投稿

管理者にだけ表示を許可する

トラックバック

http://t01a.dtiblog.com/tb.php/121-fc15e17f

« HDD復旧の結果発表  | HOME |  GPGPUの高速化 »

PAGE TOP ▲

Appendix

■春条

■春条

生息地は愛知
車と甘い物が好きな31歳
特技は無限昼寝

MONOからSharpDXを使う
変態的な手法で、
.NET Frameworkを使わずに
ゲーム作りやってます。

Search

Calender

« | 2017-10 | »
S M T W T F S
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

Twitter

Recent Entries

DTIブログポータルへ
このブログを通報
Report Abuse

利用規約