Avatar billede tubber Juniormester
02. november 2002 - 16:20 Der er 16 kommentarer og
1 løsning

Flush mem og virtual mem

Hej der

Hvordan får jeg VB til at tømme min mem og virtual mem ?

/Tubber
Avatar billede sjh Nybegynder
02. november 2002 - 21:19 #1
du kunne jo lave et program som genstarter din computer :-)))
Avatar billede tubber Juniormester
02. november 2002 - 21:32 #2
hehe jaja den er god med dig....men så er jeg jo lige vidt.....

Det jeg menere er mem og virtual mem bliver fragmenteret når det er den først har loadet noget og så unloadet, er det jo ikke det hele der forsvinder....så det vil jeg have UD - VÆK - OVER på din puter......et eller andet....
Avatar billede sjh Nybegynder
02. november 2002 - 21:42 #3
jeg ved det ikke, jeg ville bare lave lidt sjov ;)
Avatar billede chris2k Nybegynder
02. november 2002 - 21:46 #4
Altså hvorfor vil du det? Det er en meget advanceret og farlig ting... Du kan jo miste ting, ved at gøre det. I værste fald smadre din windows... Men det kan helt sikkert lade sig gøre...

Hvorfor vil du det? Hvis du snakker om nogle Objects som ikke bliver slettet, skal du huske og give den en "Set obj = Nothing".

Forms vil vb håndtere selv, men der er 2 primære måder at gøre det på:

1:
frmMain.Show (vil faktisk lave en Load frmMain, og bagefter frmMain.Show)

Dim frm as Form
Set frm = New frmMain
frmMain.Show

når du så er færdig med den:
Unload frmMain
Set frmMain = Nothing

Håber det hjælper, ellers må du være mere præcis...
Avatar billede tubber Juniormester
02. november 2002 - 21:53 #5
Ok

Jeg har lavet et program der åbner en fil som binær og genkeder filtypen.
Derefter lukker den filen, flytter den til et bestemt dir, og renamer den med den rette extension.

Eks. Den åbner en chk fil og genkender den som en gif, så flytter den filen over i et biblotek der hedder gif, og renamer den til name.gif i stedet for name.chk........

Nu sidder jeg lige og laver sådan at den sortere alle filer over 10mb fra inden den går i gang og smidder dem i et biblotek der hedder large......

Nu er det jeg vil sikre mig der altid er mem til mit program, inden jeg sætter den igang med mine 11k chk filer fra en død disk.....
Avatar billede tubber Juniormester
02. november 2002 - 21:54 #6
Der er f.eks. et prog som WinRamTurbo XP det kan flushe fragments i ens mem......det er sådan noget jeg leder efter.....
Avatar billede chris2k Nybegynder
02. november 2002 - 21:59 #7
Du har ikke brug for at flushe ram... Og hvis du har, er det fordi du ikke kan finde ud af at kode. Sorry jeg siger det på den måde, men det du har lavet er et memory leak. Dvs du ryder ikke op efter dig, når du har haft noget loaded. Tingne vil blive fjernet når dit program lukkes af windows.

Prøv at give mig noget kode, så skal jeg som om jeg kan finde nogle problemer...
Avatar billede tubber Juniormester
02. november 2002 - 23:40 #8
Finder løsningen et andet sted så......

Hvis jeg lukker hver eneste fil efter mig, så kan man ikke gøre mere.....

Og du siger også dermed at alle dem der laver professionelt software ikke kan kode......
Avatar billede chris2k Nybegynder
03. november 2002 - 01:03 #9
Lol, la nu vær med at tage det så tungt : ) Tror ikke det er nok at lukke hver eneste fil efter dig... Hvis du læser binært må du jo læse nogle data ind i et Byte Array... Måske ville det være en god idé og tømme den også... Sådan nogle ting jeg tænkte på... Hvis du har lyst, kan jeg lige kigge din kode igennem, og så kan jeg se om jeg kan finde nogle ting som kunne lave fejl... Bare et tilbud...
Avatar billede tubber Juniormester
03. november 2002 - 01:22 #10
Hvorfor skal jeg tømme noget som jeg bare fylder igen.....
Avatar billede chris2k Nybegynder
03. november 2002 - 02:12 #11
Øhm, hvad er problemet helt præcist? Tror jeg må have misforstået noget et eller andet sted? Du kan jo ikke tømme din ram permenent? Den vil jo altid blive fyldt igen.

Du vil ikke vise noget kode eller hvad?
Avatar billede tubber Juniormester
03. november 2002 - 02:16 #12
Jeg vil have svar på mit spg. og det får jeg ikke ved at paste kode...

Hvor svært er det at forstå jeg stiller et spg. for at få svar på det og ikke alt muligt andet ?

Jeg har tools der kan gøre det, men det hjælper mig ikke, da jeg så har flere ting kørende.......
Avatar billede chris2k Nybegynder
03. november 2002 - 02:18 #13
OK.

Svar: Kan ikke lade sig gøre, og frarådes hvis du vil hacke noget (som dine tools gør)

Svar du kan bruge til noget: Forklar hvad dit problem er, så skal jeg se om jeg kan finde en løsning. Jeg vil have kode og forklaringer på hvilke ting det er du forsøger at undgå.
Avatar billede tubber Juniormester
03. november 2002 - 02:22 #14
Jeg vil FRIGØRE RAM OG VIRTUAL MEM.....

Og hvad hacker jeg eller mine tools ? nu må du fanme holde op.....
Avatar billede chris2k Nybegynder
03. november 2002 - 02:54 #15
Altså sagen er den, at når et program starter op, så siger den at jeg skal bruge så og så meget ram... Det kan så ændre sig i programmets levetid, efter behov. Windows er designet sådan, at det er kernel'en der håndtere disse ting. Kernel'en vil ikke lade andre programmer gå ind og ændre i rammen (memory range) på noget tidspunkt, og dette ville også være katastrofalt. F.eks. hvis du har en pointer til et bestemt sted i memory, som så ikke findes længere... Så vil dit program gå ned med et stort brag. Det var det som tit skete i de glade win9x tider... Så styrede programmerne sådan lidt selv hvor de gerne ville gemme deres ting (nogle af dem), og nogle gange gik lortet i sort. Det er den fejl der hedder "Address Violation" (Adresse Overskridelse).
Dette er så blevet lavet om i NT kernel'en. Her får programmerne slet ikke lov til det, men man kan sikkert stadig godt gøre det med noget assembler kode, hvis man er snedig nok...

Hvis du specifikt snakker om VM, så er der nogle kendte problemer der. Du kan risikere at din page file bliver spanned ud på din harddisk, og det kan give hastigheds problemer. Men det er nok ikke det du er interesseret i...

Så fik du lidt baggrunds historie...

(Og lad venligst vær med at stille spørgsmål til min kompentance. Arbejder bla. med C++ servere som skal styre kontrol systemer på fabrikker. Her er et memory leak absolut ikke noget der må ske. Det koster et par millioner i timen at have en fabrik stående stille.)
Avatar billede tubber Juniormester
03. november 2002 - 02:59 #16
Go'Nat - Lukker.....
Avatar billede sjh Nybegynder
03. november 2002 - 03:19 #17
jeg fandt en gang et lille program på www.planet-source-code.com
er det sådan noget du er ude efter?

http://home.get2net.dk/sjh/eksperten/278480/Free%20Mem.zip
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester