Увеличить скорость вызовов API osx - PullRequest
0 голосов
/ 22 мая 2018

Я хочу сделать свои вызовы API как можно быстрее, используя swift.Я знаю, что использование Alamofire помогает в скорости, но есть ли что-нибудь быстрее, чем использование Alamofire?Я создаю программное обеспечение для торговли, поэтому каждая миллисекунда имеет огромное значение.Это запросы "post" и "get", которые я делаю для выполнения сделок.Прямо сейчас есть большая изменчивость в скорости звонков.Я знаю, что есть платформы, такие как neumob, которые ускоряют приложения, поэтому я хотел бы знать, есть ли какие-либо концепции, которые я могу применить к своему приложению.Я разрабатываю его с помощью swift, и он будет работать на OS X.

Я также использую веб-сокет для получения данных из книги заказов.Для подключения к веб-сокету я использую Starscream.Если есть лучший способ подключения к розетке, я бы тоже хотел это знать.

Ответы [ 2 ]

0 голосов
/ 22 мая 2018

Скорее всего, ваша программа связана с вводом / выводом, а не с процессором, поэтому основным узким местом будет ваше интернет-соединение и передаваемые данные.

Если вы не можете изменить протокол связи, потому что вы неуправлять сервером API, единственное, что вы можете сделать, это запустить приложение в центре обработки данных, который географически близок к серверу API.Поскольку сервис требует от вас использования HTTP и веб-сокетов, вы не сможете работать намного быстрее, чем NSURLSession, Alamofire или Starscream без многолетней оптимизации.

Если вы можете управлять сервером API, вы можете переключиться наобычный TCP или даже UDP.Тогда вы могли бы придумать собственный протокол связи, который использует небольшие двоичные сообщения.


Конечно, вы должны сначала профилировать и выяснить, какие части вашего кода медленны.Может быть другой код, выполнение которого занимает несколько миллисекунд.

0 голосов
/ 22 мая 2018

Если важны миллисекунды, вы не должны использовать HTTP.Или даже TCP.AFAIK, большинство торговых приложений используют потоковые соединения какого-то рода, обычно передающие протобуфы вместо JSON, поэтому события приходят так же быстро, как они передаются по проводам.Если исключить, что прямое использование URLSession может быть на несколько инструкций быстрее, чем Alamofire, в который входит URLSession, но я сомневаюсь, что это будет заметно.Что касается HTTP-соединения, URLSession довольно чертовски быстр, как Safari и остальная часть системы.

...