From 4d938d149e782a6e2fed668eec4e1a023df9f35c Mon Sep 17 00:00:00 2001
From: zhangmeng <775834166@qq.com>
Date: 星期一, 26 十二月 2022 10:15:37 +0800
Subject: [PATCH] optimize cpu

---
 3dparty/bus_nng/x86_64/libbus_nng.so  |    0 
 main.cpp                              |   11 ++++++-----
 message.cpp                           |   11 +++++++----
 3dparty/bus_nng/aarch64/libbus_nng.so |    0 
 4 files changed, 13 insertions(+), 9 deletions(-)

diff --git a/3dparty/bus_nng/aarch64/libbus_nng.so b/3dparty/bus_nng/aarch64/libbus_nng.so
index 5d3099e..60c34d7 100755
--- a/3dparty/bus_nng/aarch64/libbus_nng.so
+++ b/3dparty/bus_nng/aarch64/libbus_nng.so
Binary files differ
diff --git a/3dparty/bus_nng/x86_64/libbus_nng.so b/3dparty/bus_nng/x86_64/libbus_nng.so
index d52d466..ceb0f8e 100755
--- a/3dparty/bus_nng/x86_64/libbus_nng.so
+++ b/3dparty/bus_nng/x86_64/libbus_nng.so
Binary files differ
diff --git a/main.cpp b/main.cpp
index 35b6ddf..8811cf0 100644
--- a/main.cpp
+++ b/main.cpp
@@ -41,7 +41,7 @@
 
             int ret = bus_client_publish(handle, i.data(), i.size(), msg.data(), msg.size());
             printf("======>> bus_client_pubmsg [%s] ret %d\n", msg.c_str(), ret);
-            this_thread::sleep_for(chrono::seconds{2});
+            this_thread::sleep_for(chrono::seconds{1});
         }
     }
 }
@@ -61,6 +61,7 @@
     while (true) {
         auto msg = bus_client_get_submsg(handle);
         printf("SUB msg topic [%s] data [%s]\n", msg->topic, msg->msg);
+        free_submsg(msg);
     }
 
     bus_client_free(handle);
@@ -76,10 +77,10 @@
     creg_free(reg);
 
     size_t count = 0;
-    string base_msg("test_request==");
+    string base_msg("test_request==request message -> msg-");
     this_thread::sleep_for(chrono::seconds(3));
     while (true) {
-        auto msg = base_msg + "request message -> msg-"+to_string(count++);
+        auto msg = base_msg + to_string(count++);
         auto reqmsg = make_req_msg(topic, topicl, msg.data(), msg.size());
         crepmsg* repmsg = NULL;
         if (bus_client_request(handle, reqmsg, &repmsg)){
@@ -118,7 +119,7 @@
         printf("REPREQ msg [%s] \n", msg->msg);
 
         free_reqmsg(msg);
-        this_thread::sleep_for(chrono::seconds{2});
+        // this_thread::sleep_for(chrono::seconds{2});
     }
 }
 
@@ -137,4 +138,4 @@
     reply(rrtopic);
 
     return 0;
-}
\ No newline at end of file
+}
diff --git a/message.cpp b/message.cpp
index 8766730..5c15f6c 100644
--- a/message.cpp
+++ b/message.cpp
@@ -269,8 +269,7 @@
             char* entry = NULL;
             size_t entry_size = 0;
             json2str(sv, &entry, &entry_size);
-            arr[i] = ptrT<char>(entry_size+1);
-            memcpy(arr[i], entry, entry_size);
+            arr[i] = entry;
         }
         return make_tuple(arr, count);
     };
@@ -474,7 +473,11 @@
     tie(msg->procid, msg->procidl) = copymemory(pid, pids);
 
     MsgRequestTopic msgRT;
-    if (!msgRT.ParseFromArray(data, size)) return NULL;
+    if (!msgRT.ParseFromArray(data, size)) {
+        free(msg->procid);
+        free(msg);
+        return NULL;
+    }
     tie(msg->msg, msg->msgl) = copymemory(msgRT.data());
 
     return msg;
@@ -488,7 +491,7 @@
     msgRT.set_topic(topic, topicl);
     msgRT.set_data(data, datal);
 
-    auto pbstr = msgRT.SerializeAsString();
+    const auto& pbstr = msgRT.SerializeAsString();
     tie(msg->msg, msg->msgl) = copymemory(pbstr);
 
     return msg;

--
Gitblit v1.8.0