私はJavascriptライブラリ(openlayers)を使用しており、クラス全体を減らすためにいくつかのクラスを最適化しようとしています。私はいくつかのクラスでは、そのクラスのメソッドの大部分を必要としないことに気付きました。それらは決して呼び出されません。未使用のJavascriptオブジェクトメソッドはどのようにメモリ使用量に影響しますか?
私はこれらのクラスのいくつかを書き直そうとしていましたが、私が必要としないメソッドを取り除いていましたが、私がそうする前に、もし私がメモリフットプリントに顕著な影響を及ぼすかどうか剥奪されたクラスから10,000個のオブジェクトをインスタンス化することでした。明らかに私が役立つプロパティを削除する場合は、私は方法についてはよく分かりません。
どのようにメソッドが保存されているか、どのくらいの量のメモリを消費しているのか、誰かがこのタイプの知識を取り上げる良い本や他のリソースをお勧めしますか?
EDIT:コンストラクタ関数内でのメソッドの定義とプロトタイプの定義の違いを明確にしていただきありがとうございます。それは混在しているように見えますが、引数のために、それらがコンストラクタ関数で定義されていると仮定します(最も大きな影響を与えると思われます)。
メソッドはすべてのインスタンスまたは 'prototype'で宣言されていますか?それらがプロトタイプ上にある場合は、すべてのインスタンスがメソッドの1つのコピーを効果的に共有するので、違いをほとんど生み出すことはまずありません。 –
はコンストラクタ内のオブジェクト上で定義されているか、または 'prototype'を介してインスタンス間で共有されていますか?いくつかのコードを表示し、コードをパフォーマンスアナライザで実行して、メモリのボトルネックがどこに生成されているかを正確に確認するのが理想的です。 – zzzzBov
@JamesとzzzzBov - あなたのコメントに基づいてOPを更新しました(それらのおかげです)。 – TheOx