Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [VisualStudio C#] Speicherauslastung analysieren (https://www.delphipraxis.net/141338-%5Bvisualstudio-c-%5D-speicherauslastung-analysieren.html)

geisi 7. Okt 2009 09:19


[VisualStudio C#] Speicherauslastung analysieren
 
Hallo! hab das problem, dass mein programm (C# unter VisualStudio) zu viel Arbeitsspeicher benötigt bzw. verbraucht! kann ich irgendwie mit visualstudio im debugging modus auch die speicherauslastung des programms anzeigen lassen, damit ich sehe, welcher programmteil dafür verantwortlich ist?

MagicAndre1981 7. Okt 2009 10:02

Re: [VisualStudio C#] Speicherauslastung analysieren
 
das VS kann das selber erst ab der Development Edition oder Visual Studio Team Suite.

Wenn du eine kleinere Edition nutzt, musst du Fremd-Addins dazu einsetzen wie das hier:

http://www.jetbrains.com/profiler/index.html

Phoenix 7. Okt 2009 10:17

Re: [VisualStudio C#] Speicherauslastung analysieren
 
Gute Profiling Tools sind leider nur für Geld zu haben.
Aber wenn Deine Anwendung zu viel Speicher zieht, dann liegt das im .NET Bereich meistens daran, dass sehr viele Objekte erzeugt und sofort wieder verworfen werden.

Machst Du irgendwo in einer Schleife sowas wie
Code:
string test;
for (int i=0; i<=xy; i++)
{
   test += 'irgendwas'; // gaaaanz böse Speicher & Performancefalle -> Stringbuilder verwenden
}
Oder auch:
Code:
for (int i=0; i<=xy; i++)
{
   var obj = new Object(); // muss ja aufgeräumt werden nach dem Durchlauf
   // ... tu was
}
?
Wenn Du sowas in schleifen mit einer großen Anzahl von Durchläufen machst, dann macht es ggf. Sinn, nach einer bestimmten Anzahl von Durchläufen den garbage Collector manuell anzustossen. Vielleicht kommt der nämlich während der ganzen Schleifen nicht zum aufräumen. Also auf dem GarbageCollector Collect() und WaitForPendingFinalizers() (oder so ähnlich?) aufrufen.

geisi 7. Okt 2009 10:23

Re: [VisualStudio C#] Speicherauslastung analysieren
 
Zitat:

Zitat von MagicAndre1981
das VS kann das selber erst ab der Development Edition oder Visual Studio Team Suite.

Wenn du eine kleinere Edition nutzt, musst du Fremd-Addins dazu einsetzen wie das hier:

http://www.jetbrains.com/profiler/index.html

Ich habe VisualStudio 2008 Professional Edition installiert, geht das damit auch? Ich habe dotTrace installiert, aber kann der bei windows mobile applications kein profiling machen!

MagicAndre1981 7. Okt 2009 10:57

Re: [VisualStudio C#] Speicherauslastung analysieren
 
ob dotTrace Windows mobile applications unterstützt kann ich dir nicht sagen. Wenn nicht such mal nach anderen Profilern. Die haben ja alle eine Testzeit, in dieser du das Problem ja finden solltest.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:56 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz