konto usunięte

Temat: vs 2005 c# WinForms, standardowe kontrolki - globalny...

Zaznaczam ze mam wlaczone automatyczne aktualizacje...

od jakiegos czasu w kazdej aplikacji (mala, duza, trywialna - jakakolwiek) - wystepuje wyciek pamieci. po zamknieciu ktorejkolwiek z formatek przestal zwalniac pamiec... zuzycie ciagle traktowane jest przyrostowo. W dotTrace tez zadnych szczegolnych problemow nie widze...

private static void GCCheckin()
{
GC.Collect();
GC.WaitForPendingFinalizers();
}

powyzsze tez srednio pomaga, mimo ze dotad radzilo sobie dobrze i o ile wycieku nie zatrzymywalo, to przynajmniej w krytycznych sytuacjach spowalnialo...

Przegrzebalem google i podobnego problemu nie spotkalem.

-==== problem rozwiazany - zwiazany z dziura w mojej wiedzy ====-
Przepraszam za spamowanie :)Piotr Jędrkowiak edytował(a) ten post dnia 17.02.09 o godzinie 14:11

konto usunięte

Temat: vs 2005 c# WinForms, standardowe kontrolki - globalny...

Piotr Jędrkowiak:
od jakiegos czasu w kazdej aplikacji (mala, duza, trywialna - jakakolwiek) - wystepuje wyciek pamieci.
Skoro również dotyczy to małych i trywialnych aplikacji to podeślij kod potrzebny do odtworzenia wycieku.

konto usunięte

Temat: vs 2005 c# WinForms, standardowe kontrolki - globalny...

Powiedzmy ze wywoluje przyciskiem A formatke B:
{
B b = new B();
b.ShowDialog();
}

W formatce B jest przycisk, pod którym siedzi:

{
This.Close();
}

Po zamknięciu ww formatki B pamięć po niej nie zostaje zwolniona, mimo ze Close() wg mojej wiedzy pomóc w jej zwolnieniu powinno.

ale problem uwazam za nieistniejący... Zdaje się, muszę się doedukować z GC :)

Sory za zamieszanie.Piotr Jędrkowiak edytował(a) ten post dnia 17.02.09 o godzinie 14:08

konto usunięte

Temat: vs 2005 c# WinForms, standardowe kontrolki - globalny...

Piotr Jędrkowiak:
Zdaje się, muszę się doedukować z GC :)
GC lepiej nie używaj, po prostu poczytaj sobie o zarządzaniu pamięci w .NET aby się dowiedzieć, że w 99.99% przypadków nic się tutaj nie robi.

A jeżeli już mowa o wyciekach to zwracaj uwagę na wycieki zasobów niezarządzalnych tj. otwartych plików, połączeń do DB, wątków, wygenerowanych proxy itd. W ogólności, jeżeli coś implementuje IDisposable to używaj tego w ramach using(...) {...} i na 99.99% unikniesz problemów

Pozdrawiam

konto usunięte

Temat: vs 2005 c# WinForms, standardowe kontrolki - globalny...

Dokladnie jak mowi Maciek, GC sam zatroszczy sie od oczyszczanie pamieci itd.

uzywajac CLR Profilera (http://www.microsoft.com/downloads/details.aspx?family... mozna sobie podejrzec jak zwalniane sa zasoby przez GC. Przy duzych appsach widac cos na ksztalt odcinkow czasu, co ktore GC czysci zasoby.

konto usunięte

Temat: vs 2005 c# WinForms, standardowe kontrolki - globalny...

Uzywanie GC jest przydatne kiedy budujesz aplikacje alokujace i dealokujace (np.: Uslugi windows zajmujace sie przetwarzaniem danych) duze porcje danych w krotkim czasie. Wyssiesz wtedy cala pamiec bardzo szybko, w takim przypadku mozna stosowac GC.Collect() ale oczywiscie kosztem czasu jaki jest potrzebny zeby posprzatac pamiec.

Tak na marginesie. Normalnie GC rusza do walki z pamiecia co 15 minut.... ale nie mozna temu ufac w 100%.

konto usunięte

Temat: vs 2005 c# WinForms, standardowe kontrolki - globalny...

Dziekuje za porady.

Co do GC to wiedze posiadam (jak sie okazuje za mala...)

Ale co mnie do szalu doprowadzilo to wlasnie to przyrastanie zuzycia pamieci (w efekcie calkiem normalnym objawem bedace)... chyba chcialem, zeby GC dzialalo sterowane myslami... :)

Co do GC.Collect() - czasy procesora przy jego działaniu rzeczywiscie sa w sposob znaczny zauwazalne.

Podsumowujac: najgorzej jest jak sobie czlowiek sam zaczyna sprawiac problemy i w ten piekny sposob niszczy dniowke i plan tego co chcial zrobic, nakrecajac jednoczesnie psychike ze cos nie dziala :P

Dziekuje Panowie jeszcze raz za pomoc i wyjasnienia!
Pozdrawiam,
Piotr

BTW: posiadacie jakies ciekawe linki z tematyka GC?Piotr Jędrkowiak edytował(a) ten post dnia 17.02.09 o godzinie 20:35

konto usunięte

konto usunięte

Temat: vs 2005 c# WinForms, standardowe kontrolki - globalny...

dzieki :)

Następna dyskusja:

Pytanie na temat zachowania...




Wyślij zaproszenie do