title: performance overhead of the gettext internationalization system in C/C++
body: <p>I just worked through the documentation of <a href="http://www.gnu.org/software/gettext/manual/gettext.html">http://www.gnu.org/software/gettext/manual/gettext.html</a> and there is no discussion at all about the performance overhead. On the internet, I found only performance discussions for other languages (PHP and Java) but nothing for C/C++.</p>
  
  <p>Therefore my questions:</p>
  
  <ol>
  <li><p>What is the performance overhead during startup of a program that uses gettext (load shared library? How are the translations loaded into memory? Are all translations loaded on startup or on-demand?)</p></li>
  <li><p>What is the performance penalty during normal operation of the program? (i.e. when a translation is needed) How large is the increased memory footprint of the program and how is the memory organized? Is there a higher danger/possibility that parts of the program are swapped to disk when the program is idle? (If the translations are stored in a very different part of the memory than the rest of the program, then in my understanding the chance of a page fault is higher than compared to an un-internationalized version of the program)</p></li>
  <li><p>Does a program that runs under the "C"-locale also suffer these performance penalties?</p></li>
  </ol>
  
  <p>Thanks a lot.</p>