针对10种以内币种:多次调用fetch_ticker()是否比fetch_tickers更快?
结论:单次调用指定交易对的
fetch_tickers()更快 毫无疑问,只获取10种以内加密货币行情时,单次调用带目标交易对列表的fetch_tickers(),比循环调用10次fetch_ticker()速度快得多,原因如下:
- 网络开销差异:每个
fetch_ticker()都是独立的HTTP请求,哪怕交易所支持TCP连接复用,每次请求仍会有请求头传输、服务器处理、响应往返的开销。10次请求的总延迟是单次请求的数倍,累加起来的耗时远超过一次请求的开销。 - 数据处理效率:如果调用
fetch_tickers()时传入你需要的交易对列表(比如binance.fetch_tickers(['TRX/USDT', 'ETH/USDT', ...])),交易所只会返回指定币种的行情数据,数据量小、解析速度快。哪怕你不小心调用了无参的fetch_tickers()(返回全币种数据),一次请求的总耗时还是比10次单独请求低——网络请求的开销远大于解析大JSON的时间。 - 额外风险:循环多次调用接口,更容易触发交易所的请求频率限制(虽然10次大概率不会触发,但次数增加后风险上升),而单次请求的频率占用更低。
推荐代码写法
# 定义需要查询的目标交易对列表 target_symbols = ['TRX/USDT', 'ETH/USDT', 'ETC/USDT', 'BTC/USDT'] # 单次请求获取指定币种行情 tickers = binance.fetch_tickers(target_symbols) # 按需提取单个币种数据 trx_ticker = tickers['TRX/USDT'] eth_ticker = tickers['ETH/USDT']
内容的提问来源于stack exchange,提问作者Page Slantunner
相关产品推荐
相关产品推荐

