powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / Отправить задание c++ серверу
25 сообщений из 98, страница 2 из 4
Отправить задание c++ серверу
    #40033036
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Я еще не встречал компилятор, разворачивающий switch в таблицу и бинарный поиск, а не тупой последовательный перебор. Пример в студию (код, компилятор, опции запуска, ассемблерный файл).
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033047
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128Я еще не встречал компилятор, разворачивающий switch в таблицу и бинарный поиск,

Поищи, это недавно обсуждалось. Почти все они разворачивают switch в таблицу переходов.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033048
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128
Dimitry Sibiryakov,

Я еще не встречал компилятор, разворачивающий switch в таблицу и бинарный поиск, а не тупой последовательный перебор. Пример в студию (код, компилятор, опции запуска, ассемблерный файл).

17647333
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033074
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

ptr128таблицу и бинарный поиск ,

таблицу переходов .

Разницы не замечаете?
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033075
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T,

Не вижу бинарного поиска в упор.
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033078
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128
Dima T,

Не вижу бинарного поиска в упор.

Его там нет и не надо.

PS О чем спор? Топик лень читать, цитируйте качественнее.
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033079
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T
ptr128
Dimitry Sibiryakov,

Я еще не встречал компилятор, разворачивающий switch в таблицу и бинарный поиск , а не тупой последовательный перебор. Пример в студию (код, компилятор, опции запуска, ассемблерный файл).

17647333

В Вашем примере бинарного поиска не вижу в упор.

P.S. Читать надо сообщение, на которое отвечаете )))
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033083
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128В Вашем примере бинарного поиска не вижу в упор.

А ты настаиваешь, что O(1) надо таки заменить на O(log2(N))?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033087
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
я настаиваю, что, например, при реализации приема команд на AVR по протоколу NEC (8 бит на устройство и 8 бит на команду), перебирать несколько сот кодов последовательно - недопустимая роскошь. Например, восемь устройств по 32 команды. Для 8-битного процессора разница между между 128 и 9 (на порядок!) обращениям к таблице во флеш памяти - грандиозная.

Просто у Вас убогий и совершенно не имеющий практического применения пример. Я же привел пример и собственного опыта. Естественно, редко когда коды команд закодированы последовательно. И тем более нумерация устройств )))
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033088
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128Для 8-битного процессора разница между между 128 и 9 (на порядок!) обращениям к таблице во
флеш памяти - грандиозная.

А что, кто-то запрещает if-ы организовать в дерево, а не цепочку?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033089
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

никто ничего не запрещает, но код двоичного поиска на порядок меньше занимает места во флеше и на порядок быстрее )))
Когда у Вас 32 килобайта флеша это может влиять вообще на возможность реализации требуемой функциональности на данном МК.
Разбаловались гигабайтами и гигагерцами? )))

Я уже молчу о случае, когда у Вас Padаuk типа PFS154 всего с двумя килословами на борту и 128 байтами оперативки )))
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033090
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какое отношение всё это имеет к топикстартеру?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033091
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ъъъъъ
ptr128
пропущено...

А табличный метод отменили уже что-ли?

Делаем табличку в памяти (массив структур) состоящую из отсортированных идентификаторов запроса и указателя на функцию, этот запрос обрабатывающую. Тупым бинарным поиском ищем принятый идентификатор в таблице. Если не найден - ошибка. Если найден - вызываем функцию, обрабатывающий запрос с таким идентификатором передавая ей все остальные параметры запроса.

Делаем табличку в памяти, состояющую из указателей на реализации методов.
В запросе передаем индекс метода, вместо его имени.
Сервер обращается к методу по индексу. Далее метод выполняет специфичный для него код (например, выбирает из тела запроса значения входных параметров метода и т.п.).

зачем так всё усложнять то?
в простейшем случае (вот как этот) во входящем запросе будет только цифра (код) команды
а это обычный вектор.
про http-роутинг речи же не идёт
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033092
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

прямое.

Во-первых, в приведенном мной примере и был сделан аналогичный сервер на AVR. Не вижу принципиальной разницы в том, что у меня коммуникация по SPI.
Во-вторых, даже на гигабайтах и гигагерцах, при яро пропагандируемом Вами подходе, и получаются монстры требующие по 2ГБ свободной оперативки только для запуска и поедающие до 50% ресурсов многоядерных CPU.

Надеяться на оптимизацию компилятором можно только в том случае, когда точно знаешь ее возможности и ограничения, а так же давно привык анализировать ее результат по ассемблерному листингу. В противном случае, рекомендуется включать голову и использовать оптимизированные алгоритмы, которые преподают сейчас даже в школе на уроках информатики )))
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033093
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128Не вижу принципиальной разницы в том, что у меня коммуникация по SPI.

Дело не в технологиях, а в том, что ТС - чайник, для которого простота и понятность кода
важнее его эффективности. Поэтому преждевременную оптимизацию - отставить!
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033095
tip78
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128
Во-вторых, даже на гигабайтах и гигагерцах, при яро пропагандируемом Вами подходе, и получаются монстры требующие по 2ГБ свободной оперативки только для запуска и поедающие до 50% ресурсов многоядерных CPU.

если сделать на if-ах, то будет 2гб и 50% ?
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033096
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

если чайника-бетонщика учить так, чтобы ему было проще и понятно, то тогда не надо ему штыковать и обрабатывать вибратором бетон при заливке фундамента? Просто залить его на порядок больше, чтобы скомпенсировать отсутствие "оптимизации" объемом? Сами в доме на таком фундаменте захотели бы жить? А программиста так обучать не то что можно, а по Вашим словам - НУЖНО! )))

Что интересно - не от Вас одного слышу такой подход. То есть строителей, врачей, слесарей, сварщиков, автомехаников - так учить недопустимо. Потому что там без "оптимизации" дом рухнет, больной успеет умереть, кран протечет, газопровод прорвет, водитель в ДТП убьется. А программистов - нужно. Комп все стерпит )))

Помнится, именно из-за проблем с отсутствием оптимизации кода пришлось отменить несколько сотен рейсов из аэропорта Хитроу, хотя на тестировании система успешно справлялась с задачей. Но упала под реальной нагрузкой.
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033097
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tip78
если сделать на if-ах, то будет 2гб и 50% ?

Да, если нет никаких следов алгоритмической оптимизации в тысячах методах конкретного программного продукта.

P.S. Вроде бы сайт называется sql.ru. То бишь, люди здесь должны понимать, что подобный код в какой-то CLR может вызываться миллиард раз на одном сервере в одном SQL запросе. Но все равно в лом оптимизировать алгоритм (((
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033101
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128,

Объем не поможет. Он не работает на растяжение и сжатие. Армирование работает.
И рассчитывает монолит инженер, а рабочий выполняет инструкции.
Так и прогеры. Они давно разделились.
Оптимизация не всегда нужна.
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033103
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128,
На sql берут целиком http server. Он уже оптимизирован и протестирован.
Код: java
1.
2.
3.
4.
5.
doGet() {
      Строка урл = httpserver.дайПараметрыИзУрл();
         ....
       httpserver.отправитьОтвет(http.OK);
}
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033104
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033105
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp,

про бетон я в курсе. Оттуда и смайлики, и вопрос о желании жить в таком доме.
И то что оптимизация не всегда нужна тоже в курсе.

Лично меня жизнь болезненными пинками научила оптимизировать код. Сын учится в Бауманке и там студентов заставляют считать, насколько их код оптимален. И от этой оптимальности может зависеть оценка. Что, по моему, правильно. Потому что лучше при обучении заставлять писать оптимально всегда, даже если это не существенно, чем когда слышишь от молодого специалиста: "И так нормально! Я проверял, запрос за секунды выполняется."
И задолбаешся вбивать этому специалисту в голову, что он за секунды выполняется в среде разработки, а на продуктиве через год это может вылиться в десятки минут, негатив от заказчика и ударную оптимизацию в новогодние праздники в честь закрытия года (было и такое).
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033107
Фотография ptr128
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
ptr128,
На sql берут целиком http server.

Ой, спасибо. Промышленный заказчик бы и цента не заплатил, если бы Вы предложили бы ему данные через http гонять по RS-485 )))
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033108
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128,
Странный вы.
Время отклика пишется в ТЗ.
Если заказчика устраивает цифра 100-400 мс, то вполне.
А на sql.ru сколько? Или вы интернетом не пользуетесь?)))
))))
...
Рейтинг: 0 / 0
Отправить задание c++ серверу
    #40033109
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ptr128,

И что такое слово "промышленный" заказчик?
Это в литейном цеху?
...
Рейтинг: 0 / 0
25 сообщений из 98, страница 2 из 4
Форумы / C++ [игнор отключен] [закрыт для гостей] / Отправить задание c++ серверу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]