問題タブ [unboxing]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
496 参照

scala - Scalaパターンマッチでの自動アンボックス

次のコードでは、「x」に型の不一致があることを示すコンパイルエラーが発生しています。

マッチステートメントでScalaにsomeRefの自動アンボックスを設定するにはどうすればよいですか?

0 投票する
2 に答える
1144 参照

c# - CLR でのボックス化およびボックス化解除操作に対して、どのようなパフォーマンスの改善が行われましたか?

数か月前にセミナーに出席したとき、.NET 1.1 以降、ボックス化またはボックス化解除操作の一般的なコストが削減されたと講演者が述べました。私は自分の (貧弱な) メモを調べましたが、このステートメントがボックス化とボックス化解除の指示を参照しているのか、それともボックス化/ボックス化解除が発生しにくくするクラス (つまりジェネリック型) の導入を参照しているのかを判断できません。

.NET 1.1 と .NET 4.0 の間で CLR ボックス化関連の命令のパフォーマンスが向上しましたか? 向上した場合、測定値に関する情報はどこで確認できますか?

0 投票する
5 に答える
926 参照

c# - オブジェクト型のデータを値型に変換する最良の方法

私はデータリーダーを使用してデータベースからデータをフェッチするコードを作成するように任命されました。デフォルトでフェッチされるデータリーダーからデータを変換するために以下で使用できる3つの方法のベストプラクティスがどうなるか知りたいです。オブジェクトのタイプ。

ここで私を混乱させるのは、開封の部分です。http://msdn.microsoft.com/en-us/library/yz2be5wk.aspxによる 、開封と開封は非常に費用がかかるため、避ける必要があります。私は私が使うことができることを知っています

それ以外の

問題は、このオプションの両方よりもはるかに効率的な方法でこのデータを変換する方法がまだあることと、2つの方法のどちらを使用するかを選択できる方法がない場合です。事前に感謝しますすべてのヘルプと提案が受け入れられます:)

0 投票する
1 に答える
515 参照

haskell - Haskell でまばらに欠落しているデータの効率的な処理

データ分析に Haskell を使用しようとしています。私のデータセットはかなり大きい (数十万、場合によっては数百万の観測) ため、理想的には、効率のためにボックス化されていないデータ構造 (Data.Vector.Unboxed など) を使用したいと考えています。

問題は、データに欠損値が含まれていることです。これらを「99」などのようにコーディングすることは避けたいと思います。これは単なる醜いハックであり、バグの潜在的な原因になるからです。私のHaskell初心者の観点から、次のオプションを考えることができます:

  1. アンパックされMaybeた値のボックス化されたベクトル。次のようなもの(間違っている場合は修正してください):
    data myMaybe a = Nothing | Just {-# UNPACK #-} !a

  2. newtype instance Data.Vector.Unboxed.Vector (MyDatum a) = MyDatum (Data.Vector.Unboxed.Vector (Bool,a))
    ボックス化されていない(ボックス化されていない) タプルのベクトル。ブール要素は欠落を示します。値/スパース性 (代わりに、ボックス化されていないベクトルのボックス化されたベクトルとしてではなく、ボックス化されていない配列全体を表現する方法に焦点を当てています)。IntBool
  3. ボックス化されていないベクトルのタプル。1 つは値、もう 1 つは欠損値が挿入されるインデックス、非欠損値のランレングス、または同等の情報です。これはオプション 2 よりも望ましい場合があります。

thisのようなものではなく、ベクトル表現内に留まろうとしています。これは、 dataではなく、スパースな欠損値であるためです。

これらのオプションの相対的なメリット/実現可能性/既製の可用性/可能性のあるパフォーマンスに関するコメント、または実際にはまったく異なる代替案へのポインタは大歓迎です!

編集:

  • 答えは、データに対して実行する操作の種類に依存する可能性があることが指摘されています。現時点では、各変数ではなく、各観測値を 1 つのベクトルに格納する方が便利なようです。したがって、ベクトル内のエントリは異なる変数を参照するため、「折り畳み」のような操作はほとんどありません。
  • 2. 「有効なビット」ベクトルを 3. 適切な場合に自動的に内部に保存するので、3. を削除できると思いますか?
0 投票する
4 に答える
711 参照

c# - ボクシング/アンボクシングはレイト バインディングまたはアーリー バインディング (つまり、実行時またはコンパイル時) によって実装されていますか?

例:

同様に、

0 投票する
3 に答える
5425 参照

c# - C#-ボクシング/アンボクシング/型キャストのintに関する問題。理解できない

私はこれを理解するのに苦労しています。次の例を考えてみましょう。

実行時に発生する特定のエラーは、Visual StudioでSpecified cast is not valid. QuickWatchを実行すると、値が。になります。(int)thirdTestCannot unbox 'thirdTest' as a 'int'

ここで一体何が起こっているのですか?

0 投票する
4 に答える
1375 参照

c# - クラスの値型メンバーが参照されると、ボックス化解除が発生しますか?

ボックス化とボックス化解除とは何ですか? トレードオフは何ですか? しかし、1つのことを理解できません。クラスがあるとします:

そして、メソッド内で値を取得したい:

ヒープに配置されたクラスとして、Value もヒープに配置されたと思いますか? したがって、操作

開封ですか?それとも開封じゃないの?

0 投票する
2 に答える
261 参照

haskell - «インスタンス(列挙型a、境界付きa)=> IArrayUArraya»を探しています

私は持っている方法を探しています(列挙型をとに簡単Enum a => UArray aにマッピングできるので、私には理にかなっています)InttoEnumfromEnum

これまでのところ、 Data.Array.BaseUArray Intからのコードを盗み、あちこちでいくつかのsとsを密輸しようとしました。toEnumfromEnum

しかしもちろん、それはコンパイルされません:

また、には魔法はありunboxInt :: Int -> Int#ませんGHC.*。パターンマッチングI#は生成されませんIntが、Int#代わりに、何らかの形でUArray Int存在し、Int#sで機能します。

ニュータイプ用のUArrayの作成に関する投稿も見つけましたが、に依存しているため、適用されないようですunsafeCoerce。私はそれを試しましたが、listArray (0, 54) $ cycle [Red, Yellow, Green]すべてのコンストラクターが面白いものになりましたBlue

私は間違った方向に進んでいますか?

アップデート:

これで動作します。ソースコードは次のとおりです。

0 投票する
2 に答える
340 参照

arrays - HaskellをArrayからUnboxedArrayに変換すると、書き換えルールが破られます

プログラムをData.Arrayの使用からData.Array.Unboxedに変換しようとしています。

簡単な補足として、コードで「配列」を「UArray」に変更し、Data.Array.Unboxedのインポートを追加できると記載されている場所がいくつかありますが、両方のタイプの配列を混合していないため、Data.Arrayをインポートしました。 Data.Arrayの代わりに.Unboxed、これで十分ですか?

切り替えを行うと、次の書き換えルールが破られます。

ここで、win1win2とimageはすべてUArrayである必要があります。ただし、これは次のエラーでコンパイルに失敗します。

これがあいまいな理由は何ですか?Data.Arrayで動作するときに、これが機能しないのはなぜですか?

0 投票する
9 に答える
2191 参照

c# - c#.netで型キャスト

c#.netでの型キャストについて知りたいのですが、以下のコード行があります。

だから私はなぜstring s = i and string s = (string)iうまくいかないのか、そして使用の違いは何なのか知りたいです(string)i, i.ToString(), and Convert.ToString(i)