wangzhengquan
2020-10-21 fd750b33a9814d02691e7681239180048173db65
update
5个文件已添加
7个文件已修改
148 ■■■■ 已修改文件
src/queue/lock_free_queue.h 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/socket/net_mod_server_socket.c 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/socket/net_mod_socket.c 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test_net_socket/net_mod_socket.sh 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test_net_socket/test_net_mod_socket.c 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test_nng/nng_local.png 补丁 | 查看 | 原始文档 | blame | 历史
test_nng/nng_remote.png 补丁 | 查看 | 原始文档 | blame | 历史
test_nng/softbus_local.png 补丁 | 查看 | 原始文档 | blame | 历史
test_nng/softbus_remote.png 补丁 | 查看 | 原始文档 | blame | 历史
test_nng/test_nng 补丁 | 查看 | 原始文档 | blame | 历史
test_nng/test_nng.c 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
test_nng/test_report.mk 117 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/queue/lock_free_queue.h
@@ -160,7 +160,7 @@
    template <typename T, typename AT> class Q_TYPE>
LockFreeQueue<ELEM_T, Allocator, Q_TYPE>::~LockFreeQueue()
{
    LoggerFactory::getLogger()->debug("LockFreeQueue desctroy");
    // LoggerFactory::getLogger()->debug("LockFreeQueue desctroy");
    SemUtil::remove(slots);
    SemUtil::remove(items);
    SemUtil::remove(mutex);
src/socket/net_mod_server_socket.c
@@ -134,7 +134,7 @@
  }
  request_head = NetModSocket::decode_request_head(request_head_bs);
printf("server received request from host = %s:%d\n", request_head.host, request_head.port);
// printf("server received request from host = %s:%d\n", request_head.host, request_head.port);
  if(request_head.content_length > max_buf) {
   
src/socket/net_mod_socket.c
@@ -158,7 +158,7 @@
    request_head.content_length = send_size;
 printf("write_request %s:%d\n", request_head.host, request_head.port);
 // printf("write_request %s:%d\n", request_head.host, request_head.port);
    if(write_request(connfd, request_head, send_buf, send_size) != 0) {
      LoggerFactory::getLogger()->error("write_request failture %s:%d\n", node->host, node->port);
      close_connect(connfd);
@@ -292,7 +292,7 @@
  }
  response_head =  NetModSocket::decode_response_head(response_head_bs);
printf(">>>> read_response %s\n", response_head.host);
// printf(">>>> read_response %s\n", response_head.host);
  if(response_head.code != 0) {
    // 对方没有对应的key
    return 1;
test_net_socket/net_mod_socket.sh
@@ -24,8 +24,8 @@
function scp() {
    scp -P 100 -rp ../build basic@192.168.5.22:/data/disk2/test
    scp -rp ../build basic@192.168.20.10:/data3/workspace/wzq
    scp -P 100 -rp ./softbus basic@192.168.5.22:/data/disk2/test
    scp -rp ./softbus basic@192.168.20.10:/data3/workspace/wzq
}
case ${1} in
test_net_socket/test_net_mod_socket.c
@@ -99,12 +99,12 @@
  int i,j, n, recv_arr_size;
  net_mod_recv_msg_t *recv_arr;
  int node_arr_size = 2;
  int node_arr_size = 1;
    //192.168.20.104
    net_node_t node_arr[] = {
        // {"192.168.5.22", port, 11},
    {"192.168.20.10", port, 11},
    {"192.168.20.104", port, 11}
        //{0, port, 11}
    {"192.168.20.10", port, 11}
    // {"192.168.20.104", port, 11}
    };
  void * client = net_mod_socket_open();
@@ -140,7 +140,7 @@
void mclient(int port) {
  int status, i = 0, processors = 2;
  int status, i = 0, processors = 1;
  void *res[processors];
  // Targ *targs = (Targ *)calloc(processors, sizeof(Targ));
  Targ targs[processors];
test_nng/nng_local.png
test_nng/nng_remote.png
test_nng/softbus_local.png
test_nng/softbus_remote.png
test_nng/test_nng
Binary files differ
test_nng/test_nng.c
@@ -209,16 +209,11 @@
}
int
main(const int argc, const char **argv)
{
  //const char *url = tcp://192.168.20.104:8801
  const char *url = "ipc:///tmp/reqrep.ipc";
  const char *url = "tcp://192.168.20.10:5001";
  //const char *url = "ipc:///tmp/reqrep.ipc";
  
  if (argc < 2) {
    fprintf(stderr, "Usage: %s %s|%s \n", argv[0],  "server", "client");
test_nng/test_report.mk
New file
@@ -0,0 +1,117 @@
# 测试结果
每个测试三次,取平均值
测试时间单位是微妙,1微妙 = 千分之一毫秒 = 十万分之一秒
## softbus 本地测试
|  次   | 用时(微妙)  |
|  ----  | ----  |
| 1 |  37.30 |
| 2  | 37.09 |
| 3  | 37.72 |
| 平均  | 37.36 |
## nng 本地测试
|  次   | 用时(微妙)  |
|  ----  | ----  |
| 1 | 41.57 |
| 2  | 52.38 |
| 3  | 39.68 |
| 平均  |44.54 |
## softbus 网络测试
|  次   | 用时(微妙)  |
|  ----  | ----  |
| 1 | 547.77 |
| 2  | 539.17 |
| 3  | 529.72 |
| 平均  |538.88 |
## nng 网络测试结果
|  次   | 用时(微妙)  |
|  ----  | ----  |
| 1 | 204.48 |
| 2  | 194.51 |
| 3  | 193.36 |
| 平均  | 197.45 |
# 测试结论
本地测试softbus比nng快。 虽然网络测试看起来softbus比nng慢,但是实际上并不具有公平性。因为nng测试只是简单的建立一个连接,然后一直使用这个连接连续发送数据。而softbus为向多节点发送数据与处理网络故障的等情况里做了很复杂的处理。
# 测试输出
## softbus
本地
```
wzq@wzq-B250M-HD3:~/wk/softbus/build (dev)$ ./test_net_mod_socket mclient 5000
开始测试...
发送数目: 100000, 用时: (3 sec 730087 usec), 平均: 37.300870
wzq@wzq-B250M-HD3:~/wk/softbus/build (dev)$ ./test_net_mod_socket mclient 5000
开始测试...
发送数目: 100000, 用时: (3 sec 709180 usec), 平均: 37.091800
wzq@wzq-B250M-HD3:~/wk/softbus/build (dev)$ ./test_net_mod_socket mclient 5000
开始测试...
发送数目: 100000, 用时: (3 sec 772182 usec), 平均: 37.721820
```
网络
```
wzq@wzq-B250M-HD3:~/wk/softbus/build (dev)$ ./test_net_mod_socket mclient 5000
开始测试...
发送数目: 100000, 用时: (54 sec 777229 usec), 平均: 547.772290
wzq@wzq-B250M-HD3:~/wk/softbus/build (dev)$ ./test_net_mod_socket mclient 5000
开始测试...
发送数目: 100000, 用时: (53 sec 917515 usec), 平均: 539.175150
wzq@wzq-B250M-HD3:~/wk/softbus/build (dev)$ ./test_net_mod_socket mclient 5000
开始测试...
发送数目: 100000, 用时: (52 sec 972213 usec), 平均: 529.722130
wzq@wzq-B250M-HD3:~/wk/softbus/build (dev)$ ./test_net_mod_socket mclient 5000
```
## nng
本地
```
wzq@wzq-B250M-HD3:~/wk/softbus/test_nng (dev)$ ./test_nng mclient
开始测试...
发送数目: 100000, 用时: (4 sec 157404 usec), 平均: 41.574040
wzq@wzq-B250M-HD3:~/wk/softbus/test_nng (dev)$ ./test_nng mclient
开始测试...
发送数目: 100000, 用时: (5 sec 238815 usec), 平均: 52.388150
wzq@wzq-B250M-HD3:~/wk/softbus/test_nng (dev)$ ./test_nng mclient
开始测试...
发送数目: 100000, 用时: (3 sec 968687 usec), 平均: 39.686870
```
网络
```
wzq@wzq-B250M-HD3:~/wk/softbus/test_nng (dev)$ ./test_nng mclient
开始测试...
发送数目: 100000, 用时: (20 sec 448536 usec), 平均: 204.485360
wzq@wzq-B250M-HD3:~/wk/softbus/test_nng (dev)$ ./test_nng mclient
开始测试...
发送数目: 100000, 用时: (19 sec 451469 usec), 平均: 194.514690
wzq@wzq-B250M-HD3:~/wk/softbus/test_nng (dev)$ ./test_nng mclient
开始测试...
发送数目: 100000, 用时: (19 sec 336459 usec), 平均: 193.364590
```