-
Notifications
You must be signed in to change notification settings - Fork 0
/
small-footprint-sip.htm
73 lines (73 loc) · 3.93 KB
/
small-footprint-sip.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>PJSIP Footprint - Small Footprint Open Source SIP and Media Stack</title>
<LINK href="style/style.css" type="text/css" rel="stylesheet"></head>
<body>
<!--#include file="header.html" -->
<TABLE id="ContentSubTable" cellSpacing="6" cellPadding="4" width="100%" border="0">
<TR>
<TD>
<H1>SIP and Media Footprint</H1>
<P><EM>High performance comes in small footprint</EM></P>
</TD>
<TD>
</TD>
</TR>
<TR>
<TD>
<P> </P>
<P>PJSIP and PJMEDIA was designed from day one to have very small footprint. It
might not be the smallest SIP and media stack around, because the smallest
stack would mean to have the stack designed specificly for the smallest device,
thus probably have the least flexibility, performance, or even features.
</P>
<P>PJSIP and PJMEDIA <STRONG>is</STRONG> a general purpose stack for all types of
SIP applications, with all the features and high performance. But it was
designed to have the very small footprint and to have the features arranged as
such so that unneeded features will not get included in the link process.</P>
<P> </P>
<H1>How the Footprint Report is Generated</H1>
<P>The report is generated by <STRONG><A href="/cgi-bin/viewcvs.cgi/pjproject/trunk/pjsip-apps/build/get-footprint.py?view=markup">get-footprint.py</A></STRONG> Python script from the pjsip-apps/build
directory. The script controls various macros to be defined when building the <STRONG>
<A href="/cgi-bin/viewcvs.cgi/pjproject/trunk/pjsip-apps/src/samples/footprint.c?view=markup">footprint.c</A></STRONG> application, and after each build, it is stripped,
and the application size is calculated with <STRONG>size</STRONG> tool. After
completing each calculation, the script adds more macro to enable more
feature, and re-build and re-calculate the size again. The footprint of a
specific feature is calculated from the difference in application size from the
previous build.</P>
<P>Because the footprint is calculated from total application size (not just sum
of the .o file size), sometimes it happens that the <STRONG>.bss</STRONG> size
of the new executable is actually smaller than previous built, resulting in
negative value to be reported. But I think we can ignore this.</P>
<P> </P>
<H1>Footprint Reports</H1>
<P>Please find below SIP and media footprint reports for various targets.
The report shows the detailed footprint of each SIP and media feature, so that
application designer can see beforehand what is the expected footprint of
the application when certain features are included in the application.</P>
<P> </P>
<P><STRONG><A href="/testing/0.5.6.5/footprint-i386-linux.htm"><FONT size="3">- i386 Linux Application Footprint</FONT></A></STRONG></P>
<BLOCKQUOTE dir="ltr" style="MARGIN-RIGHT: 0px">
<P>Date: July, 13th, 2006</P>
<P>This is the SIP/media footprint for i386/Linux target, with settings
configured to create minimum code size.</P>
</BLOCKQUOTE>
<P><FONT size="3"><STRONG><A href="/testing/0.5.6.5/footprint-arm-rtems.htm">- ARM RTEMS Application Footprint</A></STRONG></FONT></P>
<BLOCKQUOTE dir="ltr" style="MARGIN-RIGHT: 0px">
<P>
Date: July, 13th, 2006</P>
<P>This is the SIP/media footprint for ARM RTEMS target, compiled with the binary
toolchain downloaded from RTEMS website (gcc-3.2.3) and RTEMS 4.6.6. As with
all RTEMS applications, all operating system components and libraries (e.g.
LIBC) are statically linked to the application, and this is included in the
size calculation.</P>
</BLOCKQUOTE>
<P> </P>
</TD>
<TD></TD>
</TR>
</TABLE>
<!--#include file="footer.html" -->
</body>
</html>