You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中提升请求速度?币安API低延迟优化咨询

代码优化建议与C++重写必要性分析

现有代码的隐藏优化点

针对requests代码段的优化

  • 连接复用:当前代码每次请求都会新建TCP/TLS连接,握手开销占延迟很大比例。改用requests.Session()复用连接池,避免重复握手:
    session = requests.Session()
    # 配置连接池与TLS 1.3
    ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
    ctx.min_version = ssl.TLSVersion.TLSv1_3
    adapter = requests.adapters.HTTPAdapter(pool_connections=10, pool_maxsize=10)
    session.mount('https://', adapter)
    # 发起请求
    response = session.post(url, headers=headers, json=request_data)
    response = response.json()['data']
    
  • 简化JSON解析:直接用response.json()替代json.loads(response.text),减少一次字节到字符串的转换开销,requests内部会直接从响应字节流解析JSON。

针对http.client代码段的优化

  • 连接复用:不要每次请求新建HTTPSConnection,复用同一个连接对象(需处理连接断开后的重连逻辑):
    # 初始化一次连接,配置TLS 1.3
    ctx = ssl.SSLContext(ssl.PROTOCOL_TLS_CLIENT)
    ctx.min_version = ssl.TLSVersion.TLSv1_3
    conn = http.client.HTTPSConnection(host, context=ctx)
    conn.set_alive_timeout(30)  # 设置长连接超时
    
    # 多次请求复用该连接
    conn.request("POST", endpoint, payload, headers)
    res = conn.getresponse()
    data = json.loads(res.read())
    
  • 避免冗余解码:res.read()返回的字节流可直接传入json.loads,无需先转成UTF-8字符串,减少一次转换开销。

通用优化措施

  • DNS缓存:Python默认DNS缓存时间极短,可手动缓存解析后的IP地址,避免每次请求触发DNS查询:
    import socket
    # 提前解析并缓存IP
    cached_ip = socket.gethostbyname(host)
    # http.client直接用缓存IP,需手动添加Host头
    conn = http.client.HTTPSConnection(cached_ip, context=ctx)
    headers['Host'] = host
    
  • 减少序列化开销:如果request_data已提前序列化为JSON字符串,直接用data参数(requests)或传入序列化后的payload(http.client),避免重复执行json.dumps。
  • 系统TCP调优:在AWS东京节点启用TCP Fast Open、调整TCP窗口大小等参数,减少网络传输延迟(如执行sysctl -w net.ipv4.tcp_fastopen=3)。

是否需要改用C++重写?

  • 优先完成Python代码优化:绝大多数场景下,延迟瓶颈来自网络握手、传输而非Python的CPU执行效率。完成上述优化(尤其是连接复用、TLS 1.3、DNS缓存)后,延迟会有明显下降,通常能满足币安API的低延迟需求。
  • C++重写的适用场景:如果请求频率极高(每秒数百次以上),且Python的GIL或IO模型成为性能瓶颈,此时C++结合libcurl等高性能HTTP库能进一步压缩延迟,但重写成本高,需权衡开发维护代价。
  • 折中方案:若Python优化后仍不达标,可尝试用pycurl(libcurl的Python绑定)替代原生HTTP库,它比requests/http.client性能更高,同时保留Python的开发效率。

内容的提问来源于stack exchange,提问作者Арт

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 06:30:52