Heap management

Christos Ricudis ricudis at komodino.itc.auth.gr
Fri Oct 27 11:00:48 EEST 2006


Apostolos Manolitzas wrote:
>
>     Το πρόβλημα μου είναι το εξής στην αρχή το πρόγραμμα έχει μέγεθος 3Μ
>     όταν κάνω όλα τα new το μέγεθος εκτοξεύεται στα 27Μ που το θεωρώ
>     φυσιολογικό γιατί μετράω όλα τα new και είναι πάρα πολλά. Το μεγάλο
>     μου ερώτημα είναι γιατί όταν κάνω τα αντίστοιχα delete δεν πέφτει πάλι
>     στα 3Μ! ή έστω εκεί κοντά. Δηλαδή η μνήμη διατηρείται στα 25Μ και όταν
>     εφαρμόσω πάλι την ίδια ακολουθία εντολών (new - delete) η μνήμη
>     ανεβαίνει στα 30Μ. 
>

Standard malloc() behaviour. H malloc (den kserw ti ginetai sthn C++, 
alla ypo8etw oti h new sthn ousia th malloc() kalei)
mporei na desmeysei mnhmh, alla h free() den einai pote ypoxrewmenh na 
thn epistrepsei sto leitourgiko systhma, kai prepei na ypo8eseis oti DEN 
to kanei.

H "unix-correct" lysh sto problhma sou, legetai fork(). Exeis ena parent 
process, to opoio phrouniazei paidia. Ka8e paidi anoigei ena 
proka8orismeno ari8mo sockets, kanei th douleia tou kai ystera 
termatizei. Ry8mizeis ton proka8orismeno ari8mo sockets symfwna me to 
tradeoff pou 8eleis metaksy tou memory usage kai tou performance ovehead 
logw ths fork.

-- 
Christos Ricudis				ricudis at itc.auth.gr
Systems Administrator				+30-2310-998656
IT Support Center
Aristotle University of Thessaloniki, GREECE




More information about the Linux-greek-users mailing list