Автор | Сообщение |
|
| |
Пост 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: 7885
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 16:05. Заголовок: PSP пишет: Вот нечт..
PSP пишет: Почитал....хммм
|
|
|
|
| |
Пост N: 7886
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 17:41. Заголовок: Потестю ка у клиента..
Потестю ка у клиента еще раз но уже с Hb_fcopy
|
|
|
|
| |
Пост N: 7887
Зарегистрирован: 17.05.05
|
|
Отправлено: 04.12.23 22:09. Заголовок: Да с Hb_fcopy время ..
Да с Hb_fcopy время тоже растет при каждом цикле копирования. Файлы под 2 гига , но не все. Погуглил , проблема таки есть по любому , когда поток + копирование в цикле + большие файлы. Полагаю что то нужно добавить в цикл , вот только что , хз. Поэтому пока буду юзать костыль с перезапуском потока , реально работает. Паше. Странно не замечать проблемы и косить на другие происходящие процессы , аргументы выше и статистику я приводил.
|
|
|
|
| |
Пост N: 7890
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.12.23 18:12. Заголовок: Паша а не сложно теб..
Паша а не сложно тебе сделать обертку для CopyFileExA что бы можно было его запускать с флагом COPY_FILE_NO_BUFFERING , хочу с ней поиграться и посмотреть на результат.
|
|
|
|
| |
Пост N: 7891
Зарегистрирован: 17.05.05
|
|
Отправлено: 06.12.23 18:27. Заголовок: и вот такую SHFileOp..
и вот такую SHFileOperationA
|
|
|
|
| |
Пост N: 7893
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.12.23 19:19. Заголовок: Pasha Поможешь с во..
Pasha Поможешь с вопросом ?
|
|
|
|
| moderator
|
Пост N: 2228
Зарегистрирован: 11.02.10
|
|
Отправлено: 07.12.23 20:14. Заголовок: Dima пишет: вот та..
Dima пишет: цитата: | вот такую SHFileOperationA |
| Дима! Попробуй эту функцию из библиотеки hbwin: цитата: | win_SHFileOperation( [<hWnd>], [<nFunction>], [<cFrom>|<aFrom>], [<cTo>|<aTo>], [<nFlags>], [<@lAnyOperationAborted>], [<aNameMappings>], [<cProgressTitle>] ) -> <nResult> |
| Контрольный пример из поставки Харбора: Скрытый текст
/* * * Copyright 2010 Viktor Szakats (vszakats.net/harbour) * */ #require "hbwin" #include "simpleio.ch" PROCEDURE Main() LOCAL a LOCAL lAbort LOCAL tmp ? "0x" + hb_NumToHex( win_SHFileOperation( NIL, WIN_FO_COPY, { __FILE__, "olesrv1.prg" }, { "testcopy1" }, ; NIL, @lAbort, ; NIL, "Harbour SHFile 1" ) ) ? lAbort hb_MemoWrit( "rename.txt", "hello1" ) hb_MemoWrit( "rename1.txt", "hello2" ) a := {} ? "0x" + hb_NumToHex( win_SHFileOperation( NIL, WIN_FO_RENAME, { "rename.txt" }, { "rename1.txt" }, ; WIN_FOF_WANTMAPPINGHANDLE, @lAbort, ; a, "Harbour SHFile 2" ) ) ? lAbort FOR EACH tmp IN a ? tmp[ 1 ], tmp[ 2 ] FErase( tmp[ 1 ] ) FErase( tmp[ 2 ] ) NEXT FErase( "rename1.txt" ) ? "0x" + hb_NumToHex( win_SHFileOperation( NIL, WIN_FO_COPY, __FILE__ + Chr( 0 ) + "olesrv1.prg" + Chr( 0 ), "testcopy2", ; NIL, @lAbort, ; NIL, "Harbour SHFile 3" ) ) ? lAbort RETURN
|
|
|
|
|
| |
Пост N: 7894
Зарегистрирован: 17.05.05
|
|
Отправлено: 07.12.23 20:48. Заголовок: gfilatov2002 пишет: ..
gfilatov2002 пишет: цитата: | Попробуй эту функцию из библиотеки hbwin: |
| Спасибо , потестю , отпишу !
|
|
|
|
| Администратор
|
Пост N: 4143
Зарегистрирован: 23.05.05
|
|
Отправлено: 08.12.23 15:12. Заголовок: #define COPY_FILE_NO..
#define COPY_FILE_NO_BUFFERING 0x00001000 proc main ? win_CopyFileEx('_cf.prg', '_cf1.prg', COPY_FILE_NO_BUFFERING) retu #pragma BEGINDUMP #include "hbapi.h" #include "windows.h" HB_FUNC( WIN_COPYFILEEX ) { hb_retl( (LONG) CopyFileEx( (LPCSTR) hb_parc(1), (LPCSTR) hb_parc(2), NULL, NULL, NULL, HB_ISNIL(3) ? 0 : (DWORD) hb_parnl(3) ) ); } #pragma ENDDUMP
|
|
|
|
| |
Пост N: 7895
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.12.23 17:27. Заголовок: Pasha gfilatov2002 ..
Pasha gfilatov2002 Спасибо за помощь. Вопрос не решился. Поэтому перезапускаю поток если время копирования превысило N сек , работает.
|
|
|
|
| |
Пост N: 7896
Зарегистрирован: 17.05.05
|
|
Отправлено: 08.12.23 22:10. Заголовок: Пора поюзать ROBOCOP..
Пора поюзать ROBOCOPY , интересно уже каков будет результат
|
|
|
|
|
| постоянный участник
|
Пост N: 1701
Зарегистрирован: 27.01.07
|
|
Отправлено: 09.12.23 11:11. Заголовок: Dima пишет: Пора по..
Dima пишет: А она умеет открытые файлы?
|
|
|
|
| |
Пост N: 7897
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.12.23 16:34. Заголовок: PSP пишет: А она ум..
PSP пишет: цитата: | А она умеет открытые файлы? |
| Да , облом . не копирует открытые файлы и Xcopy тоже по ходу
|
|
|
|
| постоянный участник
|
Пост N: 7630
Зарегистрирован: 12.09.06
|
|
Отправлено: 09.12.23 17:13. Заголовок: Dima пишет: Да , об..
Dima пишет: цитата: | Да , облом . не копирует открытые файлы и Xcopy тоже по ходу |
| Делай тогда через Winrar или WinZip, они умеют делать архивы с открытыми файлами. Я сделал свою утилиту на МиниГуи, создаю нужный мне список файлов и делаю архив. Работает с 2013 года. Команда простая: COMPRESS aFiles ; TO cBackupZip ; BLOCK { | cFile, nPos | ProgressUpdate( nPos, cFile, aSizeFiles, .T. ) } ; LEVEL LEVEL_ZIP ; PASSWORD cPass ; OVERWRITE ; STOREPATH ; FILEPROGRESS { | nPos, nTotal | ProgressFile( nPos, nTotal, .T. ) } ; RESULT lSuccess
|
|
|
|
| |
Пост N: 7898
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.12.23 17:51. Заголовок: Dima пишет: Да , об..
Dima пишет: цитата: | Да , облом . не копирует открытые файлы и Xcopy тоже по ходу |
| Поправка Shared копирует , Exclusive нет
|
|
|
|
| |
Пост N: 7899
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.12.23 19:46. Заголовок: Прикольно на одном и..
Прикольно на одном из серваков уже сделал 2 замера и время не растет , даже падает , при использовании Robocopy. Жду 2-го результата на втором серваке в другом городе. Update И на втором время не растет и тоже упало Приз получает Robocopy
|
|
|
|
| Администратор
|
Пост N: 4144
Зарегистрирован: 23.05.05
|
|
Отправлено: 09.12.23 21:42. Заголовок: Dima пишет: Поправк..
Dima пишет: цитата: | Поправка Shared копирует , Exclusive нет |
| Так работают все средства, хоть функции, хоть сторонние утилиты. На то оно и эксклюзив, что никому больше доступ к файлу не даст
|
|
|
|
| постоянный участник
|
Пост N: 1702
Зарегистрирован: 27.01.07
|
|
Отправлено: 09.12.23 21:43. Заголовок: :sm208:..
|
|
|
|
| постоянный участник
|
Пост N: 1703
Зарегистрирован: 27.01.07
|
|
Отправлено: 09.12.23 21:45. Заголовок: Pasha пишет: Так ра..
Pasha пишет: цитата: | Так работают все средства, хоть функции, хоть сторонние утилиты. На то оно и эксклюзив, что никому больше доступ к файлу не даст |
| Разрешите не согласиться. VSS с этим справляется. Она на другом уровне работает, не файловом.
|
|
|
|
| |
Пост N: 7900
Зарегистрирован: 17.05.05
|
|
Отправлено: 09.12.23 21:51. Заголовок: Pasha пишет: Так ра..
Pasha пишет: цитата: | Так работают все средства, хоть функции, хоть сторонние утилиты. На то оно и эксклюзив, что никому больше доступ к файлу не даст |
| Да это я лоханулся в тестовом своем примере и написал что то типа Use nakl_r new и думал что оно в Shared по умолчанию открывается
|
|
|
Ответов - 84
, стр:
1
2
3
4
5
All
[только новые]
|
|