[an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]
[an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive] (none) [an error occurred while processing this directive] [an error occurred while processing this directive] [an error occurred while processing this directive][an error occurred while processing this directive]![]() |
![]() |
![]() |
|||||||||||||||||||||||||
|
|||||||||||||||||||||||||||
![]() |
![]() |
![]() |
Bo Simonsen <sslug@sslug> writes: > Lyder absurt, hvordan kan du vurdere at hukommelsen ikke bliver > frigivet.. Du kan muligvis stadig få fat i hukommelses området med de > samme data som der var før free(), men det free() gør at den slette det > memory område i Operativ systemet memory tabel, ergo ved OS'et den kan > bruge memory området igen. Det er faktisk ikke normalt at free frigiver hukommelse direkte til styresystemet (altså kernen). Oftest vil malloc/free vedligeholde en intern heap og kun under visse forhold vil denne heap blive trimmet. Det kan nemlig være relativt dyrt at bede kernen om mere eller mindre hukommelse, derfor forsøger man ikke at gøre det for tit. > (Jeg mener ikke malloc er et system kald direkte til kernel, jeg mener > man skal igennem nogle andre funktioner). I glibc bliver store blokke allokeret med mmap og mindre bidder fra en heap hvis størelse ændres med sbrk. > Men tænk på hvor mange programmer der bruger malloc/free, så jeg tendere > mere til det må være en programmeringsfejl i dit software desværre. Når man programmerer embedded systemer uden en MMU må man være forberedt på at hugge en hæl og skære en tå i forbindelse med hukommelsesstyring. Det lyder ikke usandsynligt at MicroBlaze af performancehensyn bare lader free være en noop. -- Peter Makholm | What if: sslug@sslug | IBM bought Xenix from Microsoft instead of buying http://hacking.dk | DOS?
![]() |
![]() |
![]() |
||||||||||||
|
||||||||||||||
![]() | ||||||||||||||
|
||||||||||||||
![]() |
![]() |
![]() |