[解決済み] JavaScript で Array の代わりに Float32Array を使用する場合
質問
を使用する意味があるのはどんな場合ですか?
Float32Array
の代わりに、標準的なJavaScriptの
Array
ブラウザアプリケーション用?
この
パフォーマンステスト
が示す
Float32Array
は一般的に遅くなります。そして、私の理解が正しければ、標準的な
Array
は、64ビットとして数値を格納するため、精度の面で有利ではありません。
パフォーマンスへの影響は別として。
Float32Array
は、コンストラクタを使用しなければならないという可読性の面でも不利になります。
a = new Float32Array(2);
a[0] = 3.5;
a[1] = 4.5;
の代わりに、配列リテラル
a = [3.5, 4.5];
glMatrixというライブラリを使っているのですが、このライブラリはデフォルトで
Float32Array
- を使うように強制してはいけない理由があるのだろうか?
Array
の代わりに、配列リテラルを使用することができます。
どのように解決するのですか?
の開発者にメールを送りました。
glMatrix
というコメント(2,3点目)をいただきました。
-
新しいオブジェクトの作成は、一般的に
Array
よりもFloat32Array
. この利得は小さいアレイでは大きいですが、大きいアレイでは小さくなります(環境に依存)。 -
アクセス方法 のデータを
TypedArray
(例Float32Array
これはほとんどの配列操作(新しいオブジェクトの作成は別として)がTypedArraysによって高速化されることを意味しています。 -
また、@emidander氏も述べているように。
glMatrix
は主に WebGL 用に開発されたもので、ベクトルや行列の受け渡しはFloat32Array
. そのため、WebGLアプリケーションでは、コストがかかる可能性のあるArray
からFloat32Array
は、どのようなパフォーマンス測定にも含まれる必要があります。
ですから、意外と知られていないのですが、最適なのはアプリケーションに依存するものなのです。
-
配列が一般に小さく、また配列に対する操作の回数が少ないためにコンストラクタにかかる時間が配列の寿命に占める割合が大きい場合は
Array
. -
コードの読みやすさがパフォーマンスと同じくらい重要な場合は
Array
(を使用する)。[]
コンストラクタの代わりに)。 -
もし、配列が非常に大きく、多くの操作に使用される場合は、TypedArrayを使用してください。
-
WebGL アプリケーション (またはその他の型変換が必要なアプリケーション) には
Float32Array
(または他のTypedArray
).
関連
-
[解決済み】Failed to load resource: net::ERR_FILE_NOT_FOUND loading json.js
-
[解決済み】Angular JS Uncaught Error。[インジェクター:モジュラー]。
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み] 配列から特定の項目を削除するにはどうすればよいですか?
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] あるJavaScriptファイルを他のJavaScriptファイルにインクルードするにはどうすればよいですか?
-
[解決済み] JavaScript で配列に値が含まれているかどうかを確認するにはどうすればよいですか?
-
[解決済み] 配列に特定のインデックスで項目を挿入する方法 (JavaScript)
-
[解決済み】オブジェクトからプロパティを削除する(JavaScript)
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】node.js TypeError: path must be absolute or specify root to res.sendFile [JSONのパースに失敗しました]。
-
[解決済み】Javascript:getElementById対getElementsById(両方が別のページで動作する)。
-
[解決済み】XMLHttpRequestモジュールが定義されていない/見つからない
-
[解決済み】JavaScript "Uncaught TypeError: object is not a function" 連想性の質問
-
[解決済み】別のjsファイル内でJavaScriptの関数を呼び出す
-
[解決済み] テスト
-
[解決済み】SyntaxError: JSON の位置 1 に予期しないトークン o があります。
-
[解決済み】エラー:リクエストのエンティティが大きすぎる
-
[解決済み】 Uncaught Error: Invariant Violation: 解決済み】 Uncaught Error: Invariant Violation: Element type is invalid: expected a string (for built-in components) or a class/function but got: object.
-
[解決済み】'useState' が定義されていない no-undef React