我有一个应用程序,该应用程序每秒发送请求以进行查看,在那里我从API获取数据并从客户端返回响应,因此
我看到它占用大量CPU。
为什么会占用大量CPU?
如何优化它? -我必须按下要下载货币的点,并且需要每秒下载数据
我应该使用WebSocket吗?
Ajax代码:
var ajaxFn = function () {
$.ajax({
url: '{% url "coinbase_currency_ajax" %}',
success: function (response) {
if(response) {
for(var elem in response) {
$("#"+elem).text(response[elem]+"$");
}
setTimeout(ajaxFn, 1000);
}
}
});
};
ajaxFn();
查看代码:
def currency_price_list(request):
client=CoinbaseService().client
btc = client.get_buy_price(currency_pair='BTC-USD') #API COINBASE
ltc = client.get_buy_price(currency_pair='LTC-USD')
eth = client.get_buy_price(currency_pair='ETH-USD')
bch = client.get_buy_price(currency_pair='BCH-USD')
return JsonResponse({
"btc": btc['amount'],
"ltc": ltc['amount'],
"eth": eth['amount'],
"bch": bch['amount']
}, safe=False)
答案 0 :(得分:1)
网络活动听起来不应该占用CPU ...您可能想检查每个请求的初始创建,或者随后对检索到的数据的处理是否占用大量CPU。
如果实际上是网络,那么可以,也许可以看看API是否支持Websocket。