expertenaustausch > microsoft.* > microsoft.vc

Karsten Schulz (20.08.2008, 09:18)
Hi NG,

wir haben eine DLL die generiert dynamisch Rechtecke, jedes dieser
Rechtecke wird mit einem new placement erzeugt, dennoch werden
viele Allocations durchgeführt.

Das Problem ist ,das selbst die Release Version der DLL , in einem
im Stepmodus betriebenen Project, derart viel Rechenzeit für
benötigt das es so nicht verwendbar ist.

Es benötigt ca. das 500fache an Arbeitszeit, gegenüber einer
normal ausgeführten Application, ein Reinsteppen kann ja nie
erfolgen die release Version verfügt über keinerlei Debuginfos.

Das die im selben processraum ausgeführt wird, wurden alle
MemleakFinder deaktiviert dennoch das verhalten bleibt
immer gleich, wie kann man verhindern das im Debugmodus
eine DLL Speicherseitig scheinbar überwacht wird vom VS Debugger ?

Danke für Hinweise
grüße
Karsten Schulz
Martin Richter [MVP] (20.08.2008, 09:43)
Hallo Karsten!

> wir haben eine DLL die generiert dynamisch Rechtecke, jedes dieser
> Rechtecke wird mit einem new placement erzeugt, dennoch werden
> viele Allocations durchgeführt.


Ein Placement new führt keine Alocation aus.

Wird jedes Rectangle alliene allokiert? Dann solltest Du versuchen eher
einen Pool,Allocator zu verwenden, wie das die MFC macht.

> Es benötigt ca. das 500fache an Arbeitszeit, gegenüber einer
> normal ausgeführten Application, ein Reinsteppen kann ja nie
> erfolgen die release Version verfügt über keinerlei Debuginfos.


Dann erzeuge doch Debug Infos für die Release Version. Geht doch!
Karsten Schulz (20.08.2008, 13:50)
Hallo Martin!

> Ein Placement new führt keine Alocation aus. ich weiß was ein replace new ist :-)


Ich habe die Sache vorhin selbst noch so optimiert,
das ich für die 2000 GrundObjekte die je 10000 Punkte halten
auch ein replace new eingebaut habe, ich konnte damit die
Leistung vervierfachen. Ich habe gehofft, das man
wie im release die Memory verfolgung auch im debug
mit haltepunkte zumindes für DLL's abschlaten
könnte , das würde doch toll sein .

Aus diesen Punkten werden dann rechtecke erzeugt,
(Max / Min) jedoch weit weniger als es Punkte gibt,
ca 1000 stück das macht dann wieder keine Probleme.

Danke erstmal nun geht es so einigermaßen.. :-/

grüße
Karsten Schulz

"Martin Richter [MVP]" <martin.richter> schrieb im Newsbeitrag
news:7d01
[..]
Ähnliche Themen