|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.09.2018, 15:04 | #1 |
gamer
Участник клуба
Регистрация: 09.05.2015
Сообщений: 1,550
|
Shift time
Написал новую программу и... о, тормоз! Она работает минут 5!
Подскажите, как её оптимизировать. Язык Visual Basic 5.0. Операционная система Windows 95. Процессор Celeron 333. Логика вся правильная, проверял. Для моего случая подходит. Во вложении все файлы есть. Код:
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/ В ожидании Кеши... |
07.09.2018, 15:33 | #2 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
А вы как хотели, используя самый неоптимальный алгоритм?.. Начните с построчного анализа.
|
07.09.2018, 19:55 | #3 |
gamer
Участник клуба
Регистрация: 09.05.2015
Сообщений: 1,550
|
Самый первый попавшийся. Который работает. Берёшь и делаешь.
Тут ещё непонятно, в какой части алгоритма тормоза. В той, где идёт расчёт, или там, где идёт "отбор кандидатов на расчёт". Может быть и то, и то. Жутко разочаровал этот язык. На языке C всё исполнилось бы за считанные секунды. И не пришлось бы голову ломать. Пожалуй, брошу-ка я эту задачу. Перейду к другим, где нет массивной обработки данных. Не факт, что такие опять попадутся.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/ В ожидании Кеши... |
08.09.2018, 07:46 | #4 |
Участник клуба
Регистрация: 17.05.2011
Сообщений: 1,660
|
Переписал на другой Basic. Время выполнения 0.05 Секунды.
|
08.09.2018, 12:04 | #5 |
gamer
Участник клуба
Регистрация: 09.05.2015
Сообщений: 1,550
|
Спасибо за труды. Все ваши файлы отправлены в антивирусный центр на проверку.
Но у меня мой *.exe-файл всё равно не запускается. Потому что он создавался для Windows 95, а тут я использую Windows Vista. Вот что он пишет: - не найден файл "msvbvm50.dll", так как в данной версии Windows он не содержится - Когда я говорил, что время работы 5 минут - это на процессоре Celeron 333. Здесь у меня Pentium 1800, и мне удалось его запустить, но не под Windows Vista, а под Windows XP. Время работы примерно 10-20-30 секунд, точно не помню. Почему я вообще взялся переписать программу - сейчас я использую "Time shift", написанную на Visual C 9 (консольное приложение), оно мне то же самое делает за 1 секунду. Вот только там время можно смещать лишь на целое число секунд, так как программа делалась очень давно. Это не совсем удобно.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/ В ожидании Кеши... |
08.09.2018, 12:07 | #6 |
gamer
Участник клуба
Регистрация: 09.05.2015
Сообщений: 1,550
|
Я решил отложить решение задачи, потому что ждать столько времени на конвертацию мне не хочется, даже если бы программа работала на этом компьютере. А сейчас я занимаюсь "Visual Basic 5", эту задачу взялся делать лишь мимоходом, там ещё много чего есть, что можно сделать.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/ В ожидании Кеши... |
08.09.2018, 12:13 | #7 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Вы хотите в программировании разобраться или по форумам поныть? Зачем вы убегаете от простейших трудностей? Тем более вам указали проблемы и первые шаги в решении?
|
08.09.2018, 14:30 | #8 |
gamer
Участник клуба
Регистрация: 09.05.2015
Сообщений: 1,550
|
А зачем разбираться с трудностями, когда ясно одно: виноват язык программирования; и чтобы решить задачу, его надо менять. Но я пока остаюсь с языком программирования, потому что там есть другие задачи, другие книги. Не собираюсь останавливаться на достигнутом.
Программа работает долго из-за автоматического преобразования типов в языке. Фиксить это не собираюсь. Это задумка авторов языка. Кстати, что вы имели ввиду, говоря "построчный анализ"? Построчный анализ самой программы, или же выполнить построчный анализ исходных данных, составив другой алгоритм? Что касается самой программы, то я сочинял так, чтобы было покороче и работало. Я новичок в этом языке, а толковых мануалов не брал. У меня книжка, где есть кое-что, но не всё. И ещё Help помогает.
мой канал на Ютубе: youtube.com/@games-zz3ju/videos/
мой канал на Рутубе: rutube.ru/channel/31423139/videos/ В ожидании Кеши... Последний раз редактировалось jura_k; 08.09.2018 в 14:36. |
08.09.2018, 15:43 | #9 |
Участник клуба
Регистрация: 17.05.2011
Сообщений: 1,660
|
Да не в языке дело, а в алгоритме. Нерационально.
Было бы гораздо короче и рациональней открыть нужный файл на чтение, не ползать Mid ом по всему тексту, а только в тех местах, где это необходимо, сделать отделенную функцию преобразования цифр, и естественно, запись в новый файл изменённых данных. Я так понимаю, как работать с файлами в VB5 вы так и не поняли? Считать файл в строковую переменную: Код:
Код:
Код:
Do Until EOF(MyFile) Не смешите мои тапки, на вашем W95 даже нормальный вирус уже не станет работать, уже ни кто не помнит, как для такого утиля можно написать что то разрушительное - эта система сама без вируса работает через раз. Чего вы боитесь? |
08.09.2018, 16:27 | #10 |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,759
|
Я же вроде весь пост про алгоритм писал тогда... Вы не знаете формата srt? В нем нет смысла в 2/3 строк искать ваши метки времени, а уж тем более гонять весь текст сдвигая по 1 символу.
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Pitch Shift | vovken1997 | Общие вопросы Delphi | 1 | 05.07.2012 20:02 |
Реакция на Shift | a_n_n_a | Общие вопросы Delphi | 3 | 22.06.2011 13:36 |
Shift | _-Re@l-_ | Общие вопросы Delphi | 11 | 24.05.2010 21:52 |