Author: kpvdr
Date: Tue Dec 19 12:54:22 2006
New Revision: 488808

URL: http://svn.apache.org/viewvc?view=rev&rev=488808
Log:
[For Andrew Stitcher] inlined qpid::sys::check() in APRBase.h; This is called a 
lot - for every call to an APR call, inlining this seems to give about 8% speed 
in my tests (even though originally check() only seemed to use 1-2% of the 
time). I think this must be a 2nd order instruction caching effect.

Modified:
    incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRBase.cpp
    incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRBase.h

Modified: incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRBase.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRBase.cpp?view=diff&rev=488808&r1=488807&r2=488808
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRBase.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRBase.cpp Tue Dec 19 
12:54:22 2006
@@ -82,16 +82,6 @@
     getInstance()->_decrement();
 }
 
-void qpid::sys::check(apr_status_t status, const char* file, const int line){
-    if (status != APR_SUCCESS){
-        const int size = 50;
-        char tmp[size];
-        std::string msg(apr_strerror(status, tmp, size));
-        throw QpidError(APR_ERROR + ((int) status), msg,
-                        qpid::SrcLine(file, line));
-    }
-}
-
 std::string qpid::sys::get_desc(apr_status_t status){
     const int size = 50;
     char tmp[size];

Modified: incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRBase.h
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRBase.h?view=diff&rev=488808&r1=488807&r2=488808
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRBase.h (original)
+++ incubator/qpid/trunk/qpid/cpp/lib/common/sys/apr/APRBase.h Tue Dec 19 
12:54:22 2006
@@ -24,6 +24,7 @@
 #include <string>
 #include <apr_thread_mutex.h>
 #include <apr_errno.h>
+#include <QpidError.h>
 
 namespace qpid {
 namespace sys {
@@ -58,6 +59,17 @@
 #define CHECK_APR_SUCCESS(A) qpid::sys::check(A, __FILE__, __LINE__); 
 
 }
+}
+
+// Inlined as it is called *a lot*
+void inline qpid::sys::check(apr_status_t status, const char* file, const int 
line){
+    if (status != APR_SUCCESS){
+        const int size = 50;
+        char tmp[size];
+        std::string msg(apr_strerror(status, tmp, size));
+        throw qpid::QpidError(APR_ERROR + ((int) status), msg,
+                        qpid::SrcLine(file, line));
+    }
 }
 
 


Reply via email to