Skip to content

性能测试方法

性能测试方法一

ipc01

  1. 步骤一:进程A记录起始时间戳start_time。
  2. 步骤二:进程A通过topic1发送数据给进程B,数据中可以打上当前时间戳send_time,便于分析单向发送的延时;
  3. 步骤三:进程B把收到的数据不做任何修改,通过topic2再次发送给进程A。
  4. 步骤四:进程A收到数据了,用当前时间戳recv_time减去数据包中的send_time,就可以得到单次往返的时间间隔。
  5. 步骤五:进程A通过循环不断的给进程B发送数据,发送当前数据时不需要等待前面的数据回来,直到所有数据发送完毕。
  6. 步骤六:进程A在收到最后一个数据之后,记录下结束时间戳end_time。
  7. 步骤七:进程A计算并打印出基础统计信息:
    • 起始时间:start_time
    • 结束时间:end_time
    • 总的耗时(单位:微秒):end_time - start_time
    • 每次发送数据大小(字节):
    • 总共发送数据大小(字节):
    • 总的发送次数(总共发送数据大小 / 每次发送数据大小):
    • 单次来回用时01(微秒):总的耗时 / 总的发送次数
    • 单次来回用时02(微秒):这个和上面那个计算方式有些区别,是计算每个数据包往返的平均值。 ((recv_time01 - send_time01)+(recv_time02 - send_time02) +...))/n,这里的n就是总的发送次数
    • 把结论记录到表格中。

性能测试方法二

ipc02

  1. 步骤一:进程A记录起始时间戳start_time。
  2. 步骤二:进程A按指定的帧率发送数据。帧率可以设置为20fps,25fps,30fps,50fps,100fps,200fps,500fps,1000fps等。发送的数据中可以打上当前时间戳send_time,便于分析单向发送的延时。
  3. 步骤三:进程B收到数据之后。
    • 记录下收到数据的个数。
    • 用当前的时间戳 - 数据包中的send_time = 单向传输延迟(微秒)
  4. 步骤四:进程A发送完所有数据之后,记录下结束时间戳end_time。
  5. 步骤五:进程A计算并打印出基础统计信息:
    • 起始时间:start_time
    • 结束时间:end_time
    • 总的耗时(单位:微秒):end_time - start_time
    • 每次发送数据大小(字节):
    • 总共发送数据大小(字节):
    • 总的发送次数(总共发送数据大小 / 每次发送数据大小):
    • 发送帧率fps(一秒发送几个消息):
  6. 步骤六:手动停止进程B,进程B计算并打印出基础统计信息:
    • 收到的数据包总个数:
    • 单向传输延迟 Latency(微秒):计算每个数据包传输的平均值。
    • 丢包率((进程A发送的数据包总数 - 收到的数据包总个数)/ 进程A发送的数据包总数):
    • 吞吐量 Throughput(MByte/s):收到的所有字节数量 /(结束时间 - 开始时间)

注意事项:

  1. 测试前需要尽量把电脑中无关的程序都关闭了,避免影响。
  2. 如果是用wsl测试的,需要备注是用了wsl。
  3. 需要测试单次发送不同大小的数据量,比如(512Byte,1024Byte,2048Byte,5KByte,10KByte,最大到32MByte)等。
  4. 同样配置最好多次测量,并把测量结果记录表格。
  5. ConnectX底层接入的中间件都需要进行测试并记录,比如(libflow,minieyedds,nanomsg,fastdds,some/ip)等,确保整体性能符合预期。

智能汽车赋能者