• ベストアンサー

オブジェクトの生成について

オブジェクトの生成はコストが高いのでなるべく少なくした方がいいと聞きました。 何に時間が掛かっているのでしょうか。

質問者が選んだベストアンサー

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5241/13712)
回答No.1

インスタンスを作る時、まず必要なメモリ領域の確保が行われます。 物理メモリ量が少なければスワップ処理等も発生し、メモリI/OだけでなくディスクI/O等時間の掛かる処理が必要になります。 次に、クラスがメモリ上に展開されていくのですが、継承クラスだった場合は元のクラスの情報も読み込みが発生し、更に継承しているクラスがあれば読み込みがと言った具合にどんどんと遡って読み込みが発生します。 読み込みが終わったらコンストラクターが実行されますが、これも継承クラスだった場合は元のクラス、元のクラスと遡って処理が行われます。 これらはインスタンス生成時に発生する処理なので、無駄にインスタンスを作らないようにした方が全体として処理は軽くなります。

oknyut
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • yukitakao
  • ベストアンサー率44% (16/36)
回答No.2

オブジェクトの生成するとコンストラクタが実行されますが そのコンストラクタの実行のコストがかかりますし それ以前にオブジェクト(インスタンス)を生成するコストです。 メモリ上にクラスからインスタンス作ってクラス内変数をセットしてetc...と色々処理やっているので無駄なインスタンスの生成は止めましょう

oknyut
質問者

お礼

ありがとうございました。

関連するQ&A