Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Да я не расстраиваюсь за джаву. Просто интересно. 1000 циклов минимакса на массиве в 1000 элементов Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 1000 циклов поиска минимакса по 1000 элементов = 3 милисикунды. один проход по массиву (2..4)*10 в -6 ой. те 100 000 измерений в секунду смогут пролезть с некоторым запасом. Если каждое измерение сопровождается поиском минимакса. А у Вас - 500 ~ 1 000. Мне думается, что запас пока еще весьма существенный.... Чем иногда невыгодны усложненные структуры данных - линейный массив почти наверняка будет жить в кэше процессора. И внутрипроцессорный оптимизатор может сам правильно понять, что от него хотят. А он у пентиумов и выше - не такой тупой. И может получится так, что работа со связанной структурой на таких незначительных объемах не даст справедливо ожидаемого логарифмического выигрыша. С учетом того, что даже на "медленной джаве" от которой никто ничего хорошего не ждет (шутка) запас по времени 100 кратный.... Стоит ли искать еще большего выигрыша? На С++ должно быть в полтора-2 раза быстрее минимум. Там скорее чтоб работало надо играть с приоритетностью процесса у ОС - что б ему квантов времени давали полным половником. Вот где ресурс. Возможно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 18:10 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Я смотрю автора ещё никто не спросил какого типа данные у него в очереди... И почему бы не считать этот min/max при необходимости, а не на лету?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 18:22 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Vladimir BaskakovЧем иногда невыгодны усложненные структуры данных - линейный массив почти наверняка будет жить в кэше процессора. Ну например хип, про который выше говорилось, в большинстве случаев может храниться тоже как массив. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 18:36 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЯ смотрю автора ещё никто не спросил какого типа данные у него в очереди... И почему бы не считать этот min/max при необходимости, а не на лету?.. Тут бы еще узнать зачем оно вообще надо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 18:37 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. что-то со мной не так? почему сишный код из под GCC 3-4-5 работает медленнее джавского (6)? почему миллион циклов по 10000 сравнений выполняется 43522 условных милисекунды? не расстроен - удивлен.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 18:55 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
У меня почему-то в голове крутиться аналогия с расчётом "скользящего среднего" если считать FIFO - статистической выборкой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 18:59 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovЯ смотрю автора ещё никто не спросил какого типа данные у него в очереди... И почему бы не считать этот min/max при необходимости, а не на лету?.. Я оговаривался - целочисленные.авторm_Sla ворочал запятую, а уменя все целочисленное. Необходимость такая есть. Надо просто принять это :) Anatoly MoskovskyТут бы еще узнать зачем оно вообще надо :)Да все очень просто. Нужно продемонстрировать, что существующая методика и инструментарий для сбора, оценки м анализа параметров процесса устарели и нужно вложиться в нормальную разработку. И уж если я на коленке смог собрать более эффективную и, главное, работающую модель, то наверное следует нанять профессионалов и сделать все красиво :) maytonУ меня почему-то в голове крутиться аналогия с расчётом "скользящего среднего" если считать FIFO - статистической выборкой.Не удивительно, что крутится :)авторна каждом тике еще считаются (но все тривиально): - приращение очереди: (Chg = New - Old); - сумма значений очереди: (Sum = Sum + Chg); - скользящее среднее: (Avg = Sum / Siz); - диапазон минмакс: (Dnx = Max - Min) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 19:11 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Vladimir Baskakov почему сишный код из под GCC 3-4-5 работает медленнее джавского (6)? почему миллион циклов по 10000 сравнений выполняется 43522 условных милисекунды? не расстроен - удивлен.... А шо ж вы в джаве не сделали миллион циклов по 10000, а всего 1. Сделайте - тогда будете расстроены ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 19:15 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
underCЯ оговаривался - целочисленные. "Я" бывают разные. (с) Кролик. Целочисленные значения имеют разрядность от 1 до 64 бит минимум. Какие у тебя? До разрядности в 8 бит будет эффективным уже предложенный способ счётчиков. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 19:24 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyVladimir Baskakov почему сишный код из под GCC 3-4-5 работает медленнее джавского (6)? почему миллион циклов по 10000 сравнений выполняется 43522 условных милисекунды? не расстроен - удивлен.... А шо ж вы в джаве не сделали миллион циклов по 10000, а всего 1. Сделайте - тогда будете расстроены Вот откуда растут двойные стандарты ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 19:27 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov"Я" бывают разные. (с) Кролик. Целочисленные значения имеют разрядность от 1 до 64 бит минимум. Какие у тебя? До разрядности в 8 бит будет эффективным уже предложенный способ счётчиков. Мои целочисленные - VBA-шный тип long: F1Long (long integer) variables are stored as signed 32-bit (4-byte) numbers ranging in value from -2,147,483,648 to 2,147,483,647 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 19:56 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
underCМои целочисленные - VBA-шный тип long: Ну, раз ты так считаешь... Тогда следующий вопрос: кто и с какой частотой использует эти min/max значения? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 20:03 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Dimitry Sibiryakov, * Ну, раз ты так считаешь... это VBA так считает. Чем-то мои лонги не понравились... * кто и с какой частотой использует эти min/max значения? С частотой поступления тиков все это предварительно считаемое добро участвует в последующей математике системы принятия решения. Также, параллельно с сырыми данными, пишется статистика. Для истории и для оффлайн анализа как наблюдаемых процессов, так и поведения самой системы наблюдения за ними ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 20:47 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
underCэто VBA так считает. Чем-то мои лонги не понравились... То, что считает какой-то VBA никому неинтересно. Гораздо интереснее мнение того, кто эти данные присылает. Конкретнее - диапазон генерируемых значений. underCС частотой поступления тиков все это предварительно считаемое добро участвует в последующей математике системы принятия решения. То есть принятие решения осуществляется на каждое поступление новых данных, 500 раз в секунду? Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 21:32 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
У меня был один простой вопрос - уважаемые спецы по Си, как вам видится мой алгоритм и получу ли я ожидаемую (в пределах +- трамвайная остановка) скорострельность. Спасибо всем явно или косвено подтвердивших работоспособность алгоритма и особенно тем, кто не поленился и смоделировал. Vladimir Baskakov , m_Sla - снкс. Спасибо остальным за высказанные идеи и ориентиры на будущее. Осталось два простых вопроса. Их, к сожалению, залистали: - как передать в длл массив значений разом вместо нескольких параметров , и - как получить из нее так же массив значений, вместо нескольких вызовов . Dimitry Sibiryakov, * Гораздо интереснее мнение того, кто эти данные присылает Уточни, плз, что имеется ввиду? Если только это: * Конкретнее - диапазон генерируемых значений. то датчиками генрируется абстракщина, понятия не имею. А на выходе из API - лонги любого знака. Порядок величин - 10^5, не более. За исключением моего собственного сквозного таймштемпа, который я проставляю с точностью 100 мксек. Так что у него порядок до 10^9. авторТо есть принятие решения осуществляется на каждое поступление новых данных, 500 раз в секунду?Я оценил сарказм. Позволь и мне? Не поверишь - именно так. 500 раз в секунду и даже с большей частотой оператор сидит ровно на заднице и не подпрыгивает к пультам, а принимает, и принимает и снова принимает решение сидеть так же ровно и дальше . И лишь несколько раз в день он отрывает тохес от стула потому что загорается большая красная лампочка. Сказать почему она загорается? В частности потому, что 500 раз в секунду считается (среди прочего) минмакс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 22:58 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
underCНе поверишь - именно так. 500 раз в секунду и даже с большей частотой оператор сидит ровно на заднице и не подпрыгивает к пультам, а принимает, и принимает и снова принимает решение сидеть так же ровно и дальше . И лишь несколько раз в день он отрывает тохес от стула потому что загорается большая красная лампочка. Сказать почему она загорается? В частности потому, что 500 раз в секунду считается (среди прочего) минмакс. Я сильно сомневаюсь что ваша SCADA или АСУТП может требовать от человека-оператора требовать реакции с частотой 500 Гц. Субъективно люди зрением видят изменяюшуюся картинку с частотой 10 Гц а принимают решение с лагом еще большим. Поэтому в твоём случае буферизировать данные можно сколь угодно быстро. Но аналитику по ней гонять 10 раз в секунду. Оно и будет ладненько. Я готов спорить на ящик коньяку что разница между 500 Гц-ным замером и 10 Гц-ным на практике не будет заметна. Тем более что скользящие значения не будут изменяться быстро. Они в ПРИНЦИПЕ быстро не могут скакнуть. Окно не позволит. Прыгать щас через ж...пу и включать хардварные расчёты на Cuda-х и прочих железяках только по тому что чел. который ставил задание слабо себе понимал разницу между частотой выборки и частотой ПРИНЯТИЯ РЕШЕНИЯ явно не стоит. Ну вот ... в таком вот аспекте. n'est-ce pas? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.04.2013, 23:42 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
underCдатчиками генрируется абстракщина, понятия не имею. А ты поинтересуйся. Потому что если диапазон значений невелик и разброс - тоже, то быстрейшим способом получить экстремумы будет массив счётчиков значений. Как тебе уже сказали. underCЯ оценил сарказм. Позволь и мне? Не позволю. Потому что это не был сарказм. Я знаю что такое ИИ и системы принятия решений. Если их алгоритмы должны работать в реальном времени, на каждую порцию данных, тогда - да, min/max надо считать при занесении данных в буфер. Если они работают реже чтобы не дёргать зазря исполнительные цепи из-за кратковременных выбросов - нет смысла мучить сборщика данных. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 00:36 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
underC - как передать в длл массив значений разом вместо нескольких параметров , и - как получить из нее так же массив значений, вместо нескольких вызовов . Используй структуру. Зачем тебе массив передавать? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 05:45 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
maytonПоэтому в твоём случае буферизировать данные можно сколь угодно быстро. Но аналитику по ней гонять 10 раз в секунду. С точки зрения общей нагрузки на систему , держать счетчики в гарячем кеше процессора или регистрах будет выгоднее. , чем раз в 10 секунд их продувать расчетом. Но это пока не нужна кумулятивная статистика по нескольким потокам на разных процах. Вот ее уже можно собирать из счетчиков разных нитей раз в 10 сек, или даже реже вобщем с дисткретностью, с которой оператор может поднять свой тухес. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 11:03 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
maytonЯ сильно сомневаюсь [...] Ну вот ... в таком вот аспекте. n'est-ce pas? mayton , c'est tout. В смысле - pourquoi cure l'accordeon? ;) Ну зачем же так серьезно о метафоре, тем более анонсированной как сарказм в ответ на сарказм :) Конечно же, мой оператор, чтобы прервать свое бездействие, реагирует не на изменение минмакса с соответствующей частотой, а лишь на лампочку. Вобщем-то, это есть в завершающей метафору фразе. Смысл этой метафоры совсем даже философский - бездействие так же суть следствие принятия решения, как и действие. Если кто знаком с уставами или кодексом, то знает, что бездействие часто наказывается даже сильнее. Типа: "... если боевое дежурство приведо к последствиям, во избежание которых оно назначено..." - ну и далее кирдык по тексту :) А касательно мувингов (скользящих средних) - это ведь отдельная песня. Инструмент хороший, но... Там столько "но"... короче, его уметь надо готовить. С ними, в частности и сравнивается минмакс. Тут нюанс в том, что если мы говорим о процессах физического, природного характера, т.е. о процессах, обладающих определенной инерцией (ну, типа нагрев заготовки, разгон торможение э-двигателя), то мувинги и их комбинации справляются на ура. Если же наблюдаемые процессы безынерционны и, более того, склонны мгновенно менять знак (вектор) на противоположный, то мувинги будут совсем даже во вред. И вот отслеживание этой точки перелома есть одна из основных задач данной, простите, задачи :) На передний план выходит фильтрация шума (естественных смен знака). Вот все это в комплексе и определеят мое нежелание избавиться от избыточности как самих собираемых данных, так и аналитики, проводимой над ними. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 11:17 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovunderCдатчиками генрируется абстракщина, понятия не имею.А ты поинтересуйся. Потому что если диапазон значений невелик и разброс - тоже, то быстрейшим способом получить экстремумы будет массив счётчиков значений. Как тебе уже сказали.Может в этом и есть сермяжная правда. Но ведь таким образом ты меня подталкиваешь к написанию собственного API, а это не есть гуд. Сырые данные с датчиков... гальванические развязки, калибровки, шумы... Ты это все серьезно? Dimitry SibiryakovunderCЯ оценил сарказм. Позволь и мне?Не позволю. Потому что это не был сарказм. Я знаю что такое ИИ и системы принятия решений. Если их алгоритмы должны работать в реальном времени, на каждую порцию данных, тогда - да, min/max надо считать при занесении данных в буфер. Если они работают реже чтобы не дёргать зазря исполнительные цепи из-за кратковременных выбросов - нет смысла мучить сборщика данных. * Не позволю. Ну, я ужЕ, сорри :) * Я знаю что такое [...] Ну, я про себя так не скажу. А вот очередной притчей поделюсь. Про восходящие(!) стадии становления философа: - Я знаю, что я знаю. - Я знаю, что мало знаю. - Я знаю, что ничего не знаю (это уже на смертном одре). Так вот. Ты рассматриваешь кратенько, абрисно(!) описанную мной систему лишь в удобном для твоего знания и понимания разрезе. Оговорюсь о таком, к примеру, нюансе - есть один чуткий и нежный датчик. Так вот если в его отсчетах среди минмаксов начнут преобладать минимумы с явной периодичностью, а период будет иметь тенденцию уменьшаться, то готовь его к замене, он наелся. Если же он, начинает давать хаотичные выбросы в макс, то надо проверить его эл.цепь или же правильность установки. И таких примеров полно. Ты мне дашь гарантию, что заниженная частота опросов его минмаксов не стушует картину его тенденции к выходу? Или вообще не снивелирует ее? Йенг даешь на пятаки? Я не могу понять, почему нельзя просто принять на веру мое "надо"? Даже если это просто мой каприз. Даже, если это просто дурость. Помогите разобраться с этим гребаным Си, и не учите меня жить ;) Я ведь говорил уже - да часть информации избыточна и мои требования к системе тоже. Но это ведь только стадия если не разработки, но все еще обкатки. Пока есть запас прочности (а замеры мужиков выше это подтверждают) - надо делать в самой простой модели, соответствующей моему низкому скиллу в Си . Вот когда заработает и станет это узким местом - вот тогда и вернемся к вопросу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 11:30 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
underCЕсли же наблюдаемые процессы безынерционны и, более того, склонны мгновенно менять знак (вектор) на противоположный, то мувинги будут совсем даже во вред. И вот отслеживание этой точки перелома есть одна из основных задач данной, простите, задачи :) На передний план выходит фильтрация шума (естественных смен знака). Ничего в физике не происходит просто так , всему есть причина и следствие. Иногда причина и следствие меняются местами , но чаще их путают. Направление вы выбрали правильное. Точка перелома есть первая производная функции. Первой может быть мало, например вход системы в насыщение вы можете не поймать. underCВот все это в комплексе и определеят мое нежелание избавиться от избыточности как самих собираемых данных, так и аналитики, проводимой над ними. Тоже правильно , чем чаще дискретизация ( дельта диференцирования) , тем точнее результат, и точнее можно востановить оригинальную функцию из производной. Более точное определение оригинальной функции даст возможность более точно предсказывать поведение системы когда будет набрана статистика. НО за все нужно платить, вам нужно найти баланс избыточности и скорости обработки. что бы не пропустить момент underC"... если боевое дежурство приведо к последствиям, во избежание которых оно назначено..." А то иногда бывает, что за деревьями леса не видно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 11:54 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
underCМожет в этом и есть сермяжная правда. Но ведь таким образом ты меня подталкиваешь к написанию собственного API, а это не есть гуд. Сырые данные с датчиков... гальванические развязки, калибровки, шумы... Ты это все серьезно? Какие развязки, какие калибровки, какое, нафиг, собственное API? Я тебе предлагаю разобраться с тем, что в твоей системе на входе. Чтобы точнее определить технические требования. И тем самым расширить диапазон возможных решений. Но, конечно, раз уж ты решил удариться в экстремизм, то нету у тебя другого выбора кроме как сканировать весь твой массив раз за разом. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 11:57 |
|
||
|
Поиск Min-Max в стеке FIFO
|
|||
|---|---|---|---|
|
#18+
Anatoly MoskovskyVladimir Baskakov почему сишный код из под GCC 3-4-5 работает медленнее джавского (6)? почему миллион циклов по 10000 сравнений выполняется 43522 условных милисекунды? не расстроен - удивлен.... А шо ж вы в джаве не сделали миллион циклов по 10000, а всего 1. Сделайте - тогда будете расстроены Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. ну не миллион. ну ну один меньше. или я что-то путаю(((( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.04.2013, 11:58 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=38237212&tid=2019267]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 10ms |
| total: | 153ms |

| 0 / 0 |
