реклама на сайте
подробности

 
 
> Ускорить запись в файл в Windows, Как уменьшить потери времени на запись в файл
Igor87
сообщение May 16 2010, 19:31
Сообщение #1





Группа: Участник
Сообщений: 9
Регистрация: 16-05-10
Пользователь №: 57 305



Есть задача: принимать данные от аппаратуры программой1 и через файл передавать их в программу2. Действие происходит в Windows XP.
При этом не устраивает скорость записи данных в файл. Передача осуществляется средствами WinAPI.
Есть ли более быстрые способы передачи данных?
Желательно минимальное изменение изменение кодов программ по причине того, что программу 1 и 2 делают разные люди.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Deka
сообщение May 28 2010, 09:48
Сообщение #2


Местный
***

Группа: Свой
Сообщений: 248
Регистрация: 18-07-06
Из: Сочи
Пользователь №: 18 890



Можно попробовать сделать виртуальный диск и именно там расположить файл. Это позволит не переделывать программы.
Go to the top of the page
 
+Quote Post
Igor87
сообщение Jun 4 2010, 01:18
Сообщение #3





Группа: Участник
Сообщений: 9
Регистрация: 16-05-10
Пользователь №: 57 305



Цитата(Deka @ May 28 2010, 13:48) *
Можно попробовать сделать виртуальный диск и именно там расположить файл. Это позволит не переделывать программы.

А как это можно сделать?

По поводу CreatePipe, я читал, что все механизмы межпроцессного взаимодействия основаны на файлах отображаемых на память. И в пределе могут достигать скорости этого метода. Так что я пока остановился на файлах отображаемых в память. Вроде задержки уменшились, но возникла проблема того, что весь файл надо держать в памяти, а он может заполняться данными около часа.Там объем приличный может набегать.
Я думал, что можно отображать часть файла, но похоже ошибся.
Вот только память выделяется как-то не прямо пропорционально.То есть я вроде отображаю здоровый файл, а прибавка занимаемой памяти процессором маленькая.То есть механизм состоит не в том, что файл целиком находится в оперативной памяти, правильно?
Go to the top of the page
 
+Quote Post
SSerge
сообщение Jun 5 2010, 09:00
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 719
Регистрация: 13-09-05
Из: Novosibirsk
Пользователь №: 8 528



Цитата(Igor87 @ Jun 4 2010, 08:18) *
файл целиком находится в оперативной памяти, правильно?

Под файл выделяется виртуальная память, которой не жалко. А реально существующая память будет выделяться только для тех участков файла в которые что-то писали.


--------------------
Russia est omnis divisa in partes octo.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Igor87   Ускорить запись в файл в Windows   May 16 2010, 19:31
- - Xenia   Цитата(Igor87 @ May 16 2010, 23:31) Есть ...   May 16 2010, 19:47
|- - Igor87   Цитата(Xenia @ May 16 2010, 23:47) А если...   May 22 2010, 04:39
|- - Xenia   Цитата(Igor87 @ May 22 2010, 08:39) Вопро...   May 22 2010, 22:07
- - Igor87   Спасибо за ответ! Так как запись нужно вести в...   May 16 2010, 20:13
- - SSerge   Выбирайте что больше нравится из Interprocess Comm...   May 16 2010, 20:50
|- - Terrarium   Цитата(Igor87 @ Jun 4 2010, 04:18) Вот то...   Jun 7 2010, 14:21
- - baralgin   Как выше советовали, можно использовать именованны...   May 28 2010, 12:15
- - Xenia   Я не буду слишком категоричной, но в отношении мех...   May 28 2010, 15:53
- - SSerge   Буферизация у пайпов конечно же есть. Собственно т...   May 28 2010, 16:53
- - alekseykoj   Смотри в сторону API функций: CreateFileMapping, M...   Jun 3 2010, 09:12
- - Igor87   А GetSystemInfo() говорит, что гранулярность памят...   Jun 13 2010, 16:08


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 11th August 2025 - 09:44
Рейтинг@Mail.ru


Страница сгенерированна за 0.01386 секунд с 7
ELECTRONIX ©2004-2016