提高API调用的速度osx

时间:2018-05-22 18:25:50

标签: swift macos alamofire

我希望使用swift尽可能快地进行API调用。我知道使用Alamofire有助于提高速度,但有没有比使用Alamofire更快的东西?我正在创建交易软件,所以每毫秒都会产生巨大的差异。这些是" post"并且"得到"请求我正在执行交易。现在,呼叫的速度有很多变化。我知道有像neumob这样的平台可以加速应用程序,所以我想知道是否有任何类似我可以应用于我的应用程序的概念。我正在使用swift开发它,它将在OS X上运行。

我也使用websocket来获取订单簿数据。为了连接websocket,我正在使用红蜘蛛。如果有更好的方法连接到插座我也很想知道。

2 个答案:

答案 0 :(得分:1)

如果毫秒很重要,您就不应该使用HTTP。甚至是TCP。 AFAIK,大多数交易应用程序使用某种类型的流连接,通常传输protobufs而不是JSON,因此事件的发送速度与它们通过网络发送的速度一样快。除此之外,使用URLSession可能比Alamofire更快地使用URLSession指令URLSession,但我怀疑它会产生显着的差异。就HTTP连接而言,{{1}}非常快,因为这是Safari和系统其他部分所使用的。

答案 1 :(得分:0)

您的程序非常可能受I / O限制,而不受CPU限制,因此主要的瓶颈将是您的Internet连接及其传输的数据。

如果由于您不控制API服务器而无法更改通信协议,则您唯一能做的就是在地理位置靠近API服务器的数据中心运行您的应用程序。只要服务要求您使用HTTP和Web套接字,如果没有多年的优化,您就不能比NSURLSession,Alamofire或Starscream快得多。

如果您可以控制API服务器,则可以切换到纯TCP甚至UDP。然后你可以想出一个使用小二进制消息的自定义通信协议。

当然,您必须先进行配置文件并实际查明代码的哪些部分很慢。可能还有其他代码需要几毫秒才能运行。