MATLAB - медленная работа в сети из-за проверки типа контента? - PullRequest
4 голосов
/ 27 января 2020

Я использую webread () для загрузки данных из API веб-сайта.

Все работает, за исключением того, что каждый вызов функции слишком медленный для моих нужд.

Согласно профилировщику большая часть времени обработки тратится в функции с именем HTTPConnector.getConnectionContentType () .

enter image description here

Но даже не имеет значения, использую ли я weboptions () для указания типа содержимого явно -

HTTPConnector.getConnectionContentType () , кажется, вызывается webread () , несмотря ни на что.

Вот фрагмент кода, показывающий, какие параметры я указал для вызова webread ( ) :

url = %someURL
options = weboptions('MediaType',    'application/json', ...
                     'ContentType',  'json'            , ...
                     'KeyName',      'Authorization'   , ...
                     'KeyValue',    ['Bearer ', api.token]);
response = webread(url, options);

Я что-то не так делаю?

Или есть ли способ ускорить это?

1 Ответ

3 голосов
/ 28 января 2020

Проверка типа не то, что замедляет ваш код. Функция getConnectionContentType является первой функцией, которая требует содержания ответа и, таким образом, запускает загрузку данных. Если вы обойдете его, следующая функция, которая просматривает содержимое, будет отображаться в вашем профиле.

Для справки откройте HTTPConnector.m и прочитайте комментарий для getConnectionContentType

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...