привел бы еще время выполнения элемента в сравнении с аналогом на рассыпухе
Этот топик читают: Гость
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
карма: 27 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Assasin, искренне, поздравляю, молодец! (здорово!, что ты прикрутил чтение строковых)
Хочу отметить. Этот компонент не решает проблем управления потоками, получился стандартный, хотя и весьма, "продвинутый" - if_Else. Преимущества ты перечислил, но это только 30% функционала элемента о котором я писал, и от каскадов мы пока не избавились: Очень часто встречается задача выбора из массива по условию, и управления потоками по условию: Где: if x1 = 'Login' then 0, x2 = 'Assasin' then 1, x3 = 4567 then 2 else error (то-есть на точку True должны выходить индексы верхних точек) Но верхняя запись громоздкая, и в максе она заменяется на подобие Case: case 'Login' 'Assasin' 4567 В результате все сразу заталкивается в элемент в потоке, и на выходе on_True возникают индексы совпадений. Если затолкали слово Login то выскочит нолик, если Assasin выскочит еденичка. Иначе - точка on_false. А за элементом либо массив, либо IndexToChannel. (это для HiAsm, в максе пошли дальше, обьеденив этот case с элементом IndexToChannel, и получили "многоэтажный case" с простым синтаксисом) ------------ Дoбавленo в 09.21: Еще просто, нейтральная, информация: есть разница устройства самих интерфейсов. Этот элемент у макса имеет сложный функционал, и при этом не теряет ресурсов, еще вот почему: Палитра элементов там есть только для визуальных компонентов, а нужный логический элемент, подгружается в зависимости от того, что юзер вписал в начале строки. Если он пишет "if.." то подгружается элемент который сделал Assasin, если юзер пишет "case...", то подгружается case, или если пишет "+" то загружается простой "Math" (и меняется его внешний вид). Это им экономит место на палитре, и ресурсы, под конкретные задачи. |
|||
карма: 0 |
|
Ответов: 356
Рейтинг: 31
|
|||
Assasin, IfParse это конечно движение вперёд. Но компонент сам по себе ещё "сырой", и немаловажный вопрос "времени выполнения" остаётся открытым.
Согласен с login, это всё же не совсем то, и наиболее подходящим видится набор мастеров, которые по этому языку будут формировать готовый IC и вставлять его в схему |
|||
карма: 0 |
|
Ответов: 1429
Рейтинг: 50
|
|||
olDjeka, не хотелось бы обескуражить Assasin. Компонент не "сырой".
Просто Assasin или захочет его доделать, или не захочет. ------------ Дoбавленo в 12.25: olDjeka писал(а): формировать готовый IC и вставлять его в схемуДля "скорости" этот компонент нужно писать, на FTCG, там такое возможно, без поиска компромисов. |
|||
карма: 0 |
|
Ответов: 356
Рейтинг: 31
|
|||
login писал(а): Просто Assasin или захочет его доделать, или не захочетНу вобщем-то это и имелось ввиду |
|||
карма: 0 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
login, такого я и не обещал, я не обещал, что сделаю все как в максе, я откликнулся на это
nesco писал(а): Assasin, появились "кошки", не хочешь потренироватьсяnesco писал(а): попытать доделать свой компонентlogin писал(а): Очень часто встречается задача выбора из массива по условию, и управления потоками по условию:Для этого лучше делать компонент CaseParse или использовать StrList: пишем значения в столбик, на вход doGetIndex подаем стркоу, а на выходе onGetIndex имеем искомый индекс или -1 в случае ненахождения. login писал(а): а нужный логический элемент, подгружается в зависимости от того, что юзер вписал в начале строки. Если он пишет "if.." то подгружается элемент который сделал Assasin, если юзер пишет "case...", то подгружается case,или если пишет "+" то загружается простой "Math" (и меняется его внешний вид). Это им экономит место на палитре, и ресурсы, под конкретные задачи. Это уже не ко мне, хотя идея в некотором плане интересна olDjeka писал(а): Assasin, IfParse это конечно движение вперёд. Но компонент сам по себе ещё "сырой", и немаловажный вопрос "времени выполнения" остаётся открытым.login писал(а): olDjeka, не хотелось бы обескуражить Assasin. Компонент не "сырой".Просто Assasin или захочет его доделать, или не захочет. Нет, login, olDjeka прав, компонент еще сыроват, но я его так просто не брошу (к тому же, раз уж я составил этот компонент, значит я подписался на исправление его ошибок (а я как раз нашел парочку, сидя в школе за партой и перебирая в голове код (я не шучу)) и доработку по желанию): у меня есть пара идей о быстродействии и уменьшении памяти за счет перехода на другую структуру данных (с TData на новую, более компактную и быструю). |
|||
карма: 10 |
|
Ответов: 356
Рейтинг: 31
|
|||
[offtop]
Assasin писал(а): сидя в школе за партой и перебирая в голове код |
|||
карма: 0 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
[offtop]
olDjeka писал(а): Не переусердствуй, а то "перегоришь"У нас была алгебра... вернее даже две подряд, я уже сделал два номера вперед и поэтому сидел размышлял над кодом, изредка возвращаясь в реал и смотря на доску Так что с приоритетами у меня порядок [/offtop] ------------ Дoбавленo в 15.16: Мда, пока что результаты неутешительные, почти в 1.8 раз дольше чем аналог на If-ах:
------------ Дoбавленo в 15.58: Используя новую структуру и несколько поправок удалось добиться снижения с 1.8-2.0 раза, до (среднее значение меж 3 тестов) 1.51835240469286. Все же уже лучше, но на большее у меня пока что нет идей. Вот компонент, а тестовая схема осталась той же. [burl=/getfile/20770]ifparse1.2.rar[/burl] |
|||
карма: 10 |
| ||
файлы: 1 | ifparse1.2.rar [3.2KB] [89] | ||
Голосовали: | login |
Ответов: 1429
Рейтинг: 50
|
|||
Assasin писал(а): CaseParse или использовать StrList:Ты прав, StrList я не догадался ) Да и еще я нашел твои компоненты: NameToChannel (и обтратно), хорошие, а я не видел их. p/s А почему разработчики не делают бета версии HiAsm 4.xx? Которые бы отличались только наполнением их новыми компонентами. А то иногда не знаешь кто что уже написал. Или файл-update стандартного пакета до v.2.xx и т. п. Неудобно элементы, по одному, вручную добавлять. |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
Assasin писал(а): Мда, пока что результаты неутешительные, почти в 1.8 раз дольше чем аналог на If-ах:вот поэтому тут этим заниматься бесперспективно(если не делать свой компилятор как в fastMathParse конечно) login писал(а): Неудобно элементы, по одному, вручную добавлять.install SVN |
|||
карма: 27 |
|
Ответов: 1429
Рейтинг: 50
|
|||
Dilma писал(а): install SVNМожет это банально, но я зашел на сервис SVN, и не понимаю как скачать обновленную версию. Папки вижу а скачивания нет. |
|||
карма: 0 |
|
Администрация
Ответов: 15295
Рейтинг: 1519
|
|||
login писал(а): Может это банально, но я зашел на сервис SVN, и не понимаю как скачать обновленную версию.SVN |
|||
карма: 27 |
| ||
Голосовали: | login |
Ответов: 356
Рейтинг: 31
|
|||
Del.
|
|||
карма: 0 |
|
Ответов: 1429
Рейтинг: 50
|
|||
SVN хочет ручных действий
Век цифровых технологий. |
|||
карма: 0 |
|
Разработчик
Ответов: 4698
Рейтинг: 426
|
|||
Dilma писал(а): вот поэтому тут этим запиматься безперспективноВ таком случае MathParse в мусорку из пакета! За каким хреном там лежит то, что в разы медленнее, чем аналог на Math-ах? Да, я предвижу ответ: "В математике формулы намного длиннее, чем в логике, и делать кучу Math, в которых можно запутаться при построении или если надо поменять формулу, бессмысленно". К тому же, как многие (а потом уже и я) раньше говорили: будущее за FTCG, вот там код компонента на FTCG вообще займет десяток строк (а не как сейчас ~300 на чистом языке). Dilma писал(а): если не делать свой компилятор как в fastMathParse конечноБа, сначала бы меня кто научил ассемблеру (т.к сам я за это возьмусь врядли скоро), а уж потом я попробую разобраться с FastMathParse login писал(а): SVN хочет ручных действийА ты думал он сам обновит, когда будет новая ревизия? Тогда это уже было бы автообновление, а не контроль версий login писал(а): А почему разработчики не делают бета версии HiAsm 4.xx? Немного не понял, может ты про HiAsm 5? |
|||
карма: 10 |
|