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

 

на данных, которых в общей сложности получается от 10000 - 30000, по этому и выбрал 50000 с запасом), но ранее я использовал эту библиотеку на значениях около 280 в массиве, в этом варианте и 500 достаточно, 50000 это конечно для тех у кого ресурсы системы позволяют.

 

согласно документации параметр резервации просто уменьшает число перераспределения памяти

проверьте пожалуйста на вашей тестовой выборке с параметром 100 (1000, 10000)

какой при этом будет выигрышь скорости на скрине профилирования

 
o_o:

согласно документации параметр резервации просто уменьшает число перераспределения памяти

проверьте пожалуйста на вашей тестовой выборке с параметром 100 (1000, 10000)

какой при этом будет выигрышь скорости на скрине профилирования


Да это именно так, я для себя лично конечно подобрал оптимальный параметр перераспределения, теперь самая долгая функция из всех это десериализация..., но оно в принципе и ясно, хотя по идеи как я понимаю в этой библиотеке все сделано методами перебора и максимальной универсальности, но мне все таки кажется что где-то ещё в десериализации есть нюанс который можно оптимизировать... скриншот профилирования прикрепил, параметры перераспределения памяти 5000.


 

1.12

поставил шаг 100 в ArrayResize

Файлы:
JAson.mqh  31 kb
 
Обратите внимание, что профайлер работает по неоптимизированному коду.

Поэтому при перекомпиляции в релизе после очень хорошего оптимизатора узкие места уйдут совсем в другие зоны.

Мы чуть позже постараемся для профайлера использовать полурелизную оптимизацию. Там есть достаточно много проблемных вопросов.
 

Уважаемые специалисты! Прошу Вас помочь мне разобраться с библиотекой. ( в объектно ориентированном программировании я пока не силен поэтому я не могу разобраться в коде самой библиотеки и в статье посвященной бирже BTC-E. поэтому я прошу простого примера как в посте )

Мне нужно разобрать два публичных апи биржи WEX.NZ.

https://wex.nz/api/3/info

{
  "server_time": 1519120845,
  "pairs": {
    "btc_usd": {
      "decimal_places": 3,
      "min_price": 0.1,
      "max_price": 500000,
      "min_amount": 0.001,
      "hidden": 0,
      "fee": 0.2
    },
    "btc_rur": {
...

отсюда, мне нужно в массив получить все доступные пары (btc_usd, btc_rur, ...) (просто названия пар, без параметров, параметры, по известным названиям у меня получается получать...)


https://wex.nz/api/3/depth/btc_usd

{
  "btc_usd": {
    "asks": [
      [
        11550,
        0.00998
      ],
      [
        11559.9,
        0.01731136
      ],
...
      ]
    ],
    "bids": [
      [
        11506.031,
        1.756
      ],
      [
        11506.03,
        1.23
      ],
...
      ]
    ]
  }
}


а отсюда в два массива (asks и bids) получить цену и стоимость ордеров.

Буду очень признателен за помощь!!! Заранее Спасибо!

 
o_o:

1.12

поставил шаг 100 в ArrayResize

Нужно ли обновить исходники в Codebase?

 
Delta.800:

Уважаемые специалисты! Прошу Вас помочь мне разобраться с библиотекой. ( в объектно ориентированном программировании я пока не силен поэтому я не могу разобраться в коде самой библиотеки и в статье посвященной бирже BTC-E. поэтому я прошу простого примера как в посте )

Мне нужно разобрать два публичных апи биржи WEX.NZ.

https://wex.nz/api/3/info

отсюда, мне нужно в массив получить все доступные пары (btc_usd, btc_rur, ...) (просто названия пар, без параметров, параметры, по известным названиям у меня получается получать...)


https://wex.nz/api/3/depth/btc_usd


а отсюда в два массива (asks и bids) получить цену и стоимость ордеров.

Буду очень признателен за помощь!!! Заранее Спасибо!


покажите ваш код, на котором остановились, что именно у вас не получается
 
Rashid Umarov:

Нужно ли обновить исходники в Codebase?

уже там давно
 

Хорошая работа, респект!

Однако... если попадают для десериализации битые данные (количество открывающих не равно закрывающим ковычкам или скобкам), то программа рушится с сообщением о выходе за пределы массива. А это очень не хорошо, обязаны быть учтены подобные моменты в работе с массивами хотя бы, если нет проверки на корректность входных данных.