Ubuntu Sunucusu (64-Bit) için C++ uygulamasında 7/24 çalışması gereken bir program kodladım. Sunucuda 2GB RAM var, ancak görünüşe göre programım çok fazla bellek ayırıyor. Bellek kullanımı: Program çok fazla bellek ayırıyor
Bu
sen benim kodu zaten% 17.8 bellek tüketir görme şekli yaklaşık 2 saattop - 13:35:57 up 1:39, 1 user, load average: 0.15, 0.13, 0.08
Tasks: 68 total, 2 running, 66 sleeping, 0 stopped, 0 zombie
%Cpu(s): 1.9 us, 5.7 sy, 0.0 ni, 92.3 id, 0.1 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 2050048 total, 540852 used, 1509196 free, 34872 buffers
KiB Swap: 1509372 total, 0 used, 1509372 free. 93060 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
902 root 20 0 1019896 364920 4492 S 13.1 17.8 13:07.03 Bether
sonra top
çıkışıdır. Bir noktada sunucu, bellek kalmamış olduğundan çökecektir.
Sorunum, programın bunu yapmaması gerektiği, ancak belleğin nereye ayrılacağını ve artık serbest kalmayacağını öğrenemem. Programın en fazla bellek ayırdığı yeri bulmak için belki de gdb
'un içinde bir araç var mı?
Şimdiden teşekkürler!
Bu soru yönetimine daha programlamaya daha fazla ilgilidir ccmalloc, NJAMD, check out! Her neyse, bir bellek sızıntısı olup olmadığını görmek için 'valgrind' deneyebilirsiniz. – Khaled
Evet Gerçekten nereye koyacağımı bilmiyordum. Valgrind'e bir bakacağım, teşekkürler! – Bobface