忍者ブログ

粘土小屋

ネトゲとプログラムのブログ
2017
09,25

«[PR]»

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

2010
07,10

«6日»

STLコンテナにクラスを入れるのは得策ではないというトピックを見つけまして、
自分は思い切りそれをやっていたので、
色々と試したり、先輩に聞いてみたりしてみました。 
(クラスのポインタを持たせるのはOK)

分かった事は、
・コピーコンストラクタ、代入演算子を書く必要が有る
・コンテナが領域を拡張する際に、不具合が起きる
・reserveで領域を拡張している場合はOK
この三つです。

1つ目は良いとして、
2つ目の不具合というのは、
原因は分かりませんが
クラスのインスタンスが無駄に生成されて、破棄されるという
謎のオーバーヘッドが発生するのです。

そもそもポインタで持つ場合より、
コピーする分2倍のオーバーヘッドが有りますが、
reserveで領域を確保せず試した結果、
約4.5倍のオーバーヘッドが確認できました。(コンテナはvector)
つまりこの場合、意図した速度の更に2倍遅いということになります。

ただし、コストは掛かりますが、
飽くまで速度の問題であり、動作事態に影響はない模様です。
無駄にコンストラクトされたオブジェクトは
きちんとデストラクトされます。

つまり、速度の問題であまり悩まなく、
かつポインタで持つ場合になんらかの不具合が有る場合など
有効であるケースも稀にあるようです。
PR
Post your Comment
Name:
Title:
Mail:
URL:
Color:
Comment:
pass: emoji:Vodafone絵文字 i-mode絵文字 Ezweb絵文字

[75] [74] [73] [72] [71] [70] [69] [68] [67] [66] [65]


« 3日: HOME : 5日 »
カレンダー
08 2017/09 10
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
リンク
最新記事
(05/08)
(09/20)
(09/02)
(08/30)
(08/26)
プロフィール
HN:
粘土男
性別:
男性
自己紹介:
レッドストーン、ルシエルブルー、
アラド戦記、ラテール、エルソード、
ファンタジーアースゼロ、などを
せこせことやっております。
プログラミングは、修練中です。

twitter:@rosukaruklame

Powered by Ninja.blog * TemplateDesign by TMP
忍者ブログ[PR]