Anton, Жаль. Был тут один "адвокат", расхваливавший этот сборщик, но уже несколько месяцев ни слуху ни духу.
Так переименовать мысленно я могу, но что толку? Реальный вызов OnParam идёт по совершенно другим алгоритмам, которые, скорее всего, очень сильно отличаются от такого вызова. А здесь можно вызывать что-то типа abcd() - тогда уж точно условия теста совпадут с боевыми. Иначе тест не имеет смысла - проверяется НЕ ТО. Даже если Вы "можете гарантировать, что квик до 9.3.3 включительно не заменит".
А ещё несколько тысячелетий назад наблюдение было, что если кто-то утверждает, что "все беды от того, что", то это чушь собачья вне зависимости от того, что бы там ни утверждалось. Так что борьба против борьбы с новоназначенными врагами квика очень полезна и заслуживает всяческой поддержки. Я когда-то тоже пытался сказать, что плевать мне на миллисекунды, что я заранее согласен на тормоза в таких ситуациях на один, на два, даже на три порядка! Но воители не слышат и продолжают воевать - уже близко к классическому "расстрелять как бешеных собак".
Anton написал: Тратит, но не на каждом колбеке. По моим наблюдениям, не чаще раза в секунду, если его не подталкивать
1. Из ваших комментариев следует (и я с этим согласен), что в текущем QLua: 1) перед запуском колбека сборка мусора отключается; 2) после запуском колбека сборка мусора включается; 3) в неизвестном месте и в неизвестное время периодически делается уборка мусора. 2. В своем комментарии 167 и повторно в 190 я предлагаю вообще при обработке колбеков оставить мусорщик в покое. Он в соответствии с параметрами, заданными по умолчанию (а может быть и пользователем) сможет автоматически собирать мусор как-нибудь сам. Зачем весь гемморой, перечисленный в пункте1? И мне интересен ответ разработчика QUIK. Я уже как то писал: что чем меньше дергаешься, тем реже падаешь . Кому это непонятно?
TGB написал: Зачем весь гемморой, перечисленный в пункте1?
Тут ответ по форуму распределен в виде 1000 веток, где у одних мусор НЕ собирается, у других собирается прям из под рук, третьим самим неясно ничего, но они тоже за какую-нибудь движуху. Причем все это в каком-то митинговом тоне и на пределе нервов, с заламыванием рук и криками "немедленно". Потом, правда, большинство репортеров куда-то исчезает, а намоленные улучшения остаются и накапливаются. Мой любимый пример с фильтрами на ТВС. Наклянчили, сломали десятилетиями как часы работавшую схему. Ау, ребята, шо там, скока трафика наэкономили, больше ли, чем создали разговорами?
Цитата
Владимир написал: Реальный вызов OnParam идёт по совершенно другим алгоритмам, которые, скорее всего, очень сильно отличаются от такого вызова.
Ну, я малость поизучал, что там в реальности, совсем чуть-чуть. Показал один аспект, а вообще думаю, что с показываниями надо подзавязывать, бессмысленно. Чтобы связать кусок сорца и наблюдаемое поведение со стороны скрипта, нужен еще хороший пласт понимания, что между, а с этим туго, вакуум заполняется выдуманными теориями, в итоге вместо "прояснил" получается "запутал".
Anton написал: Тут ответ по форуму распределен в виде 1000 веток, где у одних мусор НЕ собирается, у других собирается прям из под рук, третьим самим неясно ничего, но они тоже за какую-нибудь движуху.
И, конечно, разработчик QUIK не мог не добавить свои пять копеек . ------
Цитата
TGB написал: Я уже как то писал: что чем меньше дергаешься, тем реже падаешь . Кому это непонятно?
Anton, Про "намоленные улучшения" классно! А у меня так и не получилось намолить ни про "положите куда-нибудь последние свечи по всем таймфреймам, чтобы их можно было просто прочитать", ни про "дайте вы только одно прерывание на одно событие".
После заказа обезличенных сделок скрипт замеряет время получения первых 200000 сделок. После этого скрипт выдаёт замеренное время и отключается. Тест проводится 4 раза: 1) с созданием локальной переменной, содержащей массив нулевого размера 2) с созданием локальной переменной, содержащей двумерный массив 100x1000 3) с подключением библиотеки socket 4) с подключением библиотеки iuplua
Предполагается, что во всех 4-х тестах время работы скрипта должно быть одинаковым, поскольку колбек OnAllTrade во всех тестах выполняет одну и ту же работу: OnAllTrade содержит только три простых оператора, они не должны существенно влиять на время работы функции. В действительности же время работы скрипта много больше в тестах 2, 3, 4 по сравнению с тестом 1. Выводы , вытекающие из теста я неоднократно приводил в этой теме.
Увы, Ваша ошибка в том, что цитата: "Предполагается, что во всех 4-х тестах время работы скрипта должно быть одинаковым" Вы это предположили, но не доказали. Поэтому все Ваши выводы не убедительны. --------------- Кто-то предполагает, что бог есть, а кто-то - что нет. Из этого предположения следуют различные выводы, но все основано на вере и недоказуемо. --------------------------- В науке это называется - аксиома.
Старатель, Не знаю, как там "тролль в большинстве случаев", а вечный скулёж "разбирающегося" реально достал - всё ему не так, убогому: с производительностью жопа, с памятью жопа... да и красная цена "всей информации в этой теме" ровно один ломаный грош.
Старатель, Лапуль, у "тупого тролля 40-го уровня с 40-летним опытом" скрипт работает и зарабатывает, памяти и быстродействия предостаточно, тикеров в обслуживании на порядок (если не на два) больше, чем у вечно скулящего "гуру". Вы бы хоть подпись поменяли - какой Вы, в задницу, "роботорговец"? А лучше и вообще "поменять ориентацию" - ну не Ваша эта зона, программирование, ну не Ваша!
Владимир, Я в курсе, что вы уже десятки лет гадите на разных интернет-ресурсах, на многих из которых вас уже погнали ссаной тряпкой, и поделом. Теперь вы обгадились в половине тем в ветке "Программирование на языке Lua" на этом форуме. Дискутировать с неадекватами, вроде вас, - ситуация игры в шахматы с голубем:
Цитата
Спорить с дураком - всё равно, что играть в шахматы с голубем. Он раскидает фигуры, нагадит на доску и улетит всем рассказывать, как он тебя уделал.
Надо делать так, как надо. А как не надо - делать не надо.
Старатель, Так я же и не спорю, лапуль. И в шахматы с голубем не играю - у меня всего-то первый разряд когда-то был, но моя программа (точнее, наша с Юркой) всё-таки была двукратным чемпионом России и даже бронзовым призёром чемпионата мира в Лондоне, и имела не только гроссмейстерский рейтинг (2456 максимально), но и немало поверженных мастеров и гроссмейстеров в личных встречах. А тут какая-то сраная задача организации торговли на бирже - да тьфу! Это может быть проблемой разве что для распальцованных бездарей по кличке "гуру".
Владимир написал: у меня всего-то первый разряд когда-то был, но моя программа (точнее, наша с Юркой) всё-таки была двукратным чемпионом России и даже бронзовым призёром чемпионата мира в Лондоне, и имела не только гроссмейстерский рейтинг (2456 максимально), но и немало поверженных мастеров и гроссмейстеров в личных встречах. А тут какая-то сраная задача организации торговли на бирже - да тьфу! Это может быть проблемой разве что для распальцованных бездарей по кличке "гуру".
Вы же, вроде, взрослый человек, а ведете себя как сильно закомплексованный подросток . Наверное, ~90% ваших комментариев, с многочисленными повторами, про то, какой вы исключительный и неповторимый. Вы что, в этом сомневаетесь? Да тут все исключительные и неповторимые, хотя бы по отпечаткам пальцев . При этом, многие об этом скромно умалчивают .
TGB, Информация ПОЛНОСТЬЮ определяется ПРИЁМНИКОМ, так что Ваши фантазии насчёт "закомплексованного подростка" или "исключительного и неповторимого" есть только Ваши фантазии. А я действительно взрослый НОРМАЛЬНЫЙ человек, и веду себя именно по-взрослому - у меня на сайте в описании моего "идеального стиля общения" давным-давно чёрным по белому написано: Последнее: я не собираюсь лукавить, заменять фразы "чем-то гипоаллергенным" или "проскакивать пока это место в объяснениях вообще", не собираюсь "сначала показать красивый образ, картинку, как всё будет прекрасно, когда..." Вот "привести примеры какие-то, понятные каждому, нарисовать схему" - могу. Но только не люмпену. Я убеждён, что нельзя найти нечто хорошее в ком-бы то ни было, если он сам не начинает это искать - пущай и собственную задницу от кресла отрывает! Кстати, это как раз "ровно то же, чего я хотел бы видеть по отношению к себе". Идея "обрастает в пути необходимыми деталями и т.д." только в процессе диалога, обратной связи, споров, драк, но никогда при "вещании с броневика"! Я всё время говорю: "Спорьте, бейте меня - я полностью открыт, у меня даже ника сроду не было, ведь разве rybvv это ник"? Но бейте аргументами, чиорт побъери! И ещё: этот мой стиль - он для взрослых. Я много раз говорил открытым текстом, что не перевариваю общения ни "снизу вверх", ни "сверху вниз" - собеседник равен мне! А я - взрослый. Так что и собеседник мой - взрослый! Приплясывать перед ним и трясти погремушками я не намерен. Такой вот у меня "идеальный стиль"...
Помнится, БорисД тоже когда-то принимал меня за подростка, но потом мы лично встречались и до сих пор много переписываемся и перезваниваемся, и прекрасно знаем, что мы оба взрослые нормальные люди (а не одно лицо, как тут "выяснил" когда-то один придурошный "опер"). Но если какой-то распальцованный сопляк опять начнёт кукарекать, что меня откуда-то кто-то когда-то "гонял ссаными тряпками", он непременно получит ответку, что это как раз я гонял ссаными тряпками всякую полуграмотную шушеру годами и стадами. Всё просто...
nikolz написал: "Предполагается, что во всех 4-х тестах время работы скрипта должно быть одинаковым" Вы это предположили, но не доказали.
В QUIK 8 так и было. Вся информация есть в этой теме.
Но троллю некогда читать посты. В большинстве случаев тролль совсем не разбирается в том, что комментирует.
Не знаю, про какого тролля вы так переживаете. Возможно, что вы про себя в третьем лице уже рассказываете, тогда это диагноз. ================= Я читал все ваши опусы и про 8 версию и про 9-тую. ------------------- Не могу лишь понять, в какой документации вы прочитали, что 9-я версия должна работать быстрее чем 8, а 8 быстрее чем 7 и т д --------------------- Разработчики КВИК никогда не ставили задачу оптимизировать быстродействие терминала. Поэтому Ваши изыскания - это Ваше хобби. --------------------- Любая программа или техническое устройство , если оно соответствует документации и заявленным разработчиком характеристикам является доброкачественной. ======================= Прикольно читать, что программа игры в шахматы сложнее, чем программа робота играющего на бирже. Шахматных программ воз и маленькая тележка, а роботов, которые не сливают депозит и умеют играть на бирже фактически не существует.
nikolz, Шахматы В МИЛЛИОН раз сложнее, чем игра на бирже! Шахматных программ НАМНОГО меньше, чем скриптов для торговли - там даже чтобы просто фишки передвигать код написать - упаришься! А степеней свободы и вообще жуткое количество. И коэффициент ветвления порядка 40! А здесь что? Курс может либо расти, либо падать. Может ещё стоять на месте или вообще не торговаться. И ВСЁ, БЛИН! А вот программ, умеющих именно играть в шахматы, а не просто фишки передвигать, считанные единицы. Роботов, которые не сливают депозит и умеют играть на бирже, тоже, наверное, немного. Но сложного-то здесь чего? Ну, МОЙ робот "фактически существует", и, как и наша шахматная программа, играет ЛУЧШЕ меня. А новая версия, как и наша шахматная программа, должна играть НАМНОГО лучше меня, и УЖЕ СЕЙЧАС играет лучше старой, так что старую я уже с почётом проводил в последний путь. К тому же, я вообще ни разу не видел, чтобы на этом форуме обсуждали алгоритмы торговли, а не технические вопросы, которые, по большому счёту, выеденного яйца не стоят, даже с учётом многочисленных глюков в софте Квика. Наконец, я занимался разработкой и шахматной, и торговой программы, так что мне ЛУЧШЕ знать, что проще, а что сложнее.
Владимир написал: TGB , Информация ПОЛНОСТЬЮ определяется ПРИЁМНИКОМ, так что Ваши фантазии насчёт "закомплексованного подростка" или "исключительного и неповторимого" есть только Ваши фантазии. А я действительно взрослый НОРМАЛЬНЫЙ человек, и веду себя именно по-взрослому - у меня на сайте в описании моего "идеального стиля общения" давным-давно чёрным по белому написано
Не хотелось мне это писать, но вынудили: «Горбатого исправит только могила».
TGB, Сочувствую. А я всегда пишу то, что считаю нужным и правильным, и не представляю, какая сила может меня вынудить делать обратное. А исправляться я не собираюсь: у меня много прекрасных друзей - и в Сети, и вне её, некоторые "перетекают" из первых во вторые, и вообще я сроду не испытывал недостатка ни в друзьях, ни в общении. Ещё фрагмент из описания моего "идеального стиля".
Для меня самого было в своё время открытием, что этот стиль возможен не только "в своём кругу", а практически где угодно. Он оказался эффективным даже "для первого знакомства"! Судите сами: этот стиль хронически неприятен всяким "портянкам" и другим троллям, потому как он просто требует наличия мозгов и умения говорить своими словами! Этот стиль вполне комфортен и для друзей, они легко к нему привыкают - обычный формат "без галстуков". Наконец, он достаточно резко бьёт по глазам новичкам, привлекает внимание, сбивает равнодушие, заставляет определиться по отношению к высказываемому тезису (или, на худой конец, к его автору). Одни сплошные плюсы!
Я знаю совершенно точно, что многие люди не испытывают ни малейших проблем при общении в этом стиле, при этом некоторые из них вообще никогда их не испытывали, а другие испытывали ранее. И серьёзные, вплоть до разрыва! И моя "репутация с эпитетами" от этого нисколько не страдает - они даже играют роль пиара. Во всяком случае, друзья у меня прибавляются, иногда весьма интересные, и чуть не половина после каких-нибудь "громких дел".
Да, мои слова часто "выглядят именно наездом или наскоком". Для тех, кто закомплексован, кто ищет эти наскоки, кто не в состоянии поверить собеседнику, кто боится быть им обманутым... да и хрен бы с ними! Следовательно, этот мой стиль не только рабочий, но и фильтрующий всяких закомплексованных! Не говоря уже про штатных троллей. Они с этим стилем не уживаются, он не сдаёт территорию хаму и мерзавцу - он её защищает. А если мы будем себя уважать только на собственной кухне, отдав все публичные площадки хамам и подлецам, то за что, нам, собственно, себя уважать?
--local v = 0
--local v = 100
--local v = "socket"
--local v = "iuplua"
local function f(n)
if type(n) = = "number" then
local a = {}
for i = 1 , n do
a[i] = {}
for j = 1 , 1000 do a[i][j] = j end
end
return a
elseif n = = "socket" then
local socket = require ( "socket" )
require ( "socket.smtp" )
return socket
else
return require (n)
end
end
local run = true
function OnStop ()
run = nil
end
local m
function OnInit ()
m = f(v)
end
local t
function OnAllTrade ()
if getNumberOf ( "all_trades" ) = = 1 then
local num = 1
function OnAllTrade (alltrade)
if not run then return end
num = num + 1
if num = = 200000 then
t = os.clock () - t
run = false
end
end
t = os.clock ()
end
end
function main ()
while run do sleep ( 500 ) end
if t then message (v .. ": " .. t) end
end
Поочерёдно раскомментирую одну из 4-х первых строк и запускаю скрипт. Далее делаю перезаказ обезличенных сделок: Система / Настройки / Основные настройки... -> «Программа» / «Получение данных» / «Обезличенные сделки». Выбираю класс "Акции 1-го уровня (эмулятор)" -> "Перезаказать данные"
Оговорюсь, что сейчас помимо тестового у меня запущено ещё 3 квика и несколько других приложений. Поэтому результаты могут быть искажены. Но позволяют сделать следующие выводы :
Цитата
Старатель написал: Сам по себе скрипт не выполняет какой-либо полезной работы, он только вызывает пустой OnAllTrade(), больше ничего. Увеличение времени работы скрипта при подключении различных библиотек как раз свидетельствует о наличии зависимости нагрузки, создаваемой колбеком, и количеством данных в скрипте.
Ваше письмо получено, проблема изучается. Постараемся в ближайшее время дать ответ.
--local v = 0
--local v = 100
--local v = "socket"
--local v = "iuplua"
local function f(n)
if type(n) = = "number" then
local a = {}
for i = 1 , n do
a[i] = {}
for j = 1 , 1000 do a[i][j] = j end
end
return a
elseif n = = "socket" then
local socket = require ( "socket" )
require ( "socket.smtp" )
return socket
else
return require (n)
end
end
local run = true
function OnStop ()
run = nil
end
local m
function OnInit ()
m = f(v)
end
local t
function OnAllTrade ()
if getNumberOf ( "all_trades" ) = = 1 then
local num = 1
function OnAllTrade (alltrade)
if not run then return end
num = num + 1
if num = = 200000 then
t = os.clock () - t
run = false
end
end
t = os.clock ()
end
end
function main ()
while run do sleep ( 500 ) end
if t then message (v .. ": " .. t) end
end
Поочерёдно раскомментирую одну из 4-х первых строк и запускаю скрипт. Далее делаю перезаказ обезличенных сделок: Система / Настройки / Основные настройки... -> «Программа» / «Получение данных» / «Обезличенные сделки». Выбираю класс "Акции 1-го уровня (эмулятор)" -> "Перезаказать данные"
Оговорюсь, что сейчас помимо тестового у меня запущено ещё 3 квика и несколько других приложений. Поэтому результаты могут быть искажены. Но позволяют сделать следующие выводы :
Цитата
Старатель написал: Сам по себе скрипт не выполняет какой-либо полезной работы, он только вызывает пустой OnAllTrade(), больше ничего. Увеличение времени работы скрипта при подключении различных библиотек как раз свидетельствует о наличии зависимости нагрузки, создаваемой колбеком, и количеством данных в скрипте.
Ваше письмо получено, проблема изучается. Постараемся в ближайшее время дать ответ.
Традиционный ответ : " проблемма изучается " . И как под копирку на любой вопрос всегда один ответ .
А как насчет сменить движок форума ? Ну чтобы хотя бы свои орфографические ошибки можно было поправить или смысл написанного сообщения своего уточнить ...... вы эту проблемму тоже изучаете или все еще знакомитесь с её наличием на этом форуме ?
nikolz написал: запустил Ваш тест на боевом квике ------------------ вот результаты:
Там колбеки-то были? Сравнивать имеет смысл при наличии колбеков.
Цитата
Старатель написал: Нагрузка на CPU пропорциональна количеству любых объявленных переменных [...] и количеству колбеков , получаемых скриптом.
Скрипт: Скрытый текст
Код
--local n = 0
--local n = 1000000
--local n = 3000000
local list = {TQBR = {"SBER", "GAZP" , "VTBR" , "RUAL" }, CETS = {"USD000UTSTOM"}, SPBFUT = {"BRH2", "RIH2" , "SiH2" , "SRH2" }}
local param = {"BID", "OFFER" , "LAST" , "NUMTRADES" , "NUMBIDS" , "NUMOFFERS" }
local run
function OnStop ()
run = nil
end
local c = 0
function OnQuote (class_code, sec_code)
if not run then return end
c = c + 1
end
function OnParam (class_code, sec_code)
if not run then return end
c = c + 1
end
function OnAllTrade (alltrade)
if not run then return end
c = c + 1
end
function main ()
local a = {}
for i = 1 , n do a[i] = i end
for class, sec in pairs(list) do
for i = 1 , # sec do
Subscribe_Level_II_Quotes (class, sec[i])
for i = 1 , # param do
ParamRequest(class, sec, param[i])
end
end
end
local t = os.clock ()
run = true
while run and t + 90 > os.clock () do
sleep ( 500 )
end
t = os.clock () - t
for class, sec in pairs(list) do
for i = 1 , # sec do
Unsubscribe_Level_II_Quotes (class, sec[i])
for i = 1 , # param do
CancelParamRequest(class, sec[i], param[i])
end
end
end
message ( string.format ( "%u: %u; %.0f/сек" , n, c, c/t))
end
Результаты в боевом 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/сек Скрытый текст
Здравствуйте! Ваше письмо получено, проблема изучается. Постараемся в ближайшее время дать ответ.
Я тут всё время посмеивался над проблемами с производительностью, а сегодня вляпался в неё с размаху. Дело было так: решил я погонять алгоритмы на исторических данных, подготовил тиковый массив и переключил опрос ТТТ на чтение цены тиковой сделки из этого массива. Массив приличного объёма, тики за два месяца у очень ликвидного инструмента (более двух миллионов строк), но ждать ничего не надо, данные поступают и обрабатываются со страшной скоростью, так что я рассчитывал прогнать этот массив за пару минут. ЩАЗ! Начал он действительно бодро и весело, но всё крутит и крутит. Присмотрелся - а обработка замедлилась раз в сто, если не больше! Как же так? Да, данных много, но скорость же должна оставаться примерно одинаковой! Какая разница, первую он строчку из файла читает или 1234567-ю? Тем более, тикер у меня в этом прогоне вообще один (в боевой версии сейчас порядка 900). Ещё присмотрелся - МАМА ДОРОГАЯ! У меня объём, занимаемый скриптом, всегда болтался в районе 5-10 мегов (ну, на двадцать иногда заползал), а тут лихорадочные прыжки 300-500-200-400-500, т.е. за секунду размер меняется на 100-200 мегов в любую сторону! Тикер у меня, повторяю, ОДИН! Алгоритм фактически тот же самый - только вместо getParamEx цена заглатывается из текущей строки файла данных, И ВСЁ! Это сборщик мусора разошёлся, что ли? Больше, вроде, некому. И что этой падле от моего скрипта надо? Обрадовалась, что тикер у меня только один остался? У меня просто фантазии не хватает: как можно изуродовать софт, чтобы он вытворял ТАКОЕ? И что с этим делать? Нет, я-то переживу - ну, не за 2 минуты, но за час, за два массив он всё же обработает, но у меня просто нет слов...
Владимир написал: Я тут всё время посмеивался над проблемами с производительностью, а сегодня вляпался в неё с размаху. Дело было так: решил я погонять алгоритмы на исторических данных, подготовил тиковый массив и переключил опрос ТТТ на чтение цены тиковой сделки из этого массива. Массив приличного объёма, тики за два месяца у очень ликвидного инструмента (более двух миллионов строк), но ждать ничего не надо, данные поступают и обрабатываются со страшной скоростью, так что я рассчитывал прогнать этот массив за пару минут. ЩАЗ! Начал он действительно бодро и весело, но всё крутит и крутит. Присмотрелся - а обработка замедлилась раз в сто, если не больше! Как же так? Да, данных много, но скорость же должна оставаться примерно одинаковой! Какая разница, первую он строчку из файла читает или 1234567-ю? Тем более, тикер у меня в этом прогоне вообще один (в боевой версии сейчас порядка 900). Ещё присмотрелся - МАМА ДОРОГАЯ! У меня объём, занимаемый скриптом, всегда болтался в районе 5-10 мегов (ну, на двадцать иногда заползал), а тут лихорадочные прыжки 300-500-200-400-500, т.е. за секунду размер меняется на 100-200 мегов в любую сторону! Тикер у меня, повторяю, ОДИН! Алгоритм фактически тот же самый - только вместо getParamEx цена заглатывается из текущей строки файла данных, И ВСЁ! Это сборщик мусора разошёлся, что ли? Больше, вроде, некому. И что этой падле от моего скрипта надо? Обрадовалась, что тикер у меня только один остался? У меня просто фантазии не хватает: как можно изуродовать софт, чтобы он вытворял ТАКОЕ? И что с этим делать? Нет, я-то переживу - ну, не за 2 минуты, но за час, за два массив он всё же обработает, но у меня просто нет слов...
Уж сколько раз твердили миру. 1) Разработчики QLUA тоже предупреждали - не надо часто лазить в хранилище терминала (функция getParamEx) - это очень затратная операция. 2) скорее всего у вас циклы и таблицы в которые вы динамически добавляете значения. попробуйте сразу задать таблицы максимального размера. тогда не будут создаваться и уничтожаться промежуточные таблицы. 3) если покажите алгоритм, скажу что исправить, чтобы не было мучительно больно.
nikolz, Лапуль, Вы хоть читать-то умеете? Там же русским языком сказано: пока мой скрипт "часто лазил в хранилище терминала (функция getParamEx)", и эта "очень затратная операция" вызывалась сотни раз в секунду, то память болталась в диапазоне 5-10, редко 20 мегов. А вот когда он ПЕРЕСТАЛ туда лазить, тогда память подпрыгнула до 500 мегов, иногда даже больше.
Лапуль, я много раз открытым текстом говорил, что я не воспринимаю Вас как программиста, что Вы абсолютно ни хрена в программировании не понимаете - ну какие, в задницу, ОТ ВАС могут быть "советы"? Какие "промежуточные таблицы"? Это В БОЕВОМ скрипте под контролем находится несколько сотен тикеров, и примерно до 2000 это практически никак не сказывается на производительности, а в тестовом режиме у меня только ОДИН тикер! Ну включите Вы мозги, если там хоть что-то осталось!
Владимир написал: nikolz, Лапуль, Вы хоть читать-то умеете? Там же русским языком сказано: пока мой скрипт "часто лазил в хранилище терминала (функция getParamEx)", и эта "очень затратная операция" вызывалась сотни раз в секунду, то память болталась в диапазоне 5-10, редко 20 мегов. А вот когда он ПЕРЕСТАЛ туда лазить, тогда память подпрыгнула до 500 мегов, иногда даже больше.
Лапуль, я много раз открытым текстом говорил, что я не воспринимаю Вас как программиста, что Вы абсолютно ни хрена в программировании не понимаете - ну какие, в задницу, ОТ ВАС могут быть "советы"? Какие "промежуточные таблицы"? Это В БОЕВОМ скрипте под контролем находится несколько сотен тикеров, и примерно до 2000 это практически никак не сказывается на производительности, а в тестовом режиме у меня только ОДИН тикер! Ну включите Вы мозги, если там хоть что-то осталось!
Это Вы у нас телепат. Я не буду мериться с Вами струей, но полагаю, что Ваше хамство лишь подтверждение Вашего низкого уровня знаний. --------------------------------------- Это же классика, единственный способ самолюбования аля-кулибиных - это оплевывания все кругом. --------------------- В чем вы действительно правы , так в том, что я не программист, так как программист , в моем понимании - это переводчик со словарем. ------------------------------- Кроме умения переводить готовый текст с русского на язык программирования, программист не хрена не понимает ни в железе, ни в алгоритмах, ни в методах. Узнаете себя? ------------------------- Это Вы и есть -программист, а я так погулять Вышел. -------------------------------------- Хамло, вы наш.
nikolz, Лапуль, я тышу раз за много лет говорил и говорю, что я не программист - алгоритмист я. Я, конечно, и программист, и даже системщик, но я много раз видел Мастеров программирования в работе - в частности, был лично знаком с человеком, которого признали лучшим программистом мира 1993 года, но мне доводилось видеть ничуть не менее сильных, хотя и менее титулованных. Это лишь на фоне современных быдлокодеров я программист, причём наикрутейший - уровень программистов не просто упал - он РУХНУЛ!
Лапуль, мне глубоко насрать, что там "в Вашем понимании" - я всего лишь сказал, что Вы не умеете даже читать. Даже текст, написанный на русском языке.
Roffild, Лапуль, моя телега ЕЗДИТ! Ибо я всё-таки ПРОГРАММИСТ. А вся ваша шобла в полном составе так и не сумела назвать НИЧЕГО из того, что ваша шобла в полном составе СДЕЛАЛА за весь XXI век.
Вот ещё фрагмент из моей заметки 11-летней давности: Эй, тупорылые! Я утверждаю, что все вы обычные мошенники и воры - всё, что вы сейчас впариваете клиенту, было создано ещё до вашего рождения - по крайней мере, подавляющего большинства из вас. Я утверждаю, что даже если вы и возомнили невесть что о своей собственной состоятельности, конечному пользователю ни один из вас не принес ничего, кроме вреда.
Ладно бы ещё вы просто одни только деньги воровали - так нет, вы же ещё и пишете чего-то! Вы же за собой не убираете, всё это дерьмо после вас остается вонять! Вы уже успели засрать всю поляну так, что не только вы сами - никто уже не в состоянии откопать там что-то полезное, отмыть его от вашего дерьма - дешевле все оптом отправить на помойку. Так вы даже этого не позволяете - охраняете свои экскременты, как цепные псы, и продолжаете срать.
И не стройте иллюзий по поводу своей якобы состоятельности. Вы можете использовать всё, что вашей душе угодно: любые инструменты, любые библиотеки, любые СУБД - без каких-либо ограничений. Вы можете работать "оптом и в розницу", объединять усилия, проводить любые совещания, эксперименты, пользоваться любыми справочниками, получать какие угодно консультации - вы всё равно уже не способны сделать абсолютно ничего полезного. Потому как вы - ТУПОРЫЛЫЕ!!!
Владимир, а есть у тебя вообще критерий "новизны"? По твоей логике, твоё поколение тоже ничего не придумало: Многие алгоритмы берутся из работ математиков 19века. Аэродинамика - баллистика и наблюдение за птичками. Жюль-Верн дал "чертёж" подлодки. А первый компьютер собрала бабка Аида еще в 19веке!
А Грейс Хоппер исправила баг своими руками! - наши уже не могут так исправлять...
Roffild, Лапуль, я не спрашивал про "новое" - я спрашивал про ПОЛЕЗНОЕ! Когда комп с поистине ЧУДОВИЩНОЙ памятью и быстродействием не успевает реагировать на движения мышки или нажатия клавиш пользователей, это по-русски называется ПЦ! Повторяю вопрос: ЧТО ИМЕННО ПОЛЕЗНОГО для конечных пользователей сделало всё ваше стадо так называемых "программистов" за весь XXI век?
И не надо ВРАТЬ, лапуль, я никогда себе ничего не "приписывал". У меня ХВАТАЕТ собственных мозгов, чтобы иметь СВОИ СОБСТВЕННЫЕ идеи. Некоторыми из моих алгоритмов я откровенно горжусь, особенно "Синдбадом", который представляет собой целый комплекс взаимосвязанных алгоритмов, но это ОЧЕНЬ сложные алгоритмы, не для ампутированных мозгов современных программеров. Попроще... ну, допустим, наш "Мираж" - там целый ряд интересных и совершенно новых идей. Или "Комми", одна из так называемых "задач тысячелетия" - там тоже несколько принципиально новых и с головы до пят именно МОИХ алгоритмов. Или самое простое и очень эффектное - "Сортир", которым я пользуюсь десятки, иногда сотни раз в день, скорость сортировки практически всегда линейная по числу узлов, сортирует миллионы, десятки, сотни миллионов, а пару раз даже миллиарды элементов. Вот он, лапуль, подробнейшее описание, алгоритм придуман и запрограммирован лично мной. А всё ваше стадо, вместе взятое, ХОТЬ ЧТО-НИБУДЬ придумало за весь XXI век? http://sint.wc.lt/sortir.htm
Владимир написал: Roffild, Лапуль, я не спрашивал про "новое" - я спрашивал про ПОЛЕЗНОЕ! Когда комп с поистине ЧУДОВИЩНОЙ памятью и быстродействием не успевает реагировать на движения мышки или нажатия клавиш пользователей, это по-русски называется ПЦ! Повторяю вопрос: ЧТО ИМЕННО ПОЛЕЗНОГО для конечных пользователей сделало всё ваше стадо так называемых "программистов" за весь XXI век?
Тоесть ты тоже из тех придурков, которые не знают, как ОСи распределяют оперативку? Я свои 32ГБ забиваю пополной, что ускоряет МО в разы. Только крики про нехватку оперативы начинаются при попытки сыграть ГТА в 2-3 окна. Своп вруби, если пенсии на оперативу не хватает. Под Виндой 1 прога макс 64ГБ может поправу сожрать (я проверял).
Вообще именно контейнеры позволяют ограничить проге ресурсы компа - вот реальный мир!
* и котики - двигатель прогресса! Мы достигли колоссальных результатов в области доставки контента в глаза и уши пользователя!
Roffild, Лапуль, я же не спорю - криворукие бездари способны засрать и 32ГБ, и 64ГБ, и вообще всё, что им будет дадено - это же не поможет! Комп ВСЁ РАВНО не будет успевать реагировать на движения мышки или нажатия клавиш пользователей! А вот наш "Мираж", кастрированный до 16К ПЗУ и 4К ОЗУ (это и на программу, и на дебютный справочник, и на "операционку") с процессором КМ-86 ОФИЦИАЛЬНО выполнил норму КМС! Криворуким же бездарям НИЧЕГО не поможет!
Владимир написал: Roffild, Лапуль, я же не спорю - криворукие бездари способны засрать и 32ГБ, и 64ГБ, и вообще всё, что им будет дадено - это же не поможет! Комп ВСЁ РАВНО не будет успевать реагировать на движения мышки или нажатия клавиш пользователей! А вот наш "Мираж", кастрированный до 16К ПЗУ и 4К ОЗУ (это и на программу, и на дебютный справочник, и на "операционку") с процессором КМ-86 ОФИЦИАЛЬНО выполнил норму КМС! Криворуким же бездарям НИЧЕГО не поможет!
И чё? Шахматы для древнего компа... без исходников...
Roffild, И ничё! На ресурсах В МИЛЛИОН РАЗ более слабых по памяти (а с учётом быстродействия и вообще в миллиард) наша программа прекрасно работала. А Вы, лично Вы, засрав свои 32ГБ "по полной", сумели ускорить какое-то непонятное "МО" в какие-то сраные "разы". Что за "МО", лапуль, и накойхер оно кому-то нужно? И как, при работе этого самого "МО" комп успевает-таки отслеживать нажатие клавиш? Чо, УСПЕВАЕТ?! Большой успех молодого спортсмена!
Владимир написал: ...Нет, лапуль, про Машинное Обучение я тоже не в курсе. Зато я в курсе, что обучение тоже УГРОБЛЕНО! ...И как, при работе этого самого "МО" комп успевает-таки отслеживать нажатие клавиш? Чо, УСПЕВАЕТ?! Большой успех молодого спортсмена! ::
Да поняли мы уже, что бот для шахмат - это достижение для тебя. Считаешь, что алгоритмы не создаются...
Чувак, всё современное МО строится на алгоритмах, недоступных компам до 2000-х. "Градиентный спуск" может распознать тебя в московском метро и предсказать цену акций. "Случайный лес" строит цепочку условий. МО - это то, что обыграет Каспарова. Но ты до сих пор можешь сидеть в своей пещерке. Хотя в твоём возрасте уже сложно разбираться в алгоритмах МО...
Roffild, Мой "бот для шахмат" - двукратный чемпион России, бронзовый призёр чемпионата мира, и имел на максимуме гроссмейстерский рейтинг - 2436. Всё же нынешнее стадо вряд ли способно самостоятельно написать программу для перемещения фигур по доске.
Лапуль, я не считаю - я спрашиваю: сделало ли всё ваше стадо за всё время своего существования ХОТЬ ЧТО-НИБУДЬ? Спасибо, ответ получен.
Лапуль, я же просил сказать, ЧТО ТАКОЕ это долбаное МО и НАКОЙХЕР оно нужно конечным пользователям? Я не раз гонял за эти годы тупорылых ИИстов, затем пришли придурки с нейросетями (даже сюда парочка забегала несколько месяцев назад), а что за зверь МО? Это новая молитва криворуких бездарей, штоле?
Владимир написал: Я тут всё время посмеивался над проблемами с производительностью, а сегодня вляпался в неё с размаху. Дело было так: решил я погонять алгоритмы на исторических данных, подготовил тиковый массив и переключил опрос ТТТ на чтение цены тиковой сделки из этого массива. Массив приличного объёма, тики за два месяца у очень ликвидного инструмента (более двух миллионов строк), но ждать ничего не надо, данные поступают и обрабатываются со страшной скоростью, так что я рассчитывал прогнать этот массив за пару минут. ЩАЗ! Начал он действительно бодро и весело, но всё крутит и крутит. Присмотрелся - а обработка замедлилась раз в сто, если не больше! Как же так? Да, данных много, но скорость же должна оставаться примерно одинаковой! Какая разница, первую он строчку из файла читает или 1234567-ю? Тем более, тикер у меня в этом прогоне вообще один (в боевой версии сейчас порядка 900). Ещё присмотрелся - МАМА ДОРОГАЯ! У меня объём, занимаемый скриптом, всегда болтался в районе 5-10 мегов (ну, на двадцать иногда заползал), а тут лихорадочные прыжки 300-500-200-400-500, т.е. за секунду размер меняется на 100-200 мегов в любую сторону! Тикер у меня, повторяю, ОДИН! Алгоритм фактически тот же самый - только вместо getParamEx цена заглатывается из текущей строки файла данных, И ВСЁ! Это сборщик мусора разошёлся, что ли? Больше, вроде, некому. И что этой падле от моего скрипта надо? Обрадовалась, что тикер у меня только один остался? У меня просто фантазии не хватает: как можно изуродовать софт, чтобы он вытворял ТАКОЕ? И что с этим делать? Нет, я-то переживу - ну, не за 2 минуты, но за час, за два массив он всё же обработает, но у меня просто нет слов...
Могли бы Вы, пожалуйста, прислать используемый Вами Lua-скрипт, версию терминала, а также параметры Вашей ОС для анализа проблемы ?
Владимир написал: ...Нет, лапуль, про Машинное Обучение я тоже не в курсе. Зато я в курсе, что обучение тоже УГРОБЛЕНО! ...И как, при работе этого самого "МО" комп успевает-таки отслеживать нажатие клавиш? Чо, УСПЕВАЕТ?! Большой успех молодого спортсмена! ::
Да поняли мы уже, что бот для шахмат - это достижение для тебя. Считаешь, что алгоритмы не создаются...
Чувак, всё современное МО строится на алгоритмах, недоступных компам до 2000-х. "Градиентный спуск" может распознать тебя в московском метро и предсказать цену акций. "Случайный лес" строит цепочку условий. МО - это то, что обыграет Каспарова. Но ты до сих пор можешь сидеть в своей пещерке. Хотя в твоём возрасте уже сложно разбираться в алгоритмах МО...
для справки: -------------------------- алгоритм "градиентный спуск" в обед -50 лет. см. Корн Г., Корн Т. Справочник по математике для научных работников и инженеров. — М.: Наука, 1970. — С. 575-576. ---------------- алгоритм "случайный лес" почти 30 лет. Основная идея заключается в использовании большого ансамблярешающих деревьев, каждое из которых само по себе даёт очень невысокое качество классификации, но за счёт их большого количества результат получается хорошим. По сраным обстоятельствам он схож с алгоритмом к-ближайших соседей, которому более 50 лет. -------------- Алгоритм глубокого обучения официально 15 лет. Но по сраным обстоятельствам этот алгоритм очень похож на МГУА , которому в обед 50 лет. ------------------ Алгоритм Мо - это вообще-то не алгоритм в узком смысле, а общая идея. Он применим к следующему классу задач: "Дается массив Arr длиной N и Q запросов. Каждый запрос представлен двумя числами L и R,и он просит вас вычислить некоторую функцию Func с под массивом Arr[L..R] в качестве аргумента." Алгоритм Мо (кит. 莫隊算法) был популяризован китайским спортивным программистом Мо Тао (莫涛) в конце нулевых годов. ----------------------- 50 лет - это тот срок, через который методы, известные в науке, доходят до массового потребления. ----------------------------- Причем, те, кто продвигает "новые" алгоритмы в массы , забывают сказать у кого они их взяли.
и еще... TORCH (факел) программа машинного обучения содержащая практически все, что из этого сейчас модно. --------------------- Гугл взял пакет TORCH7 для луа и сделал оболочку для питона. ----------------- разработчики TORCH7 взяли пакет программ для научных исследований на Фортране и сделали оболочку для CИ. ------------------- Прикольно.
Могли бы Вы, пожалуйста, прислать используемый Вами Lua-скрипт, версию терминала, а также параметры Вашей ОС для анализа проблемы ?
А нет у меня никаких проблем. После запуска программы на следующий день скрипт закончил работу за 20 секунд, и даже не показывал, сколько там у него памяти занято, Я уже говорил, что не вижу никаких объяснений такому поведению, кроме "взбесившегося" сборщика мусора - просто потому, что этот тест вообще не обращается даже в ТТТ, не говоря уже о том, что не посылает ни одной транзакции. Пардон, он читает-таки из ТТТ при старте размер лота, размер шага и, кажется, что-то ещё, но это один раз и при старте. Всё остальное - внутренние расчёты скрипта и работа с файлами.
Настройки операционки самые стандартные, вообще никогда к ним не прикасался со времени покупки ноута. Стоит "десятка", CPU на 2 ядра по 2 ГГц, ОЗУ 2 ГБ, кроме двух Квиков и браузера там вообще ничего нет. А "используемый скрипт" - это уж извините! Он у меня за год заработал более 100% на долларовом рынке, и в районе 40% на евровом и рублёвом. Правда, последние действия свихнувшегося "руководства", кажется, обратили все эти деньги и оставшиеся бумаги в пепел.
nikolz,Алгоритм "градиентный спуск" не только старый - он ещё и простой, и достаточно глупый - в сколько-нибудь сложных ситуациях его использовать просто нельзя. Алгоритм "случайный лес" (как и все остальные леса) говорит разве что о полном неумении работать с сетевой моделью данных, эмулируя её набором иерархий. Мой "Синдбад" работает с графами общего вида, и ему по барабану все эти "леса". Как там Маршак писал: Хоть роста небольшого я, Но к нынешней весне Сады, леса дубовые По пояс были мне. А Васильев добавлял: "Местами будет по... вам по пояс, значит".
Не знаю, что такое "алгоритм глубокого обучения", но уже по названию это полное и абсолютное говно. И ни секунды не сомневался, что "Алгоритм Мо - это вообще-то не алгоритм". Ни в узком смысле, ни в широком. А Фейсбуку не хило бы довести до ума хотя бы своё собственное говно, в котором поиск отсутствует как класс, а идиотская "деревянная" система организации постов автоматически делает почти невозможным ведение содержательных (или даже просто долговременных) дискуссий.
nikolz написал: 50 лет - это тот срок, через который методы, известные в науке, доходят до массового потребления.
не... это в 2008г все алгоритмы на полную заработали. Сейчас за 30 дней после публикации на АрХив алгоритм разлетается по всем фремворкам. В месяц могут кучу новых алгоритмов на АрХив выложить. Да, и засрали АрХив своим МО - народ уже бурлил по этому.
TensorFlow - Google Pytorch - Facebook с фиксом классов TF XGBoost и его модификации от Макрософта и Яндекса ...и я тоже накоммитил в этих проектах...
Владимир, поскольку ты всерьёз считаешь себя гением, то докажи это на Kaggle! Хотя бы стартовый "Титаник" осиль...
nikolz написал: и еще... TORCH (факел) программа машинного обучения содержащая практически все, что из этого сейчас модно. --------------------- Гугл взял пакет TORCH7 для луа и сделал оболочку для питона. ----------------- разработчики TORCH7 взяли пакет программ для научных исследований на Фортране и сделали оболочку для CИ. ------------------- Прикольно.
Я фанат современного программирования, который рос на "Форуме.Исходников", споря с программистами медицинского оборудования и с создателями Alglib. Я исходный код воспринимаю быстрее обычного текста.
И тут явился Владимир, который БЕЗ ДОКАЗАТЕЛЬНО наплёл, что он крут и Я ему неровня! Чтож... отвертеться у него не получится!
Задача начального уровня для МО: Найти выживших с Титаника train.csv - данные для обучении модели test.csv с gender_submission.csv - тестовые данные с результатом
Нужно для train.csv получить свой "gender_submission.csv" и отправить в Kaggle на автоматическую проверку.
Мой результат с 77.99% на простой 4-х слойной сетке. Точную ссылку дам только после Владимира.
Владимир, отказ и увиливание от решения этой задачи будет расценено, как полная капитуляция и потеря права хоть чё-то вякать про программирование!
Проверочный файл можешь закачать куда-нибудь (админы этого форума додумались ZIP запретить) или сразу на Kaggle. И исходники решения тоже выложи, если твоя модель больше 80% выдаст.