Библиотеки: JSON Serialization and Deserialization (native MQL) - страница 8

Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Библиотека работает в MQL4 и MQL5
Благодарность принимается в виде примеров вашей практической работы с веб-ресурсами из MQL. ;)
Добрый день!
Спасибо за библиотеку!
Применил вашу библиотеку для мониторинга работы компьютеров, подключенных к пулу для майнинга криптовалют.
Пул (это сайт) в ответ на запрос о состоянии выдает ответ в виде:
/* {"status":"OK", "data":[ {"worker":"riga1","lastSeen":1511432055,"currentHashrate":2746.6666666666665,"validShares":103,"invalidShares":0,"staleShares":null}, {"worker":"riga2","lastSeen":1511432068,"currentHashrate":3040,"validShares":114,"invalidShares":1,"staleShares":null}, {"worker":"riga3","lastSeen":1511432057,"currentHashrate":2426.6666666666665,"validShares":91,"invalidShares":0,"staleShares":null}, {"worker":"riga4","lastSeen":1511432055,"currentHashrate":2266.6666666666665,"validShares":85,"invalidShares":0,"staleShares":null}, {"worker":"riga5","lastSeen":1511432061,"currentHashrate":2666.6666666666665,"validShares":100,"invalidShares":0,"staleShares":null}, {"worker":"riga6","lastSeen":1511432050,"currentHashrate":2293.3333333333335,"validShares":86,"invalidShares":0,"staleShares":null}, {"worker":"riga7","lastSeen":1511432069,"currentHashrate":1013.3333333333334,"validShares":38,"invalidShares":0,"staleShares":null}]} */
riga1, riga2 и т.д. - это компьютеры, необходимо промониторить, чтобы их "currentHashrate" не падал ниже порогового значения.
код получился очень простой :
выдает типа:
riga7 Хешрейт: 826.6666
riga6 Хешрейт: 2293.333
riga5 Хешрейт: 3200
riga4 Хешрейт: 1866.666
riga3 Хешрейт: 2800
riga2 Хешрейт: 2853.333
riga1 Хешрейт: 2933.333
Разработчикам библиотеки огромное спасибо, но она работала очень медленно, обычно перед тем как выкладывать какой либо продукт или код, его необходимо профилировать, но в данном варианте так как библиотека бесплатная, тут грех жаловаться, по итогу библиотека работает очень медленно, если не сделать вот этого:
Иначе вот что было до (сам Web запрос на данном скрине занял по времени 16 718 439, все остальное обработка):
и после доработки (стрелкой показан тот же Web запрос):
Ускорение получили почти в 20 раз.
почему 50000 ?
не 2000000 или не 100?
--
на каких тестовых данных проверяли?
на данных, которых в общей сложности получается от 10000 - 30000, по этому и выбрал 50000 с запасом), но ранее я использовал эту библиотеку на значениях около 280 в массиве, в этом варианте и 500 достаточно, 50000 это конечно для тех у кого ресурсы системы позволяют.
согласно документации параметр резервации просто уменьшает число перераспределения памяти
проверьте пожалуйста на вашей тестовой выборке с параметром 100 (1000, 10000)
какой при этом будет выигрышь скорости на скрине профилирования
согласно документации параметр резервации просто уменьшает число перераспределения памяти
проверьте пожалуйста на вашей тестовой выборке с параметром 100 (1000, 10000)
какой при этом будет выигрышь скорости на скрине профилирования
Да это именно так, я для себя лично конечно подобрал оптимальный параметр перераспределения, теперь самая долгая функция из всех это десериализация..., но оно в принципе и ясно, хотя по идеи как я понимаю в этой библиотеке все сделано методами перебора и максимальной универсальности, но мне все таки кажется что где-то ещё в десериализации есть нюанс который можно оптимизировать... скриншот профилирования прикрепил, параметры перераспределения памяти 5000.
1.12
поставил шаг 100 в ArrayResize
Предположим:
Как я могу отобразить это в типы MQL после десериализации?
Уважаемые специалисты! Прошу Вас помочь мне разобраться с библиотекой. ( в объектно ориентированном программировании я пока не силен поэтому я не могу разобраться в коде самой библиотеки и в статье посвященной бирже BTC-E. поэтому я прошу простого примера как в посте #58 )
Мне нужно разобрать два публичных апи биржи WEX.NZ.
https://wex.nz/api/3/info
отсюда, мне нужно в массив получить все доступные пары (btc_usd, btc_rur, ...) (просто названия пар, без параметров, параметры, по известным названиям у меня получается получать...)
https://wex.nz/api/3/depth/btc_usd
а отсюда в два массива (asks и bids) получить цену и стоимость ордеров.
Буду очень признателен за помощь!!! Заранее Спасибо!