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