Size of object code

Linphone-sdk has build options to disable features, allowing to reduce the size of generated object code.

For instance, the on Android, armv7 architecture, the size of object code can be less than 10 Mb:

cmake -DENABLE_VIDEO=OFF -DENABLE_ADVANCED_IM=OFF -DENABLE_ZRTP=OFF -DENABLE_DB_STORAGE=OFF -DENABLE_VCARD=OFF -DENABLE_MKV=OFF -DENABLE_GPL_THIRD_PARTIES=OFF -DLINPHONESDK_PLATFORM=Android

-rw-r--r-- 1 smorlat smorlat  657200 Oct 24 11:00 libc++_shared.so
-rw-r--r-- 1 smorlat smorlat  526232 Oct 24 11:00 libbctoolbox.so
-rw-r--r-- 1 smorlat smorlat 6752688 Oct 24 11:00 liblinphone.so
-rw-r--r-- 1 smorlat smorlat  290520 Oct 24 11:00 libmswebrtc.so
-rw-r--r-- 1 smorlat smorlat   26540 Oct 24 11:00 libmsaaudio.so
-rw-r--r-- 1 smorlat smorlat  881128 Oct 24 11:00 libmediastreamer.so
-rw-r--r-- 1 smorlat smorlat  135988 Oct 24 11:00 libortp.so

CPU and memory usage

The following table provides CPU and memory usage numbers for some usual scenarios:

ScenarioCPU %Resident Size

Audio call with Opus codec, 48Khz, echo cancellation (webrtcaecm at 16khz)

Cortex A7 900Mhz (like Raspberry Pi2, with cpu throttling disabled)

24%

(uses a single core)

20 000 Kb

Audio+Video call with G711, echo cancellation and VP8 video (VGA @ 15fps),

Cortex A7 900Mhz (like Raspberry Pi2)

80%

(uses 4 cores)

36 0000 Kb
   

Audio call with G729, no echo cancelation

Cortex A7 900Mhz (like Raspberry Pi2,cpu throttling disabled)

7%

(uses a single core)

17 000Kb

3 way conference call with G729, no echo cancelation

Cortex A7 900Mhz (like Raspberry Pi2,cpu throttling disabled)

14%

(uses a single core)

19 000Kb
   

Audio call with OPUS, 48Khz, no echo cancelation

Cortex A7 900Mhz (like Raspberry Pi2, cpu throttling disabled)

24%

(uses a single core)

20 000Kb

3 way conference call with OPUS, 48Khz, no echo cancelation

Cortex A7 900Mhz (like Raspberry Pi2 cpu throttling disabled)

42%

(uses a single core)

20 000kb
   

Audio call with G711, no echo cancelation

Cortex A7 900Mhz (like Raspberry Pi2, cpu throttling disabled)

3%

(uses a single core)

17 000kb

3 way conference call  with G711, no echo cancelation

Cortex A7 900Mhz (like Raspberry Pi2, cpu throttling disabled)

7%

(uses a single core)

18 000kb

 

Tags: