Старатель (Все сообщения пользователя)

Выбрать дату в календареВыбрать дату в календаре

Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 46 След.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
nikolz написал:
"Предполагается, что во всех 4-х тестах время работы скрипта должно быть одинаковым"
Вы это предположили, но не доказали.
В QUIK 8 так и было. Вся информация есть в этой теме.

Но троллю некогда читать посты. В большинстве случаев тролль совсем не разбирается в том, что комментирует.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Daniil Pozdnyakov, по сообщению #179 есть вопросы? Нужно пояснить, что делает скрипт?

После заказа обезличенных сделок скрипт замеряет время получения первых 200000 сделок. После этого скрипт выдаёт замеренное время и отключается.
Тест проводится 4 раза:
1) с созданием локальной переменной, содержащей массив нулевого размера
2) с созданием локальной переменной, содержащей двумерный массив 100x1000
3) с подключением библиотеки socket
4) с подключением библиотеки iuplua

Предполагается, что во всех 4-х тестах время работы скрипта должно быть одинаковым, поскольку колбек OnAllTrade во всех тестах выполняет одну и ту же работу: OnAllTrade содержит только три простых оператора, они не должны существенно влиять на время работы функции.
В действительности же время работы скрипта много больше в тестах 2, 3, 4 по сравнению с тестом 1.
Выводы, вытекающие из теста я неоднократно приводил в этой теме.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
nikolz написал:
запустил Ваш тест на боевом квике
------------------
вот результаты:

Там колбеки-то были? Сравнивать имеет смысл при наличии колбеков.
Цитата
Старатель написал:
Нагрузка на CPU пропорциональна количеству любых объявленных переменных [...] и количеству колбеков, получаемых скриптом.

Скрипт:
Скрытый текст


Результаты в боевом QUIK 9.3.3.3

В утреннюю сессию (~ 9 ч. МСК)

1. n = 0: 18233; 202/сек
Скрытый текст


2. n = 1000000: 19444; 215/сек
Скрытый текст


3. n = 3000000: 18127; 200/сек
Скрытый текст


В дневную сессию (~ 10 ч. МСК)

4. n = 0: 54455; 605/сек
Скрытый текст


5. n = 1000000: 45956; 510/сек
Скрытый текст
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Для слепых, тупых и троллей: здесь один скрипт используется.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Демонстрация CPU Usage в Junior 9.3.3.3

Скрипт:
Скрытый текст

Заказ обезличенных сделок:
Скрытый текст
Получение данных: снята галка "Запрашивать данные раз в ... сек."

1. Загрузка при запущенном скрипте с n = 0 и открытой ТТТ. В ТТТ добавлены 4 класса: те же, что и в ТОС, со всеми параметрами.
Скрытый текст
Практически нулевая - скрипт не оказывает никакого влияния.

2. Загрузка при запущенном скрипте с n = 5000000 и открытой ТТТ.
Скрытый текст
Загрузка стала больше. А что изменилось? Только добавился массив, больше ничего.

3. Загрузка при запущенном скрипте с n = 5000000 и закрытой ТТТ.
Скрытый текст

Daniil Pozdnyakov, если у вас не получается проделать то же самое, готов продемонстрировать на компьютере вашего тестировщика по RDP.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Комментарий к сообщению #19

Тест на Junior 9.3.3.3.
Скрипт:
Скрытый текст

Поочерёдно раскомментирую одну из 4-х первых строк и запускаю скрипт. Далее делаю перезаказ обезличенных сделок:
Система / Настройки / Основные настройки... -> «Программа» / «Получение данных» / «Обезличенные сделки».
Выбираю класс "Акции 1-го уровня (эмулятор)" -> "Перезаказать данные"

Результаты:
Цитата
0: 11.491
100: 27.39
socket: 22.735
iuplua: 31.276
Оговорюсь, что сейчас помимо тестового у меня запущено ещё 3 квика и несколько других приложений. Поэтому результаты могут быть искажены.
Но позволяют сделать следующие выводы:
Цитата
Старатель написал:
Сам по себе скрипт не выполняет какой-либо полезной работы, он только вызывает пустой OnAllTrade(), больше ничего. Увеличение времени работы скрипта при подключении различных библиотек как раз свидетельствует о наличии зависимости нагрузки, создаваемой колбеком, и количеством данных в скрипте.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Сообщение #51 не моё, оставлю без комментариев.

Daniil Pozdnyakov, я правильно понимаю, что тесты проводились на Junior, где количество всех инструментов (если не считать информационный класс) чуть более тысячи? Из которых более половины редко обновляются или не торгуются вообще.
Для справки: у меня в боевом квике, в котором открыты только стаканы и графики по 8-ми фьючерсам, "умный" заказ сформировал список из более 30 тыс. инструментов, которыми я вообще не торгую и не открывал даже. Плюс ко всему инструменты на бою обновляются на порядок чаще, чем у вас на демке.
И все изменения параметров по всем этим инструментам вызывают OnParam во всех скриптах, где есть этот колбек.
В таком случае и количество скриптов и/или количество данных надо увеличивать пропорционально. Это, конечно, если цель - разобраться в причинах повышенной загрузки, а не просто отчитаться "запустили/посмотрели".

Цитата
Daniil Pozdnyakov написал:
"Какие конкретно функции используются в данных скриптах ?"
Исходя из вопросов, ясно, что никто ни черта не делал и даже не читал тему. Вижу, что "тестирование" (если это можно так назвать) проведено на от#сь, совершенно без включения мозгов.
Как я отмечал, оказывают влияние не только функции, но также данные в локальных/глобальных таблицах.

Позже дам комментарий по сообщению #19.
Думал, для людей с технической специализацией оно будет понятно. Видимо, придётся расписывать для тех, кто с компьютером на "Вы" и то шёпотом.
Но на это потребуется время.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Daniil Pozdnyakov написал:
К сожалению, нам не удалось воспроизвести и понять причину описанной вами проблемы.

Daniil Pozdnyakov, просьба более детально описать, что именно пытались воспроизвести, какие действия предприняли и какой результат получили?
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
TGB,
#78. #162
Цитата
Старатель написал:
версии библиотек qlua.dll, lua53.dll, lua54.dll в QUIK 9.3.3 не изменились по сравнению с QUIK 9.3.1
Надо делать так, как надо. А как не надо - делать не надо.
Снятие/перемещение заявок в стакане
 
В целях минимизации количества транзакций и снижения нагрузки на сервера предлагаю повысить приоритет для данного пожелания.
А то люди иногда попадают на повышенную комиссию при групповом снятии заявок: https://smart-lab.ru/blog/765010.php#comment13661438
Там, правда, сторонний привод используется. Но у квиковского функционала группового снятия заявок принцип схожий.
Надо делать так, как надо. А как не надо - делать не надо.
Как грамотно сделать функцию OnStop() последней в теле скрипта?, Скудное описание функции обратного вызова OnStop() в официальной документации
 
Цитата
Anton написал:
Дело в том, что нештатно останавливается. Если OnStop возвращает 0, сразу за ней выполняется WaitForSingleObject(main, 0), возвращаясь немедленно из-за нулевого таймаута, и сразу же TerminateThread. Там потом еще уведомление главному окну посылается. Видимо, какие-то сопли после этого всего остаются.
Получается с той или иной долей вероятности можно налететь на такое при любом значении в return и даже без него?
Надо делать так, как надо. А как не надо - делать не надо.
Как грамотно сделать функцию OnStop() последней в теле скрипта?, Скудное описание функции обратного вызова OnStop() в официальной документации
 
Вероятно, я с таким не сталкивался, потому что никогда не использовал return 0 в OnStop. Минимальное значение не менее 100 указываю.
Надо делать так, как надо. А как не надо - делать не надо.
Как грамотно сделать функцию OnStop() последней в теле скрипта?, Скудное описание функции обратного вызова OnStop() в официальной документации
 
Так зависает не во время работы скрипта. Сначала скрипт штатно останавливается, при этом никаких ошибок не выдаёт. Затем скрипт уже перестаёт запускаться. И при попытке вызове какого-нибудь меню квик вешается.
Надо делать так, как надо. А как не надо - делать не надо.
Как грамотно сделать функцию OnStop() последней в теле скрипта?, Скудное описание функции обратного вызова OnStop() в официальной документации
 
Цитата
Денис написал:
после нажатия кнопки "Остановить" скрипт, вроде бы, штатно останавливается - но затем через пять-семь минут при нажатии на любой пункт меню QUIK намертво зависает.
Проверил - да, так и есть.
Хоть с квиком работаю уже много лет, но на чём квик сейчас застопорился не пойму.
Надо делать так, как надо. А как не надо - делать не надо.
QMinEditor
 
Цитата
Egor Zaytsev написал:
Действительно в ПО редактирования графиков есть ошибка

Egor Zaytsev, сообщите, по какой причине раннее вы утверждали:
Цитата
Egor Zaytsev написал:
Проверили, графики открывает.
?
Надо делать так, как надо. А как не надо - делать не надо.
Как вывести данные своей таблицы по DDE?, Как вывести данные своей таблицы по DDE?
 
Цитата
Вася написал:
как их вывести
Ctrl+L - откроется окно настройки вывода по DDE
Но работает ли вывод для QLua-таблиц не проверял
Надо делать так, как надо. А как не надо - делать не надо.
Вы не можете заменить заявку ..., так как ее обработка еще не завершена.
 
Срочный рынок. Через Lua подаётся транзакция MOVE_ORDERS.
В течение более 6 мин. сервер сыпет ошибки:
Вы не можете заменить заявку ..., так как ее обработка еще не завершена.
Код ошибки: -1065103584
Источник ошибки: Библиотека расчёта лимитов


Сервер не способен обработать заявку более 6 мин.?
Что за обработка такая? Зачем он вообще это делает?
Обработкой заявок занимается торговая система биржи.
А от терминала требуется передать транзакцию от пользователя в торговую систему и вернуть ответ от ТС в терминал пользователя. И сделать это желательно как можно быстрее.
Надо делать так, как надо. А как не надо - делать не надо.
Работа с метками, ошибки при закрытии/открытии программы Quik., Свои уровни на графике из файла.
 
Цитата
AndyWise написал:
видимо опять же Луа стартует на перегонки с загрузкой кэша
Lua стартует наперегонки с загрузкой окон QUIK (видимо, в т.ч. и графиков).
Надо делать так, как надо. А как не надо - делать не надо.
Повторная подписка на свечи через CreateDataSource не работает на версии 9.2.3.15
 
Цитата
Anton написал:
Оно даже на баг не похоже, а больше похоже на защиту от желающих задудосить сервер.
Да нет, сам датасорс обновляется,, но колбек действительно не вызывается.
Надо делать так, как надо. А как не надо - делать не надо.
Корреляция между интенсивностью биржевых торгов и проблемами на серверах брокеров
 
Цитата
nikolz написал:
Основной доход брокера не в комиссии, а в использовании денег и бумаг клиентов.  
На комиссии за маржинальные позиции брокер нехило зарабатывает. А в займы как раз даёт ваши средства. Или вам даёт взаймы Васины ))
Надо делать так, как надо. А как не надо - делать не надо.
Корреляция между интенсивностью биржевых торгов и проблемами на серверах брокеров
 
Цитата
Anton написал:
уточнил свежачок, 3000 в день.
Цитата
Anton написал:
условного васю с десятью лямами туда и не подпустят
Для Васи с 10 лямами - это более 10% годовых получается.
Надо делать так, как надо. А как не надо - делать не надо.
Корреляция между интенсивностью биржевых торгов и проблемами на серверах брокеров
 
Цитата
D7DSk написал:
https://www.sberbank.ru/common/img/uploaded/broker/brokerage_agreement.pdf

Надо делать так, как надо. А как не надо - делать не надо.
Корреляция между интенсивностью биржевых торгов и проблемами на серверах брокеров
 
Цитата
D7DSk написал:
Зачислять свои деньги туда онне может, соответственно торговать с него тоже  в силу закона:

Ознакомьтесь с декларацией о рисках в договоре с вашим брокером. Скорее всего, там есть такой пункт:


Либо, если брокер является кредитной организацией:
Цитата
Законодательство не предусматривает возможности разделения денежных средств брокера, являющегося кредитной организацией, и денежных средств его клиентов, в связи с чем брокер вправе использовать ваши денежные средства и вы принимаете на себя риск его банкротства. Такой риск в настоящее время не страхуется
Надо делать так, как надо. А как не надо - делать не надо.
Корреляция между интенсивностью биржевых торгов и проблемами на серверах брокеров
 
Цитата
Anton написал:
сегрегированному счету, где если лежит копейка, ее трогать нельзя
Есть информация, сколько стоит это удовольствие?
А то на смартлабе сколько не смотрю, народ постоянно спрашивает, но никто толком не знает.
Надо делать так, как надо. А как не надо - делать не надо.
Обезличенные сделки в квике
 
Цитата
Vasya написал:
настроить ленту таким образом, чтобы при открытии любого инструмента данные прогружались только  с момента открытия

Надо поставить вот эту галку
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
К сожалению, движок этого чудо-форума не позволяет редактировать заголовки тем или сообщения.
С учётом полученной раннее информации заголовок темы должен выглядеть так:

Высокая нагрузка CPU в QUIK 9 при вызове колбеков в скриптах, которые содержат много переменных или хранят большое количество элементов в таблицах.

_sk_, посмотрите мои сообщения на первой странице и комментарий Антона #16.
Суть в том, что сам по себе вызов колбеков при большом количестве хранимой информации создаёт огромную нагрузку вне зависимости от кода внутри колбека и параллельно выполняющейся работы в main. Отмечу, что объём хранимых данных (в байтах) не имеет значения. Нагрузка пропорциональна количеству данных.
Обратите внимание также на тест в сообщении #19. Сам по себе скрипт не выполняет какой-либо полезной работы, он только вызывает пустой OnAllTrade(), больше ничего. Увеличение времени работы скрипта при подключении различных библиотек как раз свидетельствует о наличии зависимости нагрузки, создаваемой колбеком, и количеством данных в скрипте.
А тормоза в GUI, которые вы наблюдаете, - скорее всего уже следствие, а не причина.

ЗЫ: версии библиотек qlua.dll, lua53.dll, lua54.dll в QUIK 9.3.3 не изменились по сравнению с QUIK 9.3.1
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Daniil Pozdnyakov написал:
К сожалению, нам не удалось воспроизвести
Также как и тут?
https://forum.quik.ru/messages/forum1/message59344/topic6189/#message59344

Daniil Pozdnyakov, просьба более детально описать, что именно пытались воспроизвести, какие действия предприняли и какой результат получили?
Надо делать так, как надо. А как не надо - делать не надо.
BUG: SetSelectedRow работает некорректно при использовании пользовательских фильтров или сортировки
 
Сомнений не было, вот вы и показали кто вы есть на самом деле: вечно скулящий, да ещё и распальцованный неуч.
Цитата
Старатель написал:
а потому сольётесь под любым предлогом.
Надо делать так, как надо. А как не надо - делать не надо.
BUG: SetSelectedRow работает некорректно при использовании пользовательских фильтров или сортировки
 
Владимир, я давно понял, что вы ни черта не понимаете в тех темах, куда суёте свой длинный нос. А объяснять что либо старому дураку бесполезно.
Но я готов заключить с вами сделку:
В первом сообщении данной темы есть скрипт. Если вы его отредактируете таким образом, чтобы в не зависимости от применённых к таблице фильтров или сортировки, при нажатии на любую клавишу выделялась строка с фактическим порядковым номером 2 (если строка она не скрыта фильтром), то я публично признаю, что вы - лучший, чем я программист. Если же вы этого сделать не сможете, то вы перестанете засирать этот форум и навсегда его покинете.
Но я абсолютно уверен, что вы
Цитата
Владимир написал:
не способны выделить нужную строку
, а потому сольётесь под любым предлогом.
Надо делать так, как надо. А как не надо - делать не надо.
BUG: SetSelectedRow работает некорректно при использовании пользовательских фильтров или сортировки
 
Daniil Pozdnyakov, нужна ещё какая-то информация?
Надо делать так, как надо. А как не надо - делать не надо.
Накладка графиков 2
 
https://forum.quik.ru/messages/forum1/message58485/topic6744/#message58485
Это котировки с разных инструментов. Скорее всего, фьючерсы с одним БА, но разными датами исполнения.
Проблема локальная, устраняется созданием диаграммы заново.
Надо делать так, как надо. А как не надо - делать не надо.
Windows 10 и ее избыточная телеметрия, Безопасность secring и др.
 
Anton, уверен, VPS и облачные технологии вы не используете  :wink:
Надо делать так, как надо. А как не надо - делать не надо.
Windows 10 и ее избыточная телеметрия, Безопасность secring и др.
 
Цитата
Anton написал:
быть уверенным, что ничего никуда не едет без спросу
А антивирусы таким не грешат? Чё они шлют на свои сервера?
Надо делать так, как надо. А как не надо - делать не надо.
Windows 10 и ее избыточная телеметрия, Безопасность secring и др.
 
Anton, в ранней восьмерке, без апдейтов, вроде тоже не было телеметрии.
В 8.1, вроде начали внедрять.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Nikolay написал:
Я просто запустил вышеприведенный чужой код

Надо делать так, как надо. А как не надо - делать не надо.
Быстрое восстановление работы QUIK, ( обрыв связи, проблемы с двухфакторной идент, отказ SSD или компьютера)
 
Цитата
Anton написал:
весьма долго рестартует таблица обезличенных  сделок
https://forum.quik.ru/messages/forum1/message50508/topic4635/#message50508
Надо делать так, как надо. А как не надо - делать не надо.
Windows 10 и ее избыточная телеметрия, Безопасность secring и др.
 
Цитата
Anton написал:
Лично я не ставлю
Какую ОС предпочитаете?
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Nikolay написал:
Код
 for  i  =   1 , 150000   do 
    t  =   os.time ()
 end 
Цитата
Nikolay написал:
begin: 0.0
end: 0.006, memory: 25.41796875

Только сейчас заметил: вы сравниваете время вызова библиотечной функции os.time() ?
Причём сравниваемые величины явно меньше погрешности измерения. А memory то почему по-вашему должны сильно отличаться?
На самом деле, разница в скорости в чистом луа и в квике есть. Причём, если запускать в main, то разница значительная.
Надо только цикл поболее брать.
Но ваш тест к теме имеет такое же отношение, как и война браузеров.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
Nikolay написал:
Странный спор.
Берем тот же скрипт

Я тут о таком не спорил, если чё.
Надо делать так, как надо. А как не надо - делать не надо.
Колбек trade_status_callback вызывается несколько раз по одной сделке
 
Цитата
Anton написал:
Потому что в каждом вызове что-нибудь отличается. Например (и скорее всего) флаги (в том числе и служебные).
По сделкам редко, когда что-нибудь отличается, тем более флаги.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Владимир до лысины дожил, а ума не нажил (С).
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
Цитата
s_mike@rambler.ru написал:
Я ещё раз прочитал сообщение _sk_, на которое я отвечал и да, речь идёт именно о занимаемой памяти скриптом, в котором очень много таблиц, описывающих дату/время.  
Речь не о размере занимаемой памяти, а о количестве элементов в таблице.
Надо делать так, как надо. А как не надо - делать не надо.
[BUG] Повышенная загрузка CPU при большом количестве функций в скрипте
 
TGB, хватит кормить троллей!


Цитата
s_mike@rambler.ru написал:
_sk_,

вы видите проблему, где ее нет

function main()
t = {}
for i = 1,150000 do
t[i] = os.time()
end
while true do
sleep()
end
end

запустите, посмотрите размер занимаемой памяти.

s_mike,  а где вы в ветке увидели про размер занимаемой памяти?
Надо делать так, как надо. А как не надо - делать не надо.
Скрипт продолжает работать после выключения терминала, разрыва соединения, снятия всех сделок, После разрыва соединения со стороны брокера, скрипт не остановился и продолжает работать, не ясно как выключить
 
Цитата
boolean.rat написал:
почему после перезагрузки пк, захода в квик, без отображения включённых каких либо скриптов, заявки продолжали выставляться
А время выставления (order.datetime) какое у заявок было? Может, просто прогружались заявки, что были выставлены до вашего отключения от сервера?
Надо делать так, как надо. А как не надо - делать не надо.
Квик выдает не правильное направление сделки в таблице всех сделок на срочном рынке
 
Цитата
_sk_ написал:
потом по предоставленным автором темы файлам понял, что расхождения весьма нечастые.
Тогда, возможно, это календарный спрэд. Тут обсуждалось:
https://forum.quik.ru/messages/forum10/message53683/topic6327/#message53683
Надо делать так, как надо. А как не надо - делать не надо.
Квик выдает не правильное направление сделки в таблице всех сделок на срочном рынке
 
Цитата
Александр написал:
я уже пытаюсь 7 недель выяснить
Это легко сделать самостоятельно, отправив рыночную заявку и проверив направление вашей сделки в ТОС.
Надо делать так, как надо. А как не надо - делать не надо.
Возможна замена QUIK 8.7..1.3 на современную для работы с брокером Сбер ?, глюки QUIK 8.7..1.3 (реторо- версия от Сбер)
 
Цитата
Alexey Ivannikov написал:
2. Обновление версии QUIK не через интерфейс программы. Оно делается очень просто: качаем архив с комплектом файлов для обновления программы вручную (актуальный архив присутствует на странице  https://arqatech.com/ru/support/files/ ), после чего распаковываем его (с заменой файлов) в корень папки с QUIK. В этом случае происходит только обновление самой программы (не трогаются конфигурационные файлы) и QUIK будет работать без каких бы то ни было дополнительных манипуляций.
Alexey Ivannikov, могли бы вы ещё рядом с апдейтом класть библиотеки модулей InstrClient.dll, Reports.dll, StratVolat.dll ?
Надо делать так, как надо. А как не надо - делать не надо.
несоответствие графиков, Часовой график по свечам отличается от остальных временных графиков
 
Похоже на склейку с предыдущим фьючерсом
Надо делать так, как надо. А как не надо - делать не надо.
таблица оповещений
 
Цитата
Daniil Pozdnyakov написал:
оповещения удаляются при смене торгового дня
Алертам можно задать срок жизни, в т.ч. "Не ограниченно"

Цитата
Вадим написал:
узнать почему это произошло
Возможно, удалили файл alerts.dat
Надо делать так, как надо. А как не надо - делать не надо.
Повторное выставление меток на график при смене инструмента
 
Последнее письмо, которое я получил по аналогичной проблеме:
Надо делать так, как надо. А как не надо - делать не надо.
Страницы: Пред. 1 2 3 4 5 6 7 8 9 10 11 ... 46 След.
Наверх