Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#76: 2011-08-29 17:59:09 ЛС | профиль | цитата
Neo, не обижайся, но
в третьем посте ser_davkin писал(а):
Кроме того, ты используешь сторонний компонент.
и что в последнем черном мультике ? Неужели думаешь, что все сразу скачали и установили компонет ?
Neo писал(а):
Но алгоритм я привел - описал почему, что да как.
я не видел и, насколько я понял
1nd1g0 писал(а):
неизвестности алгоритма программы в целом
1nd1g0 тоже.
Если это военная тайна, то вопросов нет.
Если не тайна - выкладывай АЛГОРИТМ ВСЕЙ ПРОГРАММЫ.

Откуда дописываются данные в БД ?
Почему
Neo писал(а):
База их выплевывает как "Максим" пули.
?
Почему нельзя перевести на стрельбу одиночными ?
Почему возникла необходимость использовать стек ?
Сплошные "почему", на которые ты не отвечаешь.


------------ Дoбавленo в 17.59:
Кстати
Neo писал(а):
И если есть утверждения, что база сама способна управлять выдаваемыми потоками - это заблуждение. База их выплевывает как "Максим" пули. И ей совсем все равно успел предыдущий пройти просчеты или нет.
заблуждение, что нельзя провести любые рассчеты не извлекая данные из БД
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#77: 2011-08-29 18:07:47 ЛС | профиль | цитата
Кстати, если база является слабым звеном быстродействия, то работу с базой можно оформит отдельно фоновым приложением и пихать в нее данные при помощи UDP канала, тогда данные будет кешировать сама система. Поверено, работает безотказно
карма: 22

1
Голосовали:Neo
Ответов: 16884
Рейтинг: 1239
#78: 2011-08-29 18:16:51 ЛС | профиль | цитата
И когда
Tad писал(а):
ошибка в алгоритме
я имел ввиду алгоритма всей программы, а не черного мультика
------------ Дoбавленo в 18.16:
nesco,
народная мудрость писал(а):
Бесполезно объяснять что-то глухому, если он смотрит не на тебя.
Как ни прискорбно, но Neo никого не слышит и смотрит в другую сторону.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 704
Рейтинг: 7
#79: 2011-08-30 16:34:36 ЛС | профиль | цитата
Tad, у меня схема уже за 1 Мб перевалила. Выложить частично - не ясно будет, выложить всю - еще "лучше". Хоть и есть подсказки, но все это для меня понятно, а Вам смотреть на мои каракули будет сложно - а потом еще скажете что выкладываю огромную - нужно поменьше.
Tad писал(а):
Почему нельзя перевести на стрельбу одиночными ?
Почему возникла необходимость использовать стек ?

Задаю один запрос на поиск - вылетают все вхождения. Я каждое проверяю на соответствие таблице кодов - бывает по 3 верных сиюминутно.
А стек дает очередь "первый вошел - первый вышел" без лишних телодвижений.
Tad писал(а):
Откуда дописываются данные в БД ?

Из асинхронного ком-порта из под железки с контроллером.
Tad писал(а):
и что в последнем черном мультике ? Неужели думаешь, что все сразу скачали и установили компонет ?

Я не нашел чем эффективно заменить стекEx.
карма: 0

0
Ответов: 3889
Рейтинг: 362
#80: 2011-08-30 16:36:21 ЛС | профиль | цитата
Neo писал(а):
у меня схема уже за 1 Мб перевалила

Это бинарные данные, или только компоненты с параметрами? Если последнее, то вопрос "почему зависает" надо формулировать как "наконец-то начало виснуть".
карма: 1

0
Ответов: 704
Рейтинг: 7
#81: 2011-08-30 16:36:35 ЛС | профиль | цитата
nesco, а не будет тормозов при записи в UDP?
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#82: 2011-08-30 16:37:50 ЛС | профиль | цитата
Neo писал(а):
Я не нашел чем эффективно заменить стекEx

Что за данные
карма: 22

0
Ответов: 704
Рейтинг: 7
#83: 2011-08-30 16:37:56 ЛС | профиль | цитата
1nd1g0, так вроде не было лимита на 20 байт кода
Все исполняет свою роль по-кусочкам. Все нужно для чего-то и строится в цепь. Не вижу тут криминала.
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#84: 2011-08-30 16:38:05 ЛС | профиль | цитата
Neo писал(а):
а не будет тормозов при записи в UDP?

Нет
карма: 22

0
Ответов: 704
Рейтинг: 7
#85: 2011-08-30 16:38:31 ЛС | профиль | цитата
nesco писал(а):
Что за данные

Строки
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#86: 2011-08-30 16:43:12 ЛС | профиль | цитата
Neo писал(а):
Строки

Я так понял, что тебе нужен не стек а очередь. На тебе безотказный эквивалент строковой очереди



Add(MultiElementEx,10273865,462,700)
{
@Hint=#5:Queue|
@IsLib=True
AddHint(43,-27,47,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,14243851,21,21)
{
WorkCount=#6:doPush|5:doPop|
EventCount=#5:onPop|7:onEmpty|
Width=328
Height=151
VOffset=42
link(doPush,12821464:doAdd,[])
link(doPop,16479268:doData,[(49,76)(49,132)])
}
Add(StrList,12821464,133,63)
{
Point(doGetString)
Point(onGetString)
link(onGetString,16280060:doCase,[])
}
Add(DoData,8252341,77,77)
{
Data=Integer(0)
link(onEventData,12821464:doDelete,[])
}
Add(DoData,16479268,77,126)
{
Data=Integer(0)
link(onEventData,12821464:doGetString,[(121,132)(121,111)])
}
Add(Case,16280060,182,70)
{
Value=String()
link(onNextCase,12759087:doEvent1,[])
link(onTrue,5983824:doEvent1,[(236,83)(236,104)])
}
Add(Hub,12759087,259,70)
{
link(onEvent1,14243851:onPop,[(312,76)(312,69)])
link(onEvent2,8252341:doData,[(290,83)(290,34)(64,34)(64,83)])
}
Add(Hub,5983824,259,98)
{
link(onEvent1,12821464:doClear,[(300,104)(300,43)(121,43)(121,76)])
link(onEvent2,14243851:onEmpty,[(321,111)(321,76)])
}
END_SDK

карма: 22

0
Ответов: 704
Рейтинг: 7
#87: 2011-08-30 16:45:48 ЛС | профиль | цитата
1nd1g0, Вы так и не не ответили как можно не работать с интерфейсом из потоков, если данные в интерфейсные формы идут после обработки из потоков?
карма: 0

0
Ответов: 3889
Рейтинг: 362
#88: 2011-08-30 16:50:58 ЛС | профиль | цитата
Neo писал(а):
как можно не работать с интерфейсом из потоков, если данные в интерфейсные формы идут после обработки из потоков?

Использовать прослойку между интерфейсом и логикой программы. Начиная с областей памяти для обмена, защищённых SafeMode, вплоть до того же UDP.
карма: 1

0
Ответов: 704
Рейтинг: 7
#89: 2011-08-30 16:54:55 ЛС | профиль | цитата
nesco, сначала обрадовался схемке, но потом опомнился: исполнение в главном потоке (это тормоза такие как и были), считывать новый нужно как-то и первый тоже нужно угадать когда считать - таймер. Тот же стек выходит, или нет?
------------ Дoбавленo в 16.54:
1nd1g0, вроде представляю, но нет ли примерчика под рукой?
Так думаю или неверно?

Add(Memory,7818330,714,119)
{
}
Add(MMTimer,5013737,665,119)
{
Interval=1
Enable=1
AutoStop=1000
link(onTimer,7818330:doValue,[])
}
Add(Timer,2964678,665,161)
{
link(onTimer,15280127:doText,[])
}
Add(Label,15280127,714,161)
{
Left=710
Top=160
link(Text,7818330:Value,[])
}


карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#90: 2011-08-30 16:56:37 ЛС | профиль | цитата
Neo писал(а):
сначала обрадовался схемке, но потом опомнился: исполнение в главном потоке (это тормоза такие как и были)

Можно подумать элемент StackEx имеет другой поток. Я дал тебе схему эквивалента очереди, а не пытался решить проблему разных потоков. Не надо подменять понятия
------------ Дoбавленo в 16.56:
Neo писал(а):
Так думаю или неверно?

Да, именно так, или использовать onSyncExec у системного потока, если он работает в цикле
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)