Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#91: 2011-08-30 16:58:30 ЛС | профиль | цитата
Neo писал(а):
Tad, у меня схема уже за 1 Мб перевалила.
Да не нужна мне твоя схема. Нужен а л г о р и т м. хотя бы в таком виде:
1. Данные для программы берём из Com-порта в формате ХХХХХХХХХ на скорости ХХХХХХ ????
2. Записываю их в БД (расшифровка почему, зачем и нахрена)
3.
Neo писал(а):
Задаю один запрос на поиск - вылетают все вхождения. Я каждое проверяю на соответствие таблице кодов - бывает по 3 верных сиюминутно.
вот здесь поподробней - почему так происходит ? Или запрос задаешь неверный, или не знаешь оператор GROUP BY, который выдаст один результат даже из миллиона одинаковых.
и т.д.
А схема твоя совершенно не нужна.
Вот когда распишешь свой алгоритм, тогда может и сам поймешь где глючит.
nesco писал(а):
Что за данные
Neo писал(а):
Строки
ну отвечай ты по человечески - какие строки ? короткие ? километровые ?
Какие поля в таблице БД ? Какие поля проверяешь и по каким критериям ?

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 704
Рейтинг: 7
#92: 2011-08-30 17:00:38 ЛС | профиль | цитата
nesco, но в чем преимущество стеку? Я выложил готовую схемку с потоком и проверкой на завершенность потока. Там используется стек, а здесь тот же стек, но разобранный. Он более стабилен и если да, то почему?
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#93: 2011-08-30 17:02:49 ЛС | профиль | цитата
Tad, база данных вещь хороша, но иногда ее быстродействие бывает критическим. На новых версиях модуля движка SQLite кактастрофически низкое быстродействие на обработку. Мне, к примеру, не хватило времени на запись данных в базу до прихода следующих, наступало переполнение очереди, что и заставило меня вынести модуль записи в базу отдельно
карма: 22

0
Ответов: 704
Рейтинг: 7
#94: 2011-08-30 17:02:59 ЛС | профиль | цитата
Кстати, схемка оказалась очень даже рабочей и дело было из-за таймерного извращенного симулирования наполнялки. Правда теперь нужно отвязать визуальные элементы от потоков - при сильной загрузке процессора они тормозят логику.
code_25043.txt
карма: 0

0
файлы: 1code_25043.txt [1.2KB] [198]
Разработчик
Ответов: 26163
Рейтинг: 2127
#95: 2011-08-30 17:05:15 ЛС | профиль | цитата
Neo писал(а):
Там используется стек, а здесь тот же стек, но разобранный

Я дал схему не стека, а ОЧЕРЕДИ, это разные вещи. Если тебе нужен чистый стек, то зачем ты лепишь сторонний компонент StackEx
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#96: 2011-08-30 17:11:46 ЛС | профиль | цитата
nesco писал(а):
Мне, к примеру, не хватило времени на запись данных в базу до прихода следующих, наступало переполнение очереди
а мне хватало времени считывать данные с ленточного накопителя через Com-порт в базу .dbf на .286 машине.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26163
Рейтинг: 2127
#97: 2011-08-30 17:15:12 ЛС | профиль | цитата
Tad писал(а):
через Com-порт

Вот именно, через один, а не через семь разномастных, работающих каждый в своем потоке
К тому же, .dbf тогда и SQLite сейчас -- несколько разные вещи
Да и не только это послужило вынесению записи в отдельный модуль, а ее постоянное наращивание занимаемой памяти. Кстати, такой же болезнью страдает MSSQL, за месяц вырастает до 1,5 Гб
карма: 22

0
Ответов: 704
Рейтинг: 7
#98: 2011-08-30 17:25:54 ЛС | профиль | цитата
nesco, стек - первый вошел-последний вышел, а этот стек - наоборот.
Ну а алгоритм не дам - набрал все, а форум его унес в 500 эррор. Кнопка "назад" показала девственный лист. Нервы сдали и решил что разбираться буду сам на основе последних советов .
------------ Дoбавленo в 17.25:
nesco, опишите, пожалуйста как именно делали разделение? Просто в фоновом приложении или обычной форме? Как-то разделяли приоритеты процессора? Запускали фоновую после запуска основной? Какие-то тонкости есть?
карма: 0

0
Разработчик
Ответов: 26163
Рейтинг: 2127
#99: 2011-08-30 17:29:20 ЛС | профиль | цитата
Neo писал(а):
Просто в фоновом приложении или обычной форме?

Невидимая форма, обязательно нужно окно для отработки очереди.
Neo писал(а):
Как-то разделяли приоритеты процессора?

Зачем, система сама распределяет нагрузку процессоров
Neo писал(а):
Запускали фоновую после запуска основной?

Основная сама запускает writer, если он не запущен, а иначе -- коннектится по UDP к уже запущенной
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#100: 2011-08-30 17:34:52 ЛС | профиль | цитата
Neo писал(а):
Ну а алгоритм не дам - набрал все, а форум его унес в 500 эррор.
а мне и не надо - это тебе надо
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 704
Рейтинг: 7
#101: 2011-08-30 18:01:47 ЛС | профиль | цитата
Tad писал(а):
а мне и не надо - это тебе надо
так оно и есть, просто говорю что да как, а то складывается впечатление что я алгоритм зажал от общественности
карма: 0

0
Гость
Ответов: 17029
Рейтинг: 0
#102: 2011-08-30 20:15:59 правка | ЛС | профиль | цитата


Редактировалось 1 раз(а), последний 2017-03-04 01:31:29
карма: 0

0
Ответов: 704
Рейтинг: 7
#103: 2011-09-03 23:56:51 ЛС | профиль | цитата
Благодаря общим советам вымучал и отладил. Стек конечно помог не слабо, но окончательный успех принесло отключение визуальных элементов формы от прямой связи с потоками логики.
карма: 0

0
Ответов: 3889
Рейтинг: 362
#104: 2011-09-04 00:33:36 ЛС | профиль | цитата
Neo писал(а):
тключение визуальных элементов формы от прямой связи с потоками логики.

Что и требовалось доказать Семь страниц ушло на то, чтобы выявить проблему в элементах, которых даже не было на схемах с описанием проблемы.
карма: 1

0
Ответов: 16884
Рейтинг: 1239
#105: 2011-09-04 08:34:08 ЛС | профиль | цитата
1nd1g0, и я всё время просил "огласить весь список" (общий алгоритм)
Tad писал(а):
ошибка в алгоритме
я имел ввиду алгоритма всей программы, а не черного мультика

да и ты тоже
1nd1g0 писал(а):
при условии неизвестности алгоритма программы в целом

Tad писал(а):
Как ни прискорбно, но Neo никого не слышит и смотрит в другую сторону.

Neo, а теперь убери и стек и потоки и будет успевать работать


------------ Дoбавленo в 08.34:
А если выложишь алгоритм проги, то и вес уменьим до 200 кб и БД успевать будет и читать и писать и считать.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)