Автор | Сообщение |
|
| |
Пост N: 7866
Зарегистрирован: 17.05.05
|
|
Отправлено: 28.11.23 19:18. Заголовок: Копирование открытых баз данных
Имею непонятку. Cтал в последнее время замечать что скорость копирования базы а она на данный момент весит 10 гиг , стало занимать до ~15 минут , хотя пару недель назад это время было всего ~32 секунды. Провел эксперимент , в базах ни кого нет , время копирования базы заняло ~32 секунды , зашел в прогу и перешел в раздел где открывается много баз и снова запустил копирование , цирк ...время заняло ~ 33 секунды и ни какими минутами и не пахнет. Копирую базы так FOR EACH aFile IN aDir hb_DynCall({ "CopyFileA", "kernel32.dll", HB_DYN_CALLCONV_STDCALL },pathbase+"dbf\"+afile[1],pathbase+"zip\"+afile[1],0) hb_releaseCPU() Next Винт SSD и ему почти 2 года. Не пойму куда копать ....есть какие мысли у кого ?
|
|
|
Ответов - 84
, стр:
1
2
3
4
5
All
[только новые]
|
|
|
| |
Пост N: 7876
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.23 19:17. Заголовок: SergKis Тут не стол..
SergKis Тут не столько борьба за скорость , хотя она тоже важна , тут битва идёт уже что бы время не расло всё время. Если задачу не перезапускать то в какой то момент через ..надцать дней скажем , копирование может занять 1 час или типа того.
|
|
|
|
| постоянный участник
|
Пост N: 4464
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.11.23 19:24. Заголовок: Dima пишет Если зада..
Dima пишет цитата: | Если задачу не перезапускать то в какой то момент через ..надцать дней скажем |
| Вынь из задачи, помести в фоновый поток, например на планировщик запуск, твоего же exe с параметром только для выполнения копии, или твоя задача по timer запускает себя с параметром для вып. копии
|
|
|
|
| |
Пост N: 7877
Зарегистрирован: 17.05.05
|
|
Отправлено: 30.11.23 19:29. Заголовок: Нет , планировщик не..
Нет , планировщик не использую а вот сам процесс копирования действительно можно вынести в отдельный EXE и из потока его запускать. Должно помочь думается в плане времени копирования , так как первый раз всегда отрабатывает быстро
|
|
|
|
| постоянный участник
|
Пост N: 4465
Зарегистрирован: 17.02.12
|
|
Отправлено: 30.11.23 19:32. Заголовок: Ты можешь не выносит..
Ты можешь не выносить из exe (там у тебя все определено и отлажено и есть вызов), сделай параметр входа для копирования и запускай тот же exe с этим параметром. Зачем лишние exe плодить ? Не всегда это оправдано
|
|
|
|
| Администратор
|
Пост N: 4140
Зарегистрирован: 23.05.05
|
|
Отправлено: 30.11.23 22:20. Заголовок: Dima пишет: Оказало..
Dima пишет: цитата: | Оказалось что нет , мало замеров на тот момент сделал. Сравнил по скорости win_CopyFile и HB_VFCOPYFILE. В цикле от 1 до 3 копирую файлик на 2 гига win_CopyFile время 36.62 53.17 48.71 HB_VFCOPYFILE 41.62 43.62 40.51 |
| win_CopyFile - это просто обертка для winapi-шной CopyFile. Как она работает, что там внутри делается - неизвестно. HB_VFCOPYFILE - там все прозрачно, исходный файл читается последовательно в буфер размером 64k, и этот буфер пишется в результирующий файл. Понятно, что windows еще сама как-то буферизирует эти операции чтения - записи. Для огромных файлов буфер 64k явно маловат. Можно сделать свой аналог, в котором задавать размер буфера
|
|
|
|
| Администратор
|
Пост N: 4141
Зарегистрирован: 23.05.05
|
|
Отправлено: 01.12.23 09:48. Заголовок: Dima пишет: SergKis..
Dima пишет: цитата: | SergKis Тут не столько борьба за скорость , хотя она тоже важна , тут битва идёт уже что бы время не расло всё время. Если задачу не перезапускать то в какой то момент через ..надцать дней скажем , копирование может занять 1 час или типа того. |
| Так нет чистого времени копирования, слишком много факторов влияют на время в каждом случае. Скажем, в это время качается обновление винды, диск занят и на другие операции, время скакнет. Или антивирус вздумает запустить проверку, и дергает тот же диск. А таких или может быть сколько угодно. Важно удостовериться, что у тебя все организовано без дырок, и более-менее оптимально
|
|
|
|
| постоянный участник
|
Пост N: 1694
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.12.23 10:51. Заголовок: Разрешите вставить с..
Разрешите вставить свои 5 копеек) Вот, если речь идет о бэкапе, то, имхо, тут лучше использовать сторонние средства. Я пользуюсь Cobian Backup. Отличная штука. Она использует механизм теневых копий, так что может копировать открытые в других программах файлы. Весьма удобна.
|
|
|
|
| |
Пост N: 7878
Зарегистрирован: 17.05.05
|
|
Отправлено: 01.12.23 18:29. Заголовок: PSP пишет: Cobian B..
PSP пишет: Интересная тулза и главное бесплатно
|
|
|
|
| постоянный участник
|
Пост N: 1695
Зарегистрирован: 27.01.07
|
|
Отправлено: 01.12.23 18:33. Заголовок: Она работает чётко. ..
Она работает чётко. Много лет ей пользуюсь)
|
|
|
|
| |
Пост N: 7879
Зарегистрирован: 17.05.05
|
|
Отправлено: 02.12.23 18:24. Заголовок: Pasha пишет: Так не..
Pasha пишет: цитата: | Так нет чистого времени копирования, слишком много факторов влияют на время в каждом случае. Скажем, в это время качается обновление винды, диск занят и на другие операции, время скакнет. Или антивирус вздумает запустить проверку, и дергает тот же диск. А таких или может быть сколько угодно. Важно удостовериться, что у тебя все организовано без дырок, и более-менее оптимально |
| Ну как бы согласен теоретически ...., не поленился и поставил эксперимент , запустил приложение которое в том числе выполняет и копирование базы данных (в сети была куча юзеров) , отработало копирование , вышел из задачи и так 10 раз подряд Время копирования 15-16 секунд а вот если не выгружать и дать ему работать и каждый час копировать то статистика в секундах следующая. Время копирования : 16.46 //1 запуск Время копирования : 36.50 Время копирования : 58.74 Время копирования : 74.52 Время копирования : 96.05 Время копирования : 116.97 Время копирования : 133.02 Время копирования : 158.03 Время копирования : 176.51 Время копирования : 204.95 Время копирования : 218.67 Время копирования : 239.52 Время копирования : 259.55 Время копирования : 281.21 Время копирования : 296.34
|
|
|
|
| |
Пост N: 7880
Зарегистрирован: 17.05.05
|
|
Отправлено: 03.12.23 19:40. Заголовок: Проблему решил косты..
Проблему решил костылём. Если время копирования базы превышает N секунд , убиваю поток и заново его запускаю. Работает однако. PS Почему росло время хз.
|
|
|
|
|
| постоянный участник
|
Пост N: 1696
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.23 15:29. Заголовок: В плане бреда... А ч..
В плане бреда... А что, если дескрипторы файла "zip\..." остаются открытыми после копирования и со временем их становится много, как будто файл открыт из разных программ, а? Тут возникаю вопросы с блокировками, кэшированием и т.д.
|
|
|
|
| постоянный участник
|
Пост N: 1697
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.23 15:35. Заголовок: Вот нечто https://ww..
|
|
|
|
| |
Пост N: 7881
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 15:35. Заголовок: PSP Фиг его знает ,..
PSP Фиг его знает , я тестил все возможные функции по копированию и всегда растет время , остановился на CopyFileA потому что самая быстрая.
|
|
|
|
| |
Пост N: 7882
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 15:37. Заголовок: PSP пишет: Вот нечт..
PSP пишет: писец у нас это сайт заблочен ....придется юзать тор браузер
|
|
|
|
| постоянный участник
|
Пост N: 1698
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.23 15:41. Заголовок: А ты вот попробуй пе..
А ты вот попробуй перед копированием файл назначения переименовать, а после успешного копирования старый удаляй.
|
|
|
|
| |
Пост N: 7883
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 15:56. Заголовок: PSP пишет: А ты вот..
PSP пишет: цитата: | А ты вот попробуй перед копированием файл назначения переименовать |
| чёт я не очень понял как переименовать то чего еще нет , так как операция копирования еще не происходила ?
|
|
|
|
| постоянный участник
|
Пост N: 1699
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.23 15:56. Заголовок: Dima пишет: чёт я н..
Dima пишет: цитата: | чёт я не очень понял как переименовать то чего еще нет , так как операция копирования еще не происходила ? |
| А destination каждый раз новый создается? Или перезаписывается?
|
|
|
|
| |
Пост N: 7884
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 16:01. Заголовок: схема такая копирую ..
схема такая копирую файлы базы данных в пустую папку затем все скопированные файлы ZIPую , копирую архив на диск где живут бекапы папку куда копировал файлы базы полностью очищаю
|
|
|
|
| постоянный участник
|
Пост N: 1700
Зарегистрирован: 27.01.07
|
|
Отправлено: 04.12.23 16:02. Заголовок: Ясно, но ясности это..
Ясно, но ясности это не добавило
|
|
|
Ответов - 84
, стр:
1
2
3
4
5
All
[только новые]
|
|