You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Andrew Stitcher <as...@redhat.com> on 2006/12/04 17:17:15 UTC
Low hanging fruit: Performance patch
This patch improves the performance of my test by about 20%
It removes a lot of unnecessary string creation, as ...::check(...) is
called for every CHECK_APR_SUCCESS(), and they are very frequent.
[At this point it seems I have come to the end of the "low hanging
fruit" though. I'll have to do some real work to get performance wins]
Index: cpp/lib/common/sys/apr/APRBase.h
===================================================================
--- cpp/lib/common/sys/apr/APRBase.h (revision 482153)
+++ cpp/lib/common/sys/apr/APRBase.h (working copy)
@@ -52,7 +52,7 @@
};
//this is also a convenient place for a helper function for error
checking:
- void check(apr_status_t status, const std::string& file, const int
line);
+ void check(apr_status_t status, const char* file, const int line);
std::string get_desc(apr_status_t status);
#define CHECK_APR_SUCCESS(A) qpid::sys::check(A, __FILE__, __LINE__);
Index: cpp/lib/common/sys/apr/APRBase.cpp
===================================================================
--- cpp/lib/common/sys/apr/APRBase.cpp (revision 482153)
+++ cpp/lib/common/sys/apr/APRBase.cpp (working copy)
@@ -82,7 +82,7 @@
getInstance()->_decrement();
}
-void qpid::sys::check(apr_status_t status, const std::string& file,
const int line){
+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];