Reduce footprint by using string literals.
This change replaces the std::string based exception description
string constants in resource/include/StringConstants.h with
string literals instead. Switching to string literals has a number of
advantages in this case:
- reduced start-up time for binaries that link against liboc
since the static std::string constants no longer have to
be initialized at run-time.
- the compiler is free to place the strings in read-only
memory.
- reduced static and run-time footprint.
Footprint reductions in text, data and bss are as follows:
filename text
std:: const
string char[] Diff Change
InProcClientWrapper.o 81458 77684 -3774 -4.63%
InProcServerWrapper.o 43292 40122 -3170 -7.32%
OCException.o 5399 1956 -3443 -63.77%
OCPlatform_impl.o 25054 21803 -3251 -12.98%
OCPlatform.o 9574 5535 -4039 -42.19%
OCRepresentation.o 97156 93782 -3374 -3.47%
OCResource.o 28565 25048 -3517 -12.31%
OCUtilities.o 19844 15805 -4039 -20.35%
liboc.so 453688 434400 -19288 -4.25%
filename data
std:: const
string char[] Diff Change
InProcClientWrapper.o 1916 1916 0 0.00%
InProcServerWrapper.o 1368 1368 0 0.00%
OCException.o 4 4 0 0.00%
OCPlatform_impl.o 552 552 0 0.00%
OCPlatform.o 8 8 0 0.00%
OCRepresentation.o 388 388 0 0.00%
OCResource.o 100 100 0 0.00%
OCUtilities.o 344 344 0 0.00%
liboc.so 6636 6652 16 0.24%
filename bss
std:: const
string char[] Diff Change
InProcClientWrapper.o 577 309 -268 -46.45%
InProcServerWrapper.o 657 389 -268 -40.79%
OCException.o 320 52 -268 -83.75%
OCPlatform_impl.o 420 152 -268 -63.81%
OCPlatform.o 340 72 -268 -78.82%
OCRepresentation.o 328 60 -268 -81.71%
OCResource.o 340 72 -268 -78.82%
OCUtilities.o 340 72 -268 -78.82%
liboc.so 3340 1192 -2148 -64.31%
filename dec
std:: const
string char[] Diff Change
InProcClientWrapper.o 83951 79909 -4042 -4.81%
InProcServerWrapper.o 45317 41879 -3438 -7.59%
OCException.o 5723 2012 -3711 -64.84%
OCPlatform_impl.o 26026 22507 -3519 -13.52%
OCPlatform.o 9922 5615 -4307 -43.41%
OCRepresentation.o 97872 94230 -3642 -3.72%
OCResource.o 29005 25220 -3785 -13.05%
OCUtilities.o 20528 16221 -4307 -20.98%
liboc.so 463664 442244 -21420 -4.62%
Overall liboc.so drops in size by 20 kilobytes, a 4.62%
reduction in size with these changes in place.
Change-Id: I3e24f56bf702a0ea134b113d542f61e45f8af613
Signed-off-by: Ossama Othman <ossama.othman@intel.com>