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