Использование кучи памяти для Openssl - PullRequest
1 голос
/ 04 октября 2011

У меня есть простой HTTPS-сервер, реализованный с библиотекой Openssl на C. Использование кучи кажется огромным для одного соединения. Ниже приведены некоторые объекты, которые могут занимать много места в куче:

  • char readbuffer[8192]
  • SSL_CTX
  • SSL

Это нормально? Есть ли инструмент, который может узнать, какой объект занимает сколько кучи?

HEAP SUMMARY:
==7644==     in use at exit: 78,502 bytes in 2,366 blocks
==7644==   total heap usage: 3,548 allocs, 1,182 frees, 3,139,689 bytes allocated
==7644==
==7644== LEAK SUMMARY:
==7644==    definitely lost: 0 bytes in 0 blocks
==7644==    indirectly lost: 0 bytes in 0 blocks
==7644==      possibly lost: 0 bytes in 0 blocks
==7644==    still reachable: 78,502 bytes in 2,366 blocks
==7644==         suppressed: 0 bytes in 0 blocks

1 Ответ

0 голосов
/ 04 октября 2011

Попробуйте выяснить, какие вызовы malloc и когда. Dmalloc может помочь: http://dmalloc.com/

Однажды я также использовал простой скрипт-обертку для отслеживания распределения памяти вручную. Я думаю, что это было этим: http://www.cs.cmu.edu/afs/cs.cmu.edu/academic/class/15213-s03/src/interposition/mymalloc.c

...