タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

binaryと.NETとC#に関するWackyのブックマーク (6)

  • メンバに配列を持つ構造体のマーシャリング - schima.hatenablog.com

    コメントにご質問があったので、少し長くなりそうなのでこちらで書かせてもらいます。 構造体とポインタ(若しくはバイト配列)との相互変換を行う方法については以前紹介しましたが、あの時の例はあえてごく簡単な構造体にしてありました。今回はメンバとして配列をもっている構造体の場合について考えます。ここでは、以下のような構造体を例にとりご説明します。 [StructLayout(LayoutKind.Sequential)] struct Hoge { public string Str; public double[] Array; public Fuga[] Fugafuga; } [StructLayout(LayoutKind.Sequential)] struct Fuga { public int X; public int Y; public Fuga(int x, int y) { X

    メンバに配列を持つ構造体のマーシャリング - schima.hatenablog.com
    Wacky
    Wacky 2009/12/23
    今回はメンバとして配列をもっている構造体の場合について考えます。
  • P/Invoke時におけるマーシャラの動作(マーシャリング) - KrdLab's blog

    P/Invoke において,データをC#側からアンマネージ側へ渡す,またはアンマネージ側から受け取るとき,どのような動作をしているのかについて調べてみました. まず P/Invoke について,MSDN の中で参考になりそうなページを挙げます. クラス、構造体、および共用体のマーシャリング 文字列のマーシャリング 型の配列のマーシャリング 各種のマーシャリング プラットフォーム呼び出しのデータ型 これらのドキュメントを読んでいると,値型,参照型,blittable 型,非 blittable 型といった,型に関する用語が出てきます. 以下にまとめてみました (blittable の語源だけはわかりませんでしたが...). 値型 (値型) 値型とは,System.ValueType から派生する型のことであり,インスタンスがスタック上に割り当てられます. また値型の変数は,参照型の変数のよう

    P/Invoke時におけるマーシャラの動作(マーシャリング) - KrdLab's blog
  • Microsoft Learn: Build skills that open doors in your career

    This browser is no longer supported. Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support. Learning for everyone, everywhere Explore Microsoft product documentation, training, credentials, Q&A, code references, and shows.

    Microsoft Learn: Build skills that open doors in your career
    Wacky
    Wacky 2007/10/28
    非同期プログラミング モデル (APM) の利点を賞賛し、I/O 関連の操作を非同期に実行することがスケーラブルで応答性の高いアプリケーションやコンポーネントを作成する鍵になると強調してきました
  • .NET GC & Memory (2) - NyaRuRuが地球にいたころ

    上の 2 つの GDNJ のスレッドでもちらほら言及されていますが,現在の CLR 実装では 85000 byte 以上のオブジェクトは Large Object Heap (LOH) に確保され,いきなり第二世代扱いで始まったりコンパクションが行われなかったりと色々特別扱いを受けることになります.実際,上のコードを走らせてみると第二世代 GC の回数がとんでもなく多いことに気付くかと思います. つまり上のコードは,「通常 0 世代目の GC が頻発する」という仮定が成り立たない,かなり特殊な状況を見ていることになります.似たようなコードは時々お目にかかることがあって,例えば以前 id:Kazzz さんが紹介されていたベンチマーク記事がそれだったりします. NyaRuRu 『んーと,微妙に長い話を色々書きたくなるようなベンチマークですな. (デバッグビルドしちゃうと IsJITTracki

    .NET GC & Memory (2) - NyaRuRuが地球にいたころ
    Wacky
    Wacky 2006/06/17
    ソフトページフォルト周りだけでそこそこの時間を消費していた疑いがあるという結果です
  • .NET GC & Memory (1) - NyaRuRuが地球にいたころ

    初心者向けにはしばしば「適当に回収してくれます」と説明される .NET の GC ですが,実際の GC は無作為に実行されるのではなく,あるアルゴリズムに従って動いており,「適当」という言葉でブラックボックス感を演出するのはあまり好きではありません.まあ適切で当然な「適当」だとしても,一意に定まるわけじゃないのでそこをぼかすのはまずいと思うわけですよ. 以下はいつぞやの GDNJ IDisposable 論争で挙げたもの*1を少しだけ書き直したものですが,手元の環境を含め Visual C# .NET 2003 + .NET Framework 1.1 SP1 という条件下でちらほら完走しない現象が再現できたようです. using System; using System.Diagnostics; class Program { static void Main(string args)

    .NET GC & Memory (1) - NyaRuRuが地球にいたころ
    Wacky
    Wacky 2006/06/17
    C++ のように確定論的にメモリの確保/解放を行うコードを C# に移植する際にこのような問題が表面化する可能性があり,あまりうれしくない振る舞いです.
  • 1