WSL2环境下json.load解析AWS Lambda响应异常缓慢的诊断与解决求助
WSL2环境下json.load解析AWS Lambda响应异常缓慢的诊断与解决求助
我遇到了一个非常诡异的性能问题,想请教大家怎么诊断和解决:
我的设备是Precision 5520(11代i7、64GB内存),在WSL2运行Ubuntu 20.04 LTS系统时,解析AWS Lambda返回的JSON响应居然要花一分多钟!但同样的代码在PythonAnywhere或者Windows主机上运行却快得多,完全搞不懂哪里出了问题。
相关代码片段
import time import json # 假设client是已初始化完成的AWS Lambda客户端 def ms_now(): return int(time.time_ns() / 1000000) class Timer(): def __init__(self): self.start = ms_now() def stop(self): return ms_now() - self.start timer = Timer() # 调用AWS Lambda函数 response = client.invoke( FunctionName='my-aws-lambda-function', Payload=json.dumps({'body': texts}), ) print("response", timer.stop(), flush=True) payload_json = response['Payload'] print("payload_json", timer.stop(), flush=True) # 耗时异常的JSON解析步骤 result = json.load(payload_json) print("result", timer.stop(), flush=True)
这段代码调用的Lambda函数会返回包含38400个浮点数的响应,数据量其实并不算大。
不同环境的运行耗时(单位:毫秒)
WSL2环境:
response 5619
payload_json 5620
result 76314可以看到
json.load解析步骤居然花了76秒多,这完全超出预期。PythonAnywhere环境:
解析步骤仅耗时约100毫秒,速度完全正常。Windows主机环境(直接运行脚本):
response 1934
payload_json 1934
result 3239解析也只花了3秒左右,同样正常。
我的观察与怀疑
有人可能会觉得是WSL2的网络速度慢,但我用pip安装HuggingFace的sentence-transformers这种依赖包很大的库时,下载速度是很快的,所以应该不是网络的问题。我现在怀疑是WSL2本身的某些机制导致了JSON解析的性能瓶颈,但不知道该从哪里入手排查,想请教各位有没有可行的诊断方向或者解决办法?
备注:内容来源于stack exchange,提问作者AlwaysLearning
相关产品推荐
相关产品推荐

