イントレ
  • 新規
  • ペイント
  • 一覧
  • 管理
  • Home
  • ダウンロード
  • 日記
  • イラスト
  • リンク
  • About
  •  RSS
  •  日記カテゴリのRSS

本文へジャンプ


イントレ。

«Prev || 1 · 2 · 3 · 4 · 5 · 6 · 7 ·... | | Next»

2010-03-25

フィールドとプロパティの読書速度実験。

[日記] C# / .NET >> 2010/03/25 (木) | 04:14:36 | 魅椥 愁
どっちが早いのか気になったので、ちょっとテストしてみた。
フィールドとプロパティの通常・リフレクション経由の読み書きを100万回行って時間計測。

read-field(normal): 27.3012ms
read-property(normal): 58.4602ms
read-field(reflection): 395.7991ms
write-property(normal): 397.8156ms
write-field(normal): 398.9727ms
write-field(reflection): 1005.3316ms
read-property(reflection): 2019.6969ms
write-property(reflection): 3130.8138ms

やっぱりフィールドへの読み書きは早いですね。
そして、プロパティへのリフレクション経由読み書きは絶望的なほど遅いですね・・・。


ついでにLambdaExpressionのメンバー名取得も計測。
INotifyPropertyChangedのいけてる実装とかでつかってるやつ。

GetName(() => PROPERTY); // == "PROPERTY"
みたいな感じで、ラムダ式で指定したプロパティ名を取得するってコードになります。
VSのリファクタ機能とか使えるので名前変更とか使ってる場所特定とか、文字リテラルを使うよりメリットは多いです。

が。10万回のテストで2019msとハンパなく遅いです。(文字リテラル指定だと2ms程度)
リフレクション絡む部分はコストが高いってことで、使い方をちゃんと考えなければいけないなぁ。

2010-03-22

WPFでWinFormsのContextMenuを実行する件。

[日記] C# / WPF / .NET >> 2010/03/22 (月) | 07:28:33 | 魅椥 愁
WPFのコンテキストメニューの見た目がなんか嫌。なの。
     ↓
WinFormsの使えばいいじゃん?
     ↓
WinForms.ContexuMenu.Show()がWinForms.Control要求する。なの。
     ↓
WinForms.ContextMenuStrip使えばいいじゃん?
     ↓
独自な外見は嫌。なの。
     ↓
じゃ、WinForms.ContextMenuのハンドルもらってAPIで表示すればいいじゃん?
     ↓
TrackPopupMenuExで実行してもクリックイベント発行されない。なの。


という経緯で、調査したらリフレクションでコマンドディスパッチャを呼び出せばOKっぽい。

具体的には、System.Windows.Forms.Command.DispatchID()メソッドを呼び出す。
Commandクラスはinternalで、DispatchIDメソッドはstatic。
DispatchIDはコマンドIDを引数にとるので、
TrackPopupMenuEx()にTPM_RETURNCMD(0x100)を指定して、コマンドIDを返すようにしてもらう。

var menu = new WinForms.ContextMenu(...);
var id = TrackPopupMenuEx(menu.Handle, 0x100, x, y, hWnd, IntPtr.Zero);
if (id != 0)
{
  var asm = typeof(WinForms.ICommandExecutor).Assembly;
  var type = asm.GetType("System.Windows.Forms.Command");
  var method = type.GetMethod("DispatchID");
  method.Invoke(null, new object[]{ id });
}

これでMenuItem.Clickイベントが発動するようになった。
とはいえinternalクラスを使ってる以上、WinFormsの中身の構成が変わったら使うものにならなくなるわけだが。

2010-03-15

今夜はMIX10。

[日記]  >> 2010/03/15 (月) | 19:39:53 | 魅椥 愁
http://live.visitmix.com/

たぶん深夜1時30分か2時30分。
公式サイト行ってストリーミング始まってたら喰い付かなきゃですね。

Silverlight4のRTWもありそうですが、それよりもIE9&HTML5が気になりますね。
PDC09でお披露目されてから数ヶ月ですが、早くもIE9ベータ版がくるかもとか噂がありました。
流石にちょっと早すぎる気がしますが、最近のMSのWebに対する本気っぷりは凄いからなぁ・・・。

そういえば、ちょっと前にWindows Live Wave4のスクリーンショットリークもありましたね。
あぁ、Windows Phone 7 Seriesってのもありましたね・・・。
それとXNA4に関する情報もあるかも。

なんだかんだでお楽しみ情報がいっぱいあるなぁ。
今夜が楽しみ。・・・時間間違えてなければ。

あ、自分はAzureは完全スルーですが何か?

2010-03-11

PCが超不安定。

[日記]  >> 2010/03/11 (木) | 22:23:01 | 魅椥 愁
気づくとPCが落ちてます。
決まって、部屋の暖房を落として数十分放置するとフリーズしてます。
前々から寒くなるとPCの様子が怪しくなっていたんですがね・・・。

いつもハードディスクの読み込みトラブルで起動しなくなるので
一見ハードディスクが原因のようにも見えますが・・・これは電源ですね?
案の定、室温が下がった状態では電源の出力がすごく不安定になってました。

ということで電源交換決定。。。
またガラクタが増えるorz

2010-03-10

結膜炎!!

[日記]  >> 2010/03/10 (水) | 22:33:37 | TGN
久しぶりの更新・・・。

是非伝えておきたいことがありまして・・・。



昨日の朝方のことなのですが、

目覚ましが鳴り、さぁ起きるかと思ったところ・・・


・・・!?

・・・・・・!?

あれれ!???

目が開かない!????


あれれ!???

もしかして・・・目やに!???




目やにで前が見えなぁぁぁい!!


なんだコレはと思いつつ・・・目やにをこすり鏡を見ると・・・

充血しまくってる目が!!(両目)


え!???

これって結膜炎!???

以前も結膜炎になったことはありますが、両目いっきになることってあるの!???



昨日は仕事だったので、充血しきった両目で行きましたが、

案の定ネタにされまくり!!



流行目だと困るので眼科に行けと指令が出て、眼科に行ったのですが、

予想通りの結膜炎でした・・・。


2種類の目薬をもらい付けているのですが、

1日たった今日も目は充血しきったまま・・・。


しまいには何が原因か分かりませんが、

顎に縦ラインの傷が付いていて、アンタッチャブル山崎のケツ顎状態に!!(なにげにこっちの方が早く直って欲しい)


最近の低気圧で鼻炎も悪化してきたし、

最近何かツイてないな・・・。



Jリーグも開幕したのでBIGを購入したけど、半分も当たってないし・・・。ちくしょう。<無関係
«Prev || 1 · 2 · 3 · 4 · 5 · 6 · 7 ·... | | Next»

HTML creation time [0.15sec.]
"intre." by MinagiSyu, sense 1999.11.23.
Powered by Nucleus CMS v3.41

Utilities

タグ
C# | SAP1x | .NET | ツクールもどき | 園芸 | SAPFx | Windows 7 | サッカー | PCパーツ | WPF | ...すべてのタグ
カレンダー
<   2010-07   >
日月火水木金土
    123
45678910
11121314151617
18192021222324
25262728293031
最近の更新
    2010-07-11
  • [日記] WebMatrixが本気過ぎる件。
  • 2010-06-23
  • [日記] Google Reader APIの認証がまた変わった?
  • [更新履歴] Google Reader Notifier 改 r3をリリース。
  • [ダウンロード] Google Reader Notifier 改
  • 2010-05-31
  • [日記] DynamicObjectを使ったINotifyPropertyChangedラッパー。
  • 2010-05-28
  • [日記] タブが非アクティブな時にページを書き換えるフィッシング攻撃。
  • 2010-05-24
  • [日記] Mercurialのsubrepo。
Adsense