One of the improvements made in wolfSSL 1.8.0 is lower overall memory use through the use of configurable input / output buffer sizes and less dynamic memory use.
wolfSSL 1.8.0 uses small static buffers for input and output. They default to 128 bytes and are controlled by the RECORD_SIZE define in cyassl_int.h. If an input record is received that is greater in size than the static buffer, then a dynamic buffer is temporarily used to handle the request and then freed. You can set the static buffer size up to the MAX_RECORD_SIZE which is 2^16 or 16,384. For more information about wolfSSL`s input and output buffer`s, see the wolfSSL Extensions Reference, Section XIII.
In addition to the input and output buffers, If the fast-math library is used when building wolfSSL, all dynamic memory use for public key cryptography may be reduced. The normal math library uses dynamic memory for big integers, but fastmath uses fixed-size buffers that hold 4096 bit integers by default (allowing for 2048 bit by 2048 bit multiplications). You can learn more about fastmath and how to enable it in the wolfSSL 1.8.0 Manual.
If you would like more information on wolfSSL or are interested in using it in your product, please contact info@yassl.com.