array
の代わりにVector.<>
を使用することの賛否両論は何ですか? adobe documentation pageからVector。<> vs array
答えて
:
その制約の結果として、ベクターは、エレメントがすべて単一クラスのインスタンスであるArrayインスタンス上の2つの主要な利点があります。
- パフォーマンス:配列要素へのアクセスをベクトルインスタンスを使用する場合は、配列を使用する場合よりもはるかに高速です。
- 型の安全性:厳密なモードでは、不正なデータ型の値をVectorに割り当てる、またはVectorから値を読み取るときに間違ったデータ型を予期するなど、データ型エラーをコンパイラが識別できます。ただし、push()メソッドまたはunshift()メソッドを使用してVectorに値を追加すると、引数のデータ型はコンパイル時にはチェックされず、実行時にチェックされることに注意してください( )。
ありがとうArno!これらは唯一のプロですが、いくつかのコントラもありますか? より良いパフォーマンスについて:一部の人々は反対を報告しています。http://impossiblearts.com/blog/2008/06/18/fp10-vector-vs-array/comment-page-1/とhttp: /bugs.adobe.com/jira/browse/FP-1802 –
これは、パフォーマンスが現在のベクターにとって最高のセールスポイントではないように見えます。もう一度、FlexフレームワークSDKとFlash Playerの両方がバグフリーではないという事実に既に慣れているはずです。 –
大きなコントラは私の意見では非常に新しいので少しバギーで、誰もがFP10を持っているわけではありません。 Mike Chambersのこのテストでは:http://www.mikechambers.com/blog/2008/08/19/using-vectors-in-actionscript-3-and-flash-player-10/彼のテストではヒューではない2つの数字の違い。あなたのアプリケーションが大きなリストに大きくぶら下がっていなければ、私はArrayを使うでしょう。 – Arno
Pro:ベクターの方が配列より高速です。これを参照してください。
Faster JPEG Encoding with Flash Player 10コントラ:ベクターFP10を必要とし、利用者の約20%が、まだそれが少し高くなっているFP9
このコメントの時点で、検出されなかったバージョン+フラッシュ9は4% – ADB
で検出され、フラッシュ9クロックは今日ではわずか5%下にあります。 –
よるとフラッシュプレーヤーの普及のウェブサイトを使用しているhttp://riastats.com/によります。 85%
のベクトルの周りに高速です。連続的な繰り返しの場合はthe fastest thing seems to be linked-listsです。
ベクターは、ビットマップ操作(BitmapData.setVectorもチェックし、BitmapData.lockもアンロック)にも役立ちます。
前述のコメントのリンクリストの例は、奇数ノードをスキップしても間違って記述されています。そのため、同じデータの半分だけが反復されるためです。彼がすばらしい結果を得たのも不思議ではないが、正しいコードでも速くなるかもしれないが、同じ%の違いではない。ループは、その動作を引き起こす各繰り返しをcurrent = current.nextに1回(ループとループ条件の両方で)あまりにも多く設定します。
- 1. std :: arrayの動作<bool>とstd :: vector <bool>
- 2. <vector<char>>
- 3. int [] [] convert --to - > Vector <Vector <Double>>
- 4. はWFA:<vector>
- 5. 反復::ベクトル<std :: vector <char>>?
- 6. std :: shared_ptr <std :: vector <double>>
- 7. C++ベクトル<vector <double>> double **
- 8. ロード画像 - ベクトル<vector<Mat>>
- 9. ベクトル、行列、および配列データ型の違いは何ですか? <code>vector</code>、<code>matrix</code>と<code>array</code>:
- 10. IListを返す<T> vs Array in C#?
- 11. std :: vector <std :: pair <const K, V> *> to std :: vector <std :: pair <const K, V>>
- 12. 'std :: vector <std :: basic_string <char>> *'から 'const std :: vector <std :: basic_string <char>>&'
- 13. std :: array <float, 4> to std :: array <double, 4>キャスト
- 14. のJavaロードシーケンスファイル<Vector>
- 15. std :: vector <std::string>クラッシュ
- 16. std :: vectorのメモリレイアウト<__m128i>
- 17. Observable <Array<T>> Observable
- 18. {} []から配列<Array<any>>
- 19. Swift Sorting Array <配列<AnyObject>>
- 20. std :: vector <std :: vector <int>> push_backによりヒープバッファオーバーフローが発生する
- 21. 「QVector <QVector <QVector<T> >> vector」の意味は?
- 22. Scala - TrieMap vs Vector
- 23. std :: shared_ptr << std :: vector <double>>を関数に渡す
- 24. boost :: variant <std :: vector <int>、std :: vector <String>>を反復処理する方法は?
- 25. std :: vectorから要素を移動する<T1>からstd :: vector <std :: pair <T1,T2>>
- 26. DIM1 Repa ArrayとVectorのパフォーマンス
- 27. Mock.Of <Object> VS Mock <Object>()
- 28. SortedSet <T> vs HashSet <T>
- 29. ArrayList <> vs ArrayList <Integer>
- 30. Observable <Class[]> vs Observable <Class> []
サイドノートとして、これはflex4 flashplayer10とタグ付けする必要があります。 –