efficiency.html 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. <html>
  2. <head>
  3. <!-- Generated by the Spirit (http://spirit.sf.net) QuickDoc -->
  4. <title>Efficiency</title>
  5. <link rel="stylesheet" href="theme/style.css" type="text/css">
  6. <link rel="prev" href="lazy_construction.html">
  7. <link rel="next" href="inside_phoenix.html">
  8. </head>
  9. <body>
  10. <table width="100%" height="48" border="0" background="theme/bkd2.gif" cellspacing="2">
  11. <tr>
  12. <td width="10">
  13. </td>
  14. <td width="85%">
  15. <font size="6" face="Verdana, Arial, Helvetica, sans-serif"><b>Efficiency</b></font>
  16. </td>
  17. <td width="112"><a href="http://spirit.sf.net"><img src="theme/spirit.gif" align="right" border="0"></a></td>
  18. </tr>
  19. </table>
  20. <br>
  21. <table border="0">
  22. <tr>
  23. <td width="30"><a href="../index.html"><img src="theme/u_arr.gif" border="0"></a></td>
  24. <td width="30"><a href="lazy_construction.html"><img src="theme/l_arr.gif" border="0"></a></td>
  25. <td width="20"><a href="inside_phoenix.html"><img src="theme/r_arr.gif" border="0"></a></td>
  26. </tr>
  27. </table>
  28. <p>
  29. Now this is important. Operators that form expressions and statements, while truly expressive, should be used judiciously and sparingly. While aggressive compiler optimizations and inline code helps a lot to produce tighter and faster code, lazy operators and statements will always have more overhead compared to lazy- functions and bound simple functors especially when the logic gets to be quite complex. It is not only run-time code that hits a penalty, complex expressions involving lazy-operators and lazy- functions are also much more difficult to parse and compile by the host C++ compiler and results in much longer compile times.</p>
  30. <table width="80%" border="0" align="center">
  31. <tr>
  32. <td class="note_box">
  33. <img src="theme/bulb.gif"></img> <b>Lambda vs. Offline Functions</b><br><br>The best way to use the framework is to write generic off-line lazy functions (see functions) then call these functions lazily using straight-forward inline lazy-operators and lazy-statements. </td>
  34. </tr>
  35. </table>
  36. <p>
  37. While it is indeed satisfying to impress others with quite esoteric uses of operator overloading and generative programming as can be done by lazy-operators and lazy-statements, these tools are meant to be used for the right job. That said, caveat-emptor.</p>
  38. <table width="80%" border="0" align="center">
  39. <tr>
  40. <td class="note_box">
  41. <img src="theme/note.gif"></img> need benchmarks, benchmarks, and more benchmarks </td>
  42. </tr>
  43. </table>
  44. <table border="0">
  45. <tr>
  46. <td width="30"><a href="../index.html"><img src="theme/u_arr.gif" border="0"></a></td>
  47. <td width="30"><a href="lazy_construction.html"><img src="theme/l_arr.gif" border="0"></a></td>
  48. <td width="20"><a href="inside_phoenix.html"><img src="theme/r_arr.gif" border="0"></a></td>
  49. </tr>
  50. </table>
  51. <br>
  52. <hr size="1">
  53. <p class="copyright">Copyright &copy; 2001-2002 Joel de Guzman<br>
  54. <br>
  55. <font size="2">Use, modification and distribution is subject to the Boost Software
  56. License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
  57. http://www.boost.org/LICENSE_1_0.txt) </font> </p>
  58. </body>
  59. </html>