Seneste forumindlæg
Køb / Salg
 * Uofficiel Black/White liste V3
Login / opret bruger

Forum \ Software \ Generel software
Denne tråd er over 6 måneder gammel

Er du sikker på, at du har noget relevant at tilføje?

Hukommelses forbrug og internet explore.

Af Monsterbruger jhc_denmark | 21-11-2011 21:42 | 2941 visninger | 18 svar, hop til seneste
Hej Angående hukommelses forbrug og Internet explore så er det helt vildt at processen kan bruge op til flere hundrede megabyte bare for at kører en html... side - godt nok med integreret lydt og video men alligvel så er det meget. Nu er jeg programmør at den gamle skole som kan programmere det meste selv og jeg har lavet en windows service som tager fat i de enkelte kørende processor og formindsker den allokeret hukommelse som processen bruger til at være det øjeblikkelige arbejdsområde som processen har brug for. Tager typisk og mindste forbruget af hukommelse fra eksempelvis 100 mb. til 8-10 stykker. En slags garbage collection. Dog kan jeg ikke få adgang til selve det adresse område som processen bruger for at se hvad type af data som der gøres brug af - fordi jeg ikke kender det offset som der bruges men kun har adgang til nogle lowlevel windows funktioner. Nogen som har en forklaring på hvorfor der bruges så meget hukommelse og som har en måde at tilgå de data.
--
Mvh. JHC AMD 1055T, Asus M4A77T, 16gb. DDR3 ram, MSI 6870 HAWK, 2 * LG E2260. 5x750 + 43" 3D plasma skærm fra Samsung
#1
jhc_denmark
Monsterbruger
22-11-2011 20:50

Rapporter til Admin
come on - der må da være nogen som ved noget andet end bare hardware :)
--
Mvh. JHC AMD 1055T, Asus M4A77T, 16gb. DDR3 ram, MSI 6870 HAWK, 2 * LG E2260. 5x750 + 43" 3D plasma skærm fra Samsung
#2
NitroBlast
Giga Nørd
22-11-2011 21:06

Rapporter til Admin
IE9 bruger lige nu 75mb på at have 2 faner (begge på HOL) åbne på mit system, så det er nu ganske normalt, at IE sluger en del RAM. At du har programmeret en service, der kan formindske andre processers arbejdsområde, vil jeg gerne stille spørgsmålstegn ved, da det kræver nogle specielle rettigheder at tilgå en anden process' allokeringsområde - endsige ændre omfanget af dette.
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, 560GTX/Ti HAWK
#3
jhc_denmark
Monsterbruger
23-11-2011 09:02

Rapporter til Admin
Det er nu faktisk slet ikke så svært - http://msdn.microsoft.com[...] Delphi koden vil se sådant her ud - procedure SetMemoeryAllocated(Sender: TObject); var MainHandle : THandle; begin MainHandle := OpenProcess(PROCESS_ALL_ACCESS, false,GetCurrentProcessID); SetProcessWorkingSetSize(MainHandle,DWORD(-1),DWORD(-1- )); CloseHandle(MainHandle); end; Du skal så bare have fat i det handle til den process som du øsnker at resize istedet for GetCurrentProcessID.
--
Mvh. JHC AMD 1055T, Asus M4A77T, 16gb. DDR3 ram, MSI 6870 HAWK, 2 * LG E2260. 5x750 + 43" 3D plasma skærm fra Samsung
#4
NitroBlast
Giga Nørd
23-11-2011 10:11

Rapporter til Admin
Den kode, du bruger, giver kun adgang til processer, der har en identisk eller "løsere" DACL. IE9 er AFAIK en beskyttet process, og derfor er det kun Ring0 / Kernel drivere, der kan få adgang til dens hukommelsesområde. For at kunne rendere en webside, så skal der bruges relativt meget RAM til formateringer/css og buffere (et full-hd skærmbillede fylder feks. 7,9MB). Desuden er der en del tilføjelsesprogrammer, som også skal indlæses i IE's adresseområde (java, flash, adobe-reader, script-host etc.).
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, 560GTX/Ti HAWK
#5
jhc_denmark
Monsterbruger
23-11-2011 10:50

Rapporter til Admin
Hej Jeg er enig i at IE9 skal bruge en del resourcer til rendering og buffer osv. men det ændre stadig ikke på at hukommelses forbruget er for stort. Eksempelvis bruger IE9 netop nu hos mig lige i underkanten af 200 mb. Kører med 4 faneblade hvor en af dem er streaming af musik. Testede lige med IE9 og jo den reducere faktisk hukommelsen. Startede en ny instanc af IE9 åbnede dr.dk samt download.com . Efter det var gjort brute IE9 cirka 25 megabyte hukommelse - kørte mit lille program og derefter var forbruet på 3 mb.
--
Mvh. JHC AMD 1055T, Asus M4A77T, 16gb. DDR3 ram, MSI 6870 HAWK, 2 * LG E2260. 5x750 + 43" 3D plasma skærm fra Samsung
#6
NitroBlast
Giga Nørd
23-11-2011 11:43

Rapporter til Admin
Tvivler på at EI9 kan have 2 sider åbne og kun bruge 3MB.. Men nu dit lille program virker, så er dit problem jo løst ;-)
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, 560GTX/Ti HAWK
#7
jhc_denmark
Monsterbruger
23-11-2011 19:27

Rapporter til Admin
#6 Hvorfor tvivler du på hvad jeg siger - har alligevel været programmer de sidste 14 år.
--
Mvh. JHC AMD 1055T, Asus M4A77T, 16gb. DDR3 ram, MSI 6870 HAWK, 2 * LG E2260. 5x750 + 43" 3D plasma skærm fra Samsung
#8
Perfektus
Supporter
23-11-2011 19:31

Rapporter til Admin
Hvis du sidder og køre Flash så giver det jo god mening.. Du må dog godt nok være en fesen programmør hvis du koder i Delphi og bruger Internet Explore :D!
--
The only gaming community you need -> http://www.colossusgaming.com[...] coming soon It bloggin & programmerings tutorials. http://www.perfektus.dk[...]
#9
jhc_denmark
Monsterbruger
23-11-2011 19:35

Rapporter til Admin
Koder nu også .Net men indtil fornyligt så har Delphi bare været beder til at lave Windows applikationer. Den stump kode som jeg postede kommer fra et gammel program som jeg begynde at kode i 2001 - lidt over 1. mill linier kode - med 3rd part komponenter. Men jo den skal kodes om til .net men det tager lige et par år at kode den om :) Det gamle program kører Citrix med en del brugere som kører samme applikation og for at spare på forbruget af ram så kører den koden en gang i minuttet - yes en svinks metode men den fugnere :)
--
Mvh. JHC AMD 1055T, Asus M4A77T, 16gb. DDR3 ram, MSI 6870 HAWK, 2 * LG E2260. 5x750 + 43" 3D plasma skærm fra Samsung
#10
NitroBlast
Giga Nørd
24-11-2011 09:56

Rapporter til Admin
#7 Jeg tvivler, fordi det ikke giver mening, at hukommelses-forbruget i IE9 skulle kunne trimmes med ~88%. Et delphi-program, der indeholder en enkelt form og lidt forskellige controls, og som fylder ~1MiB som EXE (compileret uden runtimes), og som ikke har reserveret nævneværdigt hukommelse napper snildt 2MB hukommelse. Et program får tildelt hukommelse efter behov. Fylder et program 2MiB ved opstart, og efterfølgende reserverer 20MiB til buffers mv., så er hukommelsesforbruget 22MiB - også selvom den reserverede hukommelse frigives igen. Sådan er det, fordi hvis programmet en gang har haft behov for at bruge 20MiB - så kan det også få brug for det igen, og derfor kan de 20MiB lige så godt cachelagres til programmet, så det kan afvikles hurtigere. Hvis windows altid skulle trimme programmer, så de kun bruger den hukommelse, de rent faktisk har reserveret, så ville der blive spildt tid og effektivitet på hele tiden at frigive og reservere hukommelse. Fint, at du har programmeret i 14 år - så mangler du stadig 7 års erfaring for at matche mig ;-D #8 Delphi er et meget effektivt sprog til alm. programmering. Der er kun meget få situationer, hvor Delphi er uegnet.
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, 560GTX/Ti HAWK
#11
jhc_denmark
Monsterbruger
24-11-2011 10:02

Rapporter til Admin
Korrekt men du ser samtidig med at programmer som er kørende som blot reservere mere og mere hukommelse og jeg er ikke enig med dig i at det ikke kan betale sig at frigive hukommelsen igen. Hvorfor ikke optimere den måde som hukommelsen er brugt på - der er ikke tale om mange nano sekunder før hukommelsen er frigivet igen og du vil kunne kører flere samtidige programmer.
--
Mvh. JHC AMD 1055T, Asus M4A77T, 16gb. DDR3 ram, MSI 6870 HAWK, 2 * LG E2260. 5x750 + 43" 3D plasma skærm fra Samsung
#12
NitroBlast
Giga Nørd
24-11-2011 10:41

Rapporter til Admin
#11 Du kan køre lige mange programmer - uanset hvor meget RAM de bruger. Windows kan snildt finde ud af, at trimme efter behov, og swappe hvis det kniber. Hvis programmer reserverer mere og mere, er det jo fordi der er et behov for det - programmerne gør det næppe for at drille dig ;-) Du kan derfor ikke indskrænke et program, der har behov for 20MiB hukommelse, til kun at bruge 2MiB - det giver slet ikke mening. Din rutine der er vældig spøjs, men den har ingen positiv indvirkning på systemets yddeevne, for den fjerner blot de individuelle processers garbage collection, der er til for at optimere deres ydeevne.
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, 560GTX/Ti HAWK
#13
jhc_denmark
Monsterbruger
24-11-2011 10:57

Rapporter til Admin
Hej Jo den har faktisk en indvirken - vi har nogle Citrix servere som bruger den Delphi applikation som jeg har udviklet. Det er en kæmpe applikation som før nemt kunne bruge 100 til 150 mb. per bruger. Pga. af massiv billedbehandling osv. Da hver af vores citrix server har 4 gb. ram så det satte hurtigt en begrænsing af vor mange brugere der kunne være. Alt som ikke blev brugt længere blev frgivet via en FreeAndNil men fedt hjalp det. Da jeg så satte en lille timer til at kører hvert minut så var det muligt at kører flere brugere på hver server.
--
Mvh. JHC AMD 1055T, Asus M4A77T, 16gb. DDR3 ram, MSI 6870 HAWK, 2 * LG E2260. 5x750 + 43" 3D plasma skærm fra Samsung
#14
bjarkehansen
Megabruger
02-12-2011 22:49

Rapporter til Admin
Hej Jeg har en firma laptop, hvor tvunget til at bruge internet explorer ( 8.0.7600.16385 ) Jeg har brokket mig til den IT ansvarlige igennem lang tid, fordi hukommelsen bliver fyldt op (der er kun 2GB i laptoppen) Jeg har nu fundet ud af, at der ikke frigives hukommelse selvom jeg lukker faneblade. Fx hvis jeg lukker faneblade og åbner nogle nye bliver computeren bare langsomere og langsommere, hukommelsen frigives først når internet explorer lukkes helt ned.. Nogen der kender til dette problem
--
#15
MortenBoye
Nørd Aspirant
02-12-2011 22:51

Rapporter til Admin
Det er jo det samme hver gang du er på tønden - det hjælper ikke bare at slå låget ned - når du åbner igen ligger lorten der stadig. ;) Du skal huske også at skylle. ;) Langt de fleste browsere (udover IE) har indført memflush for lang tid siden.
--
Im So Meta Even This Acronym msn via email Apple-nørd for HOL.dk
#16
bjarkehansen
Megabruger
02-12-2011 22:54

Rapporter til Admin
#15 Forklar? memflush? Altså jeg oplever ikke problemet på min privat pc hvor jeg bruger google chrome, og da jeg kunne indstallere hvad jeg ville på firma pc´en og brugte google chrome var der heller ikke problemer
--
#17
NitroBlast
Giga Nørd
02-12-2011 22:58

Rapporter til Admin
#14 2GB RAM er heller ikke meget - specielt ikke hvis du har et 32bit styresystem. #15 Sludder! Find lige nogle links, der underbygger din påstand, for dem ville jeg meget gerne se!? Det er Windows, der styrer programmernes hukommelsesbrug og garbage collection, og der bliver kun frigivet ubrugt RAM, når der er brug for det.
--
http://xlinx.dk[...] i7 2600K, 16GB PC3-12800, GA-X68XP-UD4 R1, GTX 560Ti HAWK
#18
jhc_denmark
Supporter Aspirant
03-12-2011 10:02

Rapporter til Admin
nogen som kunne være interesseret i at prøve mit lille program
--
Mvh. JHC AMD 1055T, Asus M4A77T, 16gb. DDR3 ram, MSI 6870 HAWK, 2 * LG E2260. 5x750 + 43" 3D plasma skærm fra Samsung

Opret svar til indlægget: Hukommelses forbrug og internet explore.

Grundet øget spam aktivitet fra gæstebrugere, er det desværre ikke længere muligt, at oprette svar som gæst.

Hvis du ønsker at deltage i debatten, skal du oprette en brugerprofil.

Opret bruger | Login
NYHEDSBREV
Afstemning


ANNONCE