Lua+Golang

Страницы: 1
RSS
Lua+Golang
 
Друг посоветовал учить язык Golang. Мой тестер стратегии на Луа просчитывает массив данных за 7 часов. Golang это сделает за час.
Посоветуйте пожалуйста как из скрипта Луа запускать файл с кодом .go
Можно ли это делать через dofile?
Или сделать третий файл с флагом вкл/выкл, который будет читаться скриптом на go?
 
Цитата
Let_it_go написал:
Друг посоветовал учить язык Golang. Мой тестер стратегии на Луа просчитывает массив данных за 7 часов. Golang это сделает за час.
Посоветуйте пожалуйста как из скрипта Луа запускать файл с кодом .go
Можно ли это делать через dofile?
Или сделать третий файл с флагом вкл/выкл, который будет читаться скриптом на go?
На мой взгляд вы сильно усложняете себе жизнь... раньше я уже писал вам (Перейти), для высокой производительности нужно делать отдельную DLL, и туда выносить всю ресурсоёмкую часть программы. Добавлю, в Lua есть уже встроенный Lua C API, который позволяет написать дополнительную библиотеку на языке Си с минимальными затратами. Потом подключить эту библиотеку одной командой require и использовать функции из неё также, как из обычного .lua файла через dofile. В своей библиотеке вы можете делать что хотите, достать данные прямо из самих таблиц Lua, без необходимости куда-то их промежуточно сохранять в какой-нибудь файл и потом оттуда это всё читать, теряя в скорости. Вы можете забрать данные прямо из таблицы (ф-ция lua_getfield), и дальше работать с ними как с обычными переменными в памяти на Си, можете просто их пересчитать, можете добавить ассемблерную вставку для оптимизации математики, можете инстринкт, можете даже через какой-нибудь OpenCL их на видеокарте пересчитывать, да вообще что угодно... зачем городить огород с Go, а потом ещё его прикручивать к Lua очередным костылём, смысла не вижу особого... Вот вам примеры из книжки: 25 – Extending your Application, 25.1 – Table Manipulation и т.д. (Part IV · The C API)
 
Спасибо за ответ. Я скорее всего так и поступлю.
Какой язык лучше использовать? В моём случае это равносильно вопросу "какой язык учить". Чистый Си или Си++?
Задача будет такая: получение данных из квика и перебор их брутфорсом. Скорость обработки должна быть максимальной.
 
Цитата
Let_it_go написал:
"какой язык учить". Чистый Си или Си++?
Желательно, сначала выучить Си, а уже потом Си++... просто по логике вещей. Хотя найдутся многие, кто поспорит с этим утверждением. Так что отнесу его на счёт исключительно моего личного мнения и не более того.
Цитата
Let_it_go написал:
Задача будет такая: получение данных из квика и перебор их брутфорсом. Скорость обработки должна быть максимальной.
Это задача не языка как такового, я задача на программно-аппаратную реализацию. Такого рода задачи могут решатся множеством способом, от ассемблерной оптимизации, до распределённых вычислений.

В вашем же случае, я бы посоветовал сначала написать DLL на Си и реализовать в ней математику на Си же, затем добавить многопоточность к вашим вычислениям, а затем уже смотреть в сторону OpenCL, CUDA и пр. Двигаясь в таком порядке, от простого к сложному...
 
Цитата
Suntor написал:
В вашем же случае, я бы посоветовал сначала написать DLL на Си и реализовать в ней математику на Си же, затем добавить многопоточность к вашим вычислениям, а затем уже смотреть в сторону OpenCL, CUDA и пр. Двигаясь в таком порядке, от простого к сложному...
такой путь для новичка может занять годы и МНОГО работы. :)

ТС, посмотрите в сторону java, если быстро рисовать не нужно.
на консольном уровне медленнее плюсов на 10-15%, но .... останется время на жизнь :))  
 
Цитата
Let_it_go написал:
Спасибо за ответ. Я скорее всего так и поступлю.
Какой язык лучше использовать? В моём случае это равносильно вопросу "какой язык учить". Чистый Си или Си++?
Задача будет такая: получение данных из квика и перебор их брутфорсом. Скорость обработки должна быть максимальной.
Вы какой-то фигнёй маетесь, честное слово. Сам факт использования QUIK для получения маркет-даты и совершения транзакций перечёркивает весь перфоманс. То, что Вы там свой массивчик обработаете не за 5 мс, а за 1, погоды особо не сделает.
Мой Вам совет -- оставьте мечты о перфомансе до тех пор, пока не напишите работающий неоптимизированный вариант.

В Lua-машине в QUIK, конечно, тесновато, поэтому что-либо сложнее торговли по скользящим средним проще написать в другом окружении. Из простого можете взять QuikSharp и делать обработку данных в шарпе.
 
Цитата
Enfernuz написал:
Сам факт использования QUIK для получения маркет-даты и совершения транзакций перечёркивает весь перфоманс. То, что Вы там свой массивчик обработаете не за 5 мс, а за 1, погоды особо не сделает.
Вы просто тему  not enough memory не читали... человек хочет перебирать исторические данные по десяткам инструментов за сотни дней, причём чуть ли не на каждом тике... так что у него проблема не с получением данных из Quik, а с хранением и обработкой исторических данных... в памяти не помещаются, а с диска медленно...
 
Цитата
Suntor написал:
Вы просто тему  not enough memory не читали...
прочитал, действительно человек мается фигней. шерстить снапшоты стаканов вокруг Квика - взрыв мозга.

Цитата
Enfernuz написал:
поэтому что-либо сложнее торговли по скользящим средним
это неправда, ТВС вполне можно обрабатывать, но само собой это разговор об экзекушн не в 100 мс.
КВИК - офисная тулза. это просто полезно помнить любителям экономии на издержках.
Страницы: 1
Читают тему
Наверх