|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Результаты опроса: Аналогичный расчёт, написанный в Вашей любимой среде разработки, быстрее (как думаете?)? | |||
Не знаю — не пробовал(а). | 1 | 25.00% | |
Скорее да. | 3 | 75.00% | |
Скорее нет. | 0 | 0% | |
Моя среда — VBE, так что ни быстрее и ни медленнее! | 0 | 0% | |
Голосовавшие: 4. Вы ещё не голосовали в этом опросе |
|
|
Опции темы | Поиск в этой теме |
15.11.2009, 02:09 | #1 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Быстродействие VBA
В книге «VBA для „чайников”» сказано (шутя) о быстродействии Power Basic.
В связи с этим, а также преждевременной кончиной темы, прилагаю программу, запускаемую по Alt-s. Впрочем, вступление писано в спешке, но кто интересутся — тот не зря потратит время.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 15.11.2009 в 02:18. |
15.11.2009, 07:31 | #2 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Нужно попробовать.
Лучше день потерять — потом за пять минут долететь!©
|
15.11.2009, 13:19 | #3 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Под Windows XP для чисел до 500 000 000 моя программа находит все 3484 простых числа (вида АБВ *** ВБА — то есть симметричных), и делает она это за 115 секунд при частоте процессора 2,4 ГГц (что важно: при 0,2 ГГц — тот же расчёт идёт минут 40). При всём при этом за секунду анализируется (на их простоту) около 5 млн (4371584 по счётчику) чисел.
Для чисел включительно до 200 000 000 время 42 секунды. До 1 млн — меньше секунды. Вот «переиспытал» на пределе 500 миллионов — отключив в документе автоматическую и контекстную проверку орфографии: 5,1 млн номеров в секунду и соответственно 98 секунд работы, вместе с печатью (в файл). Преобразование в таблицу полученных 3484 строк заняло ещё секунд 6.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 16.11.2009 в 12:14. Причина: уборка лишнего, добавка нужного! |
18.11.2009, 23:59 | #4 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Добавил шестнадцатеричный и четверичный (запуск по альт-шифт-S) вид. Кстати, опрос ещё открыт!
Убоявшимся лезть внутрь — вот замечательный фрагмент (система счисления на выбор!). За English не ручаюсь. Код:
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 19.11.2009 в 17:49. Причина: предложение. |
19.11.2009, 23:01 | #5 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Get it!
Да... Четверичный вид раз в 15 замедлил подсчёт.
На отрезке до 510 млн 3647 Hex-перевёртышей (из имеющихся 26 854 252 простых чисел) моя программа нашла за 32 мин (точнее, 1914 с). При том что было отключено автосохранение и проверка орфографии, а также аваст. Док с листингом прилагаю. (Листинг в смысле «список».) Ну какой язык то же самое (в пяти системах счисления) даёт минут за 5 хотя бы?
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 20.11.2009 в 04:47. Причина: 3647 + исправленный архив. |
22.11.2009, 16:30 | #6 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Но в том и прелесть алгоритма, что не надо хранить архивы.
Как обнаружил Тоха с киберфорума, 2 число простое! Ниже я это учёл.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 23.11.2009 в 05:11. Причина: проба подписи. |
18.08.2010, 07:59 | #7 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
Быстродействие в действии. Умном
Более удачным полигоном оказалась тема от Simbad 8 марта 2010:
http://programmersforum.ru/showthread.php?p=473254 И вообще гости как-то активнее, да? 2 месяца не отставал; заодно и русский подтянул (что нам студентам как бы и не к лицу)! И даже 1 реферал имеет... а я так и не понял, где их брать.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 18.08.2010 в 08:02. |
18.08.2010, 14:25 | #8 |
Форумчанин
Регистрация: 24.03.2010
Сообщений: 349
|
Небольшое (порядка 5%) ускорение без изменения алгоритма:
Код:
Нет нерешаемых задач - есть недостаток времени и данных!
|
18.08.2010, 16:43 | #9 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
5% хорошо! 3 секунды за минуту. Но на 3 порядка... я был поражён.
5%, видимо, даёт однократное (а не в каждом цикле) вычисление корня?
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
|
19.08.2010, 09:58 | #10 |
Форумчанин
Регистрация: 24.03.2010
Сообщений: 349
|
Не только.
Замена цикла Do...Loop на For...Next, тоже даёт некоторый прирост (2-3%). Суди сам, операции: Код:
Код:
Нет нерешаемых задач - есть недостаток времени и данных!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
быстродействие Access по сети | Tatu | Microsoft Office Access | 2 | 20.10.2009 13:48 |
VBA 6.0 | Maxs | Софт | 6 | 22.05.2009 15:40 |
VBA | LLIypLLIyH | Помощь студентам | 2 | 27.10.2008 07:59 |