Listbox.Clear

7 отговора 287 прегледа
#1

Listbox.Clear

Nqkoi da znae kakuv mu e problema na Listbox.Clear Kato che li ne se osvobojdava napulno pametta zaeta ot predishnite danni. Sus WinXP sum i pravq nabliudeniq chrez TaskManager-a. Napravih si edna programka deto suzdava list sus 30 000 items. Otnachalo zaema 2MB, sled nekolkokratno zapulvane/izprazvane(Clear) na listbox-a se stiga do 7MB. Na men mi e nujno pulno izchistvane na dannite.

Da ne bi TaskManager da pokazva greshno? Zabelqzah, che napr. SADictionary pri promqna na lista s dumi ne osvobojdava napulno pametta.

by Waz Gaa
[email protected]
Отговор
в отговор на Waz Gaa #2

Re: Listbox.Clear

imach li swarzani Objects s stringowete w ListBox? ako da - trqbwa da si gi oswobodish i tqh. BTW Originalniq MemoryManager na Delphito e malko twarde slojen :)) ako nqmash twarde mnogo nishki moje da probwash edin alternatiwen mm deto moje da se swali ot sita na Borland. Probwaj go moje da ti reshi problem ako ne go namerish sfirkaj - az go imam nejde iz diska


------------------------------
I got a COMPILER, and I'm not afraid to use it!
Отговор
в отговор на Waz Gaa #3

Re: Listbox.Clear

Избери някой друг метод за следене на паметта - това да гледаш Task Manager-a не е начина.

Има програми за следене на "лекета" (включая за делфи) - ама не са никак малки. Ако се интересуваш - ще ти дам пове4е информация

---
Е т'ва е живот!
Отговор
в отговор на SDR #4

Re: Listbox.Clear

Ne we Chisto i prosto listbox sus stringcheta. Triqt se i se advat drugi. Qvno ostava malko ot minalite programata mi zapochva da stava PRASE. A moje bi problema e v TaskManager. Chakai da vidim kakvo shte izkara PhantombigASsbitch

by Waz Gaa
[email protected]
Отговор
в отговор на PhantomAS #5

Re: Listbox.Clear

Da. Kaji mi s kakvo da si sledq kolko MB zaema moqta programka. To sigurno i az shte moga da si namerq neshto, no kakto gledam ti znaesh seriozni

by Waz Gaa
[email protected]
Отговор
в отговор на Waz Gaa #6

Re: Listbox.Clear - Извинявай за забавянето...

но ще мога 4ак днес ве4ерта да ти отговоря - аз и без това исках да напиша нещо като малка статия по въпроса.
Още малко търпение и ще намериш отговора на въпроса.

---
Е т'ва е живот!
Отговор
в отговор на Waz Gaa #7

toolche

Привет,
Не зная дали това, което ползвам е най-доброто, но пък на мен ми върши работа и ме предпазва от това да забравя най-брутално някое "леке".
казва се MemProof и е в едно .zip-che около 1.9M - не изисква инсталация - просто пускаш и зареждаш .exe-to или .dll-a
Единственото изискване е няколко опции на компилатора за дебъг.

Интересното в случая е , че с него виждаш как само пускането и спирането на проекта води до неосвободени ресурси и грешки, например user32.dll гърми в LoadCursorA с "The System cannot find the file specified", а kernel32.dll пък прави VirtualAlloc и после остава леке.

btw: Направих проба с 30000 елемента в listbox - в един случай само стрингове , а в другия - с обекти , заемащи по 100 байта всеки - никакви грижи - след освобождаване на обектите и съответно Clear на listboxa всички броячи на MemProof са такива каквито трябва, само споменатата грешка на User32.dll остава

Така че по мое скромно мнение описания от теб случай с TaskManagera не се дължи на лекета от listboxa.

Поздрави

Отговор
в отговор на LongJohn #8

Re: toolche

Откъде може да се дръпне това MemProof ?

Отговор