![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| Dmitriy2k |
|
|||
![]() шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 6.11.2005 Репутация: нет Всего: нет |
Я пишу прогу для копирования файлов через сеть. Мне нужно копирование файлов больших размеров. Но почему то выделение памяти под эти файлы происходит жутко долго.
у меня четвертый пень и на такое выделение 600 Мб памяти уходит 60 секунд в первом и втором случае, а ведь мне нужно еще и обрабатывать эти данные. Кто нибудь подскажет, нет ли более быстрых функций? |
|||
|
||||
| dumb |
|
|||
![]() sceloglauxalbifacies ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 2929 Регистрация: 16.6.2006 Репутация: 27 Всего: 158 |
CreateFileMapping, MapViewOfFile! и лучше расскажи, что делать собираешься... |
|||
|
||||
| Dmitriy2k |
|
|||
![]() шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 6.11.2005 Репутация: нет Всего: нет |
Считываю в буффер памяти содержимое файла, а далее посылаю это содержимое на удаленный компьютер, где опять из буфера беру данные и записываю их в файл. Программа довольно большая и по нескольку раз происходит выделение-копирование-считывание данных из памяти, поэтому при посылке здорового блока данных происходит жуткое торможение |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 33 Всего: 183 |
Выделяй память не в хипе, а прямо в системе, через VirtualAlloc. Стандартный хип обычно меньше, чем ты хочешь, видимо, пытается переразместиться.
Добавлено @ 06:50 Или действительно, используй проецирование файла в память, как предложил dumb. На кой тебе его в буфер предварительно копировать ... Да и пересылать нужно кусочками поменьше, наверное... -------------------- ... |
|||
|
||||
| Dmitriy2k |
|
|||
![]() шустрый ![]() Профиль Группа: Участник Сообщений: 96 Регистрация: 6.11.2005 Репутация: нет Всего: нет |
Спасибо за ответы. Мне понравилось как работает VirtualAlloc.
Может быть воспользуюсь CreateFileMapping или MapViewOfFile. |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |