|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
22.06.2024, 22:50 | #11 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 653
|
Вроде как работает.
Код:
Остаётся понять, оптимален ли этот код? |
23.06.2024, 00:26 | #12 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
|
23.06.2024, 15:23 | #13 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 653
|
Что будет быстрее работать? Мой алгоритм, или
Код:
|
24.06.2024, 21:41 | #14 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,834
|
сделай цикл в миллион шагов и пусть считает корни от 1 до миллиона или все одинаковые бери. засеки время по таймеру.
потом trunc(sqrt(x)) в цикл запихни тот же и снова время засекай. так в сравнительном анализе и узнаешь, что быстрее.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
24.06.2024, 23:52 | #15 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 653
|
Пришлось даже 100 миллионов раз выполнить каждую функцию, чтобы был нормальный результат
И да - моя алгоритм сработал почти в 2 раза быстрее |
25.06.2024, 00:16 | #16 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 653
|
Сделал больше тестов. И вот что заметил: если число меньше 2^32 - то быстрее работает мой алгоритм
А если больше - то уже быстрее trunc(sqrt) Но правда я код который выше еще модернизировал как раз на то чтобы было меньше итераций если число небольшое |
25.06.2024, 01:28 | #17 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,894
|
|
25.06.2024, 13:29 | #18 |
Форумчанин
Регистрация: 10.02.2021
Сообщений: 653
|
Моя функция Sqrt64 подгружается с юнита. А вот код тестирования
Суммирование корней я сделал потому что не знаю как именно работает оптимизация кода компилятором, потому сделал так чтобы эти данные использовались куда-то - следовательно точно не сокращались при оптимизации. Так же, Int64 не хотел использоваться как счётчик цикла, потому пришлось его "вручную" прибавлять Итог (на картинке): с числами до 2^32 мой код работает быстрее, а вот с числами после 2^32 - медленнее Код:
|
26.06.2024, 19:52 | #19 |
Участник клуба
Регистрация: 03.06.2009
Сообщений: 1,834
|
теперь запили отдельную библиотеку *.pas и скинь всем в тему. пусть используют, кто занимается расчётами.
и кстати, эту строки b:=b+k; тоже можно сделать через inc() - быстрее будет, там надо через запятую параметр k написать.
Программирование - это единственный способ заставить компьютер делать то, что тебе хочется, а не то, что приходится.
|
26.06.2024, 23:05 | #20 |
Старожил
Регистрация: 04.02.2011
Сообщений: 4,620
|
Не думаю, что компилятор делает различие между двумя описаниями одного и того же действия. Анализировать сгенерированный код лень, конечно. По логике, там даже не будет вызова процедуры, а in-line вставка. Да и от версии компилятора зависит, видимо.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Необходимо написать "таймер", который будет запускаться при нажатии кнопки "Start", приостанавливаться на "Pause", и сбрасываться на "Reset" | billiejean78 | JavaScript, Ajax | 1 | 03.09.2021 08:58 |
Убрать папки "Pictures", "Music", "Видео", "Downloads" из "МОЙ КОМПЬЮТЕР" | Бахтиёр1916 | Windows | 1 | 05.04.2017 12:53 |
Нужно пояснить/прокомментировать код программы, или коды функций "Добавить" "Удалить" "Обновить(редактировать" "Поиск" "Период") | ZIRASS | PHP | 4 | 15.06.2016 14:23 |
Вычисление квадратного корня вручную | 6AZblJlb | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 8 | 16.11.2011 04:02 |
Как "натянуть" сайт написанный вручную на CMS ? | zlo_999 | HTML и CSS | 3 | 01.02.2011 09:57 |