zoukankan      html  css  js  c++  java
  • lwip lwiperf 方法进行性能测试 4.5MB/S

    硬件配置: STM32F407 + DP83848 + FreeRTOS V10.1.1 + LWIP 2.1.2    2018年12月5日14:31:24

    1、先读取 PHY 寄存器 , 查看 自主协商 结果

    PHY自主协商结果:ETH_Mode      ETH_Mode_FullDuplex

    PHY自主协商结果:ETH_Speed     ETH_Speed_100M

    2、安装 测试软件 : Jperf2.0下载及使用方法介绍

    3、添加  lwip 源文件 下的 lwip-2.1.2srcappslwiperf    lwiperf.c 文件

    4、407 这端 是 跑 TCP 服务器,然后 电脑客户端去收发数据进行性能测试,代码如下:

    static void vTaskLwipPerf(void *pvParameters)
    {
        
        ip_addr_t  perf_server_ip;
        
        IP_ADDR4( &perf_server_ip, 192, 168, 0, 10 ); //IP 为 407 自己的 静态IP
       for(;;) { lwiperf_start_tcp_server( &perf_server_ip, 9527, NULL, NULL ); vTaskDelay( 2000 / portTICK_PERIOD_MS ); } }

    实测速度如下,只有 1MB/S 不到 的 速度 ,理论应该可以到12.5MB/S 的 速度啊 

     TCP_MSS 280   被我改成了 1460,速度 上升了一个数量级,大概到 4.5MB/S 的 速度 !
     
    /**
     * TCP_TTL: Default Time-To-Live value.
     */
    #define TCP_TTL                 IP_DEFAULT_TTL /* IP 数据包中的TTL 的值 */
    
    /* Controls if TCP should queue segments that arrive out of
       order. Define to 0 if your device is low on memory. */
    #define TCP_QUEUE_OOSEQ         ( LWIP_TCP )  /* TCP是否缓冲接收到的无序报文段 */
    
    /* TCP Maximum segment size. */
    #define TCP_MSS                 (1500 - 40)      /* TCP_MSS = (Ethernet MTU - IP header size - TCP header size) TCP最大报文段大小 */
    
    /* TCP sender buffer space (bytes). */
    #define TCP_SND_BUF             (4*TCP_MSS)   /* TCP 发送缓冲区大小,增大该值可以提升TCP性能 */
    
    /* TCP receive window. */
    #define TCP_WND                 (4*TCP_MSS)   /* TCP 发送窗口大小,增大改值可以提升TCP性能 */

  • 相关阅读:
    Mysql存储类型选择
    Mysql的MVCC
    SQL标准中的四种隔离级别
    web权限管理总结
    关于oauth2中为什么不直接返回token而是传授权码code
    课程作业——爬取校园新闻首页的新闻的详情,使用正则表达式,函数抽离
    网络爬虫基础练习
    Python中文词频统计
    关于Maven的配置与学习
    课程作业——综合练习:英文词频统计
  • 原文地址:https://www.cnblogs.com/suozhang/p/10070440.html
Copyright © 2011-2022 走看看