|
Boost-Commit : |
Subject: [Boost-commit] svn:boost r71457 - in sandbox/local/libs/local/doc/html: . boost_local
From: lorcaminiti_at_[hidden]
Date: 2011-04-23 22:27:43
Author: lcaminiti
Date: 2011-04-23 22:27:42 EDT (Sat, 23 Apr 2011)
New Revision: 71457
URL: http://svn.boost.org/trac/boost/changeset/71457
Log:
Added profiling.
Text files modified:
sandbox/local/libs/local/doc/html/boost_local/Alternatives.html | 36 +++++++++++++++++++-----------------
sandbox/local/libs/local/doc/html/boost_local/Implementation.html | 16 ++++++++--------
sandbox/local/libs/local/doc/html/index.html | 2 +-
3 files changed, 28 insertions(+), 26 deletions(-)
Modified: sandbox/local/libs/local/doc/html/boost_local/Alternatives.html
==============================================================================
--- sandbox/local/libs/local/doc/html/boost_local/Alternatives.html (original)
+++ sandbox/local/libs/local/doc/html/boost_local/Alternatives.html 2011-04-23 22:27:42 EDT (Sat, 23 Apr 2011)
@@ -587,16 +587,17 @@
the different alternatives.
</p>
<p>
- This library has compile-times and generates binary size similar to the ones
- of the other approaches. This library run-times on ISO C++ compliant compilers
- "Boost.Local
- Compliant" were measured to be similar to "Local Functor"
+ This library has compile-times and generates binary sizes similar to the
+ ones of the other approaches. This library run-times on ISO C++ compliant
+ compilers (see "Boost.Local
+ Compliant" below) were measured to be similar to "Local Functor"
but larger than other approaches like "Global Functor", "Boost.Lambda",
or "Boost.Phoenix"
when compiler optimization is enabled. However, on C++03 compilers (e.g.,
- MSVC) this library generates optimized code "Boost.Local"
- that runs as fast as the fastest of the other approaches. Finally, this library
- run-times are always among the fastest when no compiler optimization is used.
+ MSVC) this library generates optimized code (see "Boost.Local"
+ below) that runs as fast as the fastest of the other approaches. Finally,
+ this library run-times are always among the fastest when no compiler optimization
+ is used.
</p>
<div class="note"><table border="0" summary="Note">
<tr>
@@ -614,18 +615,19 @@
allows the compiler to inline all the function calls.
</p>
<p>
- This performance hit on non C++03 compilers might or not be a problem depending
- on the performance requirements of your application. For example, your
- application might already be using a number of indirect function calls
- (function pointers, virtual functions, etc) because of which the overload
- added by using the one extra function pointer required by the local function
- might not be noticeable within your overall program run-time.
+ This run-time performance cost on non C++03 compilers might or not be a
+ problem depending on the performance requirements of your application.
+ For example, your application might already be using a number of indirect
+ function calls (function pointers, virtual functions, etc) for which the
+ overhead added by using the one extra function pointer required by the
+ local function call might not be noticeable within your overall program
+ run-time.
</p>
</td></tr>
</table></div>
<p>
Finally, note that a very simple local function body with only one instruction
- was used for this profiling (see files profile_boost_local.cpp
,
+ was used for the profiling presented here (see files profile_boost_local.cpp
,
<a href="../../../example/profile_boost_local_for_loop.cpp" target="_top"><code class="literal">profile_boost_local_for_loop.cpp</code></a>,
<a href="../../../example/profile_boost_local_optimized.cpp" target="_top"><code class="literal">profile_boost_local_optimized.cpp</code></a>,
<a href="../../../example/profile_local_functor.cpp" target="_top"><code class="literal">profile_local_functor.cpp</code></a>,
@@ -633,9 +635,9 @@
<a href="../../../example/profile_0x_lambda.cpp" target="_top"><code class="literal">profile_0x_lambda.cpp</code></a>,
<a href="../../../example/profile_boost_lambda.cpp" target="_top"><code class="literal">profile_boost_lambda.cpp</code></a>,
and profile_boost_phoenix.cpp
).
- It has not been studied how this library and the other approaches will perform
- with respect to each other when a more complex set of instructions is programmed
- by the local function body.
+ The authors have not studied how this library and the other approaches will
+ perform with respect to each other when a more complex set of instructions
+ is programmed for the local function body.
</p>
<div class="informaltable"><table class="table">
<colgroup>
Modified: sandbox/local/libs/local/doc/html/boost_local/Implementation.html
==============================================================================
--- sandbox/local/libs/local/doc/html/boost_local/Implementation.html (original)
+++ sandbox/local/libs/local/doc/html/boost_local/Implementation.html 2011-04-23 22:27:42 EDT (Sat, 23 Apr 2011)
@@ -226,8 +226,7 @@
cannot be passed as template parameter (for example to the <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">for_each</span></code>
algorithm), this is instead possible on C++03 and later standards. To work
around this limitation, this library investigated the following two tricks
- (both these approaches can be extended to support eventual function default
- parameters):
+ (both tricks can be extended to support eventual function default parameters):
</p>
<div class="orderedlist"><ol class="orderedlist" type="1">
<li class="listitem">
@@ -316,13 +315,14 @@
<p>
The casting functor trick had slightly better run-time performances than
the virtual functor trick so the current implementation of this library uses
- the casting functor trick. However, both methods do not allow for compiler
+ the casting functor trick. However, both tricks do not allow for compiler
optimizations that inline the local function calls because they rely on one
- indirect function call (via either a function pointer or a virtual function)
- that can only be resolved at run-time. Therefore, on C++03 compilers this
- library generates code that passes the local class functor as template parameter
- directly without using neither one of these two tricks in order to take full
- advantage of compiler optimizations that inline the local function calls.
+ indirect function call (via either a function pointer or a virtual function
+ respectively) that can only be resolved at run-time. Therefore, on C++03
+ compilers this library generates code that passes the local class functor
+ as template parameter directly without using neither one of these two tricks
+ in order to take full advantage of compiler optimizations that inline the
+ local function calls.
</p>
</div>
<div class="section">
Modified: sandbox/local/libs/local/doc/html/index.html
==============================================================================
--- sandbox/local/libs/local/doc/html/index.html (original)
+++ sandbox/local/libs/local/doc/html/index.html 2011-04-23 22:27:42 EDT (Sat, 23 Apr 2011)
@@ -416,7 +416,7 @@
</div>
</div>
<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
-<td align="left"><p><small>Last revised: April 24, 2011 at 02:05:22 GMT</small></p></td>
+<td align="left"><p><small>Last revised: April 24, 2011 at 02:27:41 GMT</small></p></td>
<td align="right"><div class="copyright-footer"></div></td>
</tr></table>
<hr>
Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk