|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
Примерно 600 миллисекунд уходит на то чтобы принять из CACHE (MINIM) простую текстовую строку длиной до 1000 байт через XMLHttpRequest. Как можно ускорить?var xhr=new XMLHttpRequest(); xhr.open('GET',mConnect,false); xhr.send(null); res=xhr.responseText; ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 13:27 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
MX-9, От задачи зависит. Если это передача большого объёма данных, то хороший эффект может дать собственная буферизация в строку длиной ~ 32K-128K. Т.е. "классический" код:writerecord(record) write record quitможет работать в 1.5-2 раза медленнее, чем код, использующий собственную буферизацию:writerecord(record,buffer) s buffer=$g(buffer),lsum=$l(buffer)+$l(record) if lsum<$$$BUFFERSIZE set buffer=buffer_record quit if lsum'>$$$MAXSTRLEN write buffer_record set buffer="" quit write buffer,record set buffer="" quitФайл открывался в обоих случаях с опциями "WU". Лишние системные вызовы оказались значительно дороже лишних M-команд (в разумных пределах, конечно). Думаю, что при обмене через сокет можно ожидать аналогичного эффекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 14:02 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 14:20 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
Accept-Encoding: gzip, deflate Например ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 15:08 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
Timur SafinAccept-Encoding: gzip, deflate Напримертогда наверно иClassMethod OnPreHTTP() As %Boolean [ ServerOnly = 1 ] { s %response.GzipOutput=1 q 1 } ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 15:17 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
MX-9Примерно 600 миллисекунд уходит на то чтобы принять из CACHE (MINIM) простую текстовую строку длиной до 1000 байт через XMLHttpRequest. Когда речь о производительности запросов, здесь очень и очень много факторов которые могут на это влиять сразу нужно вспоминать, о том что вы не первый кто об этом задумался, и у нас уже есть много инструментов позволяющих это мерять. со стороны браузера, есть Navigation Timing API, тут есть примеры как мерить потом, можно померить сколько времени было затрачено именно на стороне Cache. Далее, вместе с веб-сервером, а вместе с сетевыми задержками это уже браузер можно уще воспользоваться cURL, чтобы в консоли смотреть время выполнения запросов. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 15:28 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
Спасибо за наводки ! (правда МИНИМ не имеет всех упомянутых системных программ) длинные строки проходят нормально - при длине более 6000 задержка не 600, а 60 примерно на самых тупых компах, на более продвинутых - около 5 миллисекунд. проблема только с короткими строками (!) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 15:55 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
MX-9на то чтобы принять из CACHE (MINIM)Так Caché или MINIM? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 16:05 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
servit, MUMPS код один и тот же и в CACHE и в MINIM (кроме команд OPEN и USE ). в обоих случаях КОРОТКИЕ строки передаются клиенту намного медленнее (600 ms) чем длинные (5...60 ms) . клиенты : Windows-8, IE-10 , IE-11 , 32 или 64 бит. Строки просто читаются из глобалов. затем write webTitle,str,*-3 в заголовке webTitle среди прочего указана и длина строки. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 17:03 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
MX-9 , Решение проблемы может отличаться в Caché и MiniM. Поэтому и хотелось уточнить, что для Вас приоритетней, учитываяMX-9правда МИНИМ не имеет всех упомянутых системных программ ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 17:21 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
servit, и то, и то, и можно без хлеба :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 17:35 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
MX-9write webTitle,str,*-3 в заголовке webTitle среди прочего указана и длина строки.Такое впечатление, что срабатывает алгоритм Nagle : "поступило слишком мало данных, подождём, когда капнут ещё". Не действует ли опция /NODELAY=0? По умолчанию в Cache /NODELAY=1, вообще-то. См. OPEN and USE Command Keywords for TCP Devices Если нет, м.б. стоит попробовать изменить алгоритм обмена так, чтобы (как уже говорил) предварительно накапливать строки в собственном буфере приемлемой длины, и выводить в сокет уже его. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 18:10 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
Alexey Maslov, да - очень похоже и в интернете гутарят про то же. вопрос - почему "win - составитель tcp-поездов" игнорит установку по умолчанию в CACHE ? как временная мера - добавляю коротким строкам 6000 нулей - CACHE летает :) но это так - шоферские байки надо сделать правильно. агрегировать несколько ответов не могу - клиенту надо здесь и сейчас - он, например, вводит данные со сложной синхронной многофакторной проверкой. все что можно сагрегировать - уже сагрегировано до нас... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 18:27 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
MX-9, попробуй Gaming Tweak - Disable Nagle's algorithm (сам не пробовал, за последствия не отвечаю ))). ... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2015, 18:50 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
MX-9вопрос - почему "win - составитель tcp-поездов" игнорит установку по умолчанию в CACHE ?Возможно дело в версии Caché (и/или CSP-Gateway)? Проверил в Caché 2016.1 скорость между двумя физическими машинами по локальной сети: маленькие пакеты летают (~5ms). Код REST-приложенияClass sqlru.rest Extends %CSP.REST { Parameter CHARSET = "UTF-8"; Parameter CONTENTTYPE = {..#CONTENTTYPETEXT}; Parameter CONVERTINPUTSTREAM = {$$$YES}; Parameter UseSession As BOOLEAN = {$$$YES}; XData UrlMap [ XMLNamespace = " http://www.intersystems.com/urlmap" ] { <Routes> <Route Url="/test/:i" Method="GET" Call="Test"/> <Route Url="/" Method="GET" Call="MainPage"/> </Routes> } ClassMethod Test(i) As %Status { w "asd"_i q $$$OK } ClassMethod MainPage() As %Status { #dim %response As %CSP.Response s %response.ContentType="text/html" &html<<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"/> <script type="text/javascript"> function test() { var xhr=new XMLHttpRequest(); var res; var N=100; var start=new Date(); for(var i=0;i<N;i++) { xhr.open('GET','test/'+i,false); xhr.send(); res=xhr.responseText; } alert('Последний результат = '+res+'\nВремя одной итерации ~ '+((new Date()-start)/N).toPrecision(4)+' мс.'); } </script> </head> <body><button onclick="test()">Запустить</button></body> </html>> q $$$OK } } Результат: Код: plaintext 1.
Код: plaintext
PS: реестр не менялся на обеих машинах. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 10:39 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
Кстати, включить/отключить алгоритм Nagle можно и в самом CSP шлюзе:CSP.ini Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 11:21 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
servitКстати, включить/отключить алгоритм Nagle можно и в самом CSP шлюзе:В версии 2015.1 в CSP.ini такого параметра не вижу, при этом в CSP.log: Nagle_Algorithm=Disabled. Судя по всему, это умолчание, к тому же, не найдя описания, рискну предположить, что он, как и другие параметры СSP-шлюза, влияет на его поведение как клиента по отношению к Cache. А MX-9 явно испытывает проблемы на стороне сервера. P.S. О CSP-шлюзе Версия: 2015.1.2.607.0.15502 № билда шлюза: 1501.1472 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 13:12 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
Alexey MaslovВ версии 2015.1 в CSP.ini такого параметра не вижу, при этом в CSP.log: Nagle_Algorithm=Disabled. Судя по всему, это умолчаниеИменно так. Alexey Maslovрискну предположить, что он, как и другие параметры СSP-шлюза, влияет на его поведение как клиента по отношению к Cache.Если CSP-шлюз и Caché на разных машинах, то может иметь влияние. Alexey MaslovА MX-9 явно испытывает проблемы на стороне сервера.Кстати, у меня и с включённым Nagle_Algorithm=Enabled результаты хорошие. PS: то что проседание наблюдается помимо Caché и в MiniM, наводит на мысль, что дело не в настройках СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 13:52 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
servitPS: то что проседание наблюдается помимо Caché и в MiniM, наводит на мысль, что дело не в настройках СУБД....а также не в шлюзе, т.к. MiniM его не использует. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 15:12 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
Alexey Maslov.а также не в шлюзе, т.к. MiniM его не использует.Да. PS: разнёс браузер+Caché и Apache+CSP-Gateway по разным машинам: скорость хорошая вне зависимости от Nagle_Algorithm и размера пакета (~14 мс.). ... |
|||
:
Нравится:
Не нравится:
|
|||
04.12.2015, 15:26 |
|
[MiniM] Как можно ускорить XMLHttpRequest?
|
|||
---|---|---|---|
#18+
Alexey MaslovservitPS: то что проседание наблюдается помимо Caché и в MiniM, наводит на мысль, что дело не в настройках СУБД....а также не в шлюзе, т.к. MiniM его не использует. Заработало ! программить надо "тщательнЕе". из-за некорректного перехвата ошибок иногда job закрывался аварийно и без соответствующих манипуляций. Взамен открывался новый, получал по эстафете почти все, что надо, поэтому программист на отладке обрыва не замечал. Браузер, похоже, реагировал на разрывы снижением скорости. Спасибо всем Гуру за обсуждение ! ... |
|||
:
Нравится:
Не нравится:
|
|||
15.12.2015, 17:00 |
|
|
start [/forum/topic.php?fid=39&fpage=12&tid=1556548]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
56ms |
get tp. blocked users: |
2ms |
others: | 10ms |
total: | 144ms |
0 / 0 |