Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Наши скрипты > Кто раньше?


Автор: YahоО 14.12.2023, 17:54
То ли в javascript, то ли в php, и т.д.:
Имеется некоторая функция выполнение которой длится предположим несколько секунд.
Также имеется еще одна функция - альтернативная версия первой функции, выполняющая то же самое, но работающая то ли быстрее то ли медленнее первой функции, причем когда как, время всегда разное и может отличаться в разы, и заранее определить приоритет первой или второй функции невозможно.
Какую из них использовать чтобы результат появился быстрее?
Асинхронность, сигналы, это решение? А процессор выполняет вместо одной функции уже две и оттого эффект времени может быть получен еще хуже?
Значит наугад выбрать что то одно, то ли первую то ли вторую функцию, но будет ли это оптимальным и универсальным? Есть иные варианты?

Автор: bars80080 16.12.2023, 21:52
по такой постановке вопроса - раз заранее определить какая будет быстрее невозможно, то выбирай всегда первую. с вероятностью 50% будешь в выигрыше

иной вариант - описать реальную задачу, а не сферического коня в вакууме.

Автор: YahоО 17.12.2023, 18:33
Задача, (из случайных) найти пару простых чисел удовлетворяющих определенным требованиям,
при малых числах задача решаема за 0 сек,
но чем больше (длиннее) числа тем больше требуется времени, причем время на выработку решения всегда разное, и это понятно, дело случая.
bars80080, ...?
(ходи конем)

Автор: bars80080 30.12.2023, 23:32
Цитата(YahоО @  17.12.2023,  18:33 Найти цитируемый пост)
удовлетворяющих определенным требованиям

эти требования определяют алгоритм.
проблема в том, что алгоритм видимо слишком тяжёлый при большой величине чисел и потому выполняется долго.
отсюда вывод: найти другой алгоритм, который будет легче и потому выполняться быстрее. это могут быть как упрощённые исходные требования, так и совсем иные требования, которые имеют более-менее точную корреляцию исходным точным вариантом.
таким образом, будет получен механизм работающий быстро, но не всегда точно. в зависимости от выбранного решения точность будет более или менее.

если же обязательно сохранить анализ в исходных требованиях и нет возможности заменить таким же точным, но более быстрым алгоритмом, то задачу можно решить только повышая вычислительные мощности - за счёт ресурсов. повышение скорости, распараллеливание, разбиение задачи на части и тому подобное

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)