Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Можно ли из 2-х приложений пользоваться общей ОЗУ (С++)?

17K
27 июня 2006 года
ShumilinAG
6 / / 27.06.2006
Задача такая: есть гигантская матрица нужно ее передать в другое приложение с максимальной скоростью, предлогается использовать ОЗУ, а не файл на диске (опять таки затраты времени не позволяют), какие есть выходы? помогите пожалуйста, зарание спасибо.
3
27 июня 2006 года
Green
4.8K / / 20.01.2000
Используй Memory Mapped Files или Shared segments.
Google и поиск по этому форуму тебе в помощь.
406
27 июня 2006 года
vitaly2003s
481 / / 27.07.2004
Для чтения в другом процессе можно использовать ReadProcessMemory.
350
27 июня 2006 года
cheburator
589 / / 01.06.2006
[QUOTE=ShumilinAG]предлогается использовать ОЗУ, а не файл на диске (опять таки затраты времени не позволяют)[/QUOTE]
Ну почему же, если передавать будешь через файл, отображенный на память, затраты времени будут небольшими. Скорее всего, файл фактически не будет использоваться.
См.:
CreateFile
CreateFileMapping
MapViewOfFile
17K
28 июня 2006 года
ShumilinAG
6 / / 27.06.2006
[QUOTE=cheburator]Ну почему же, если передавать будешь через файл, отображенный на память, затраты времени будут небольшими. Скорее всего, файл фактически не будет использоваться.
См.:
CreateFile
CreateFileMapping
MapViewOfFile[/QUOTE]
Матрица частенько обновляться будет(400МБ - это ужас :-( ), а пока затраты получаются большие. Хочу проредить чтение по максимому.Просто не обязательно через фаил может мона как то еще. Пока не могу понять может ли CMemFile использоваться из нескольких процессов или нет...
398
29 июня 2006 года
Alexandoros
630 / / 21.10.2005
ShumilinAG Если матрица обновляется не полностью, а кусками, то имеет смысл передавать дельту(измененные участки). А че за прога такая с матрицей в 400М? Аж интересно стало.
17K
29 июня 2006 года
ShumilinAG
6 / / 27.06.2006
[QUOTE=Alexandoros]ShumilinAG Если матрица обновляется не полностью, а кусками, то имеет смысл передавать дельту(измененные участки). А че за прога такая с матрицей в 400М? Аж интересно стало.[/QUOTE]
3D визулизация с офигенной точностью. А кусками все и будет ))) 400Mb разжатая основная(рабочая) матрица в сжатом виде меньше (((( но разжимать.сжимать долговато.
350
29 июня 2006 года
cheburator
589 / / 01.06.2006
[QUOTE=ShumilinAG]Матрица частенько обновляться будет(400МБ - это ужас :-( ), а пока затраты получаются большие. Хочу проредить чтение по максимому.Просто не обязательно через фаил может мона как то еще. Пока не могу понять может ли CMemFile использоваться из нескольких процессов или нет...[/QUOTE]
Не пойму, в чем проблема. Отображение файла на память позволяет не просто обмениваться информацией, а память будет физически общая, т. е. оба процесса будут пользоваться одними и теми же 400 Мб памяти. А файл нужен только для подкачки. Т. е. если возникнет ситуация, что у операционной системы не хватает оперативки для других приложений - в обычной ситуации она скинет твою матрицу в файл подкачки, а в данном случае - в указанный тобой файл. Так что разницы нет. Более того, есть экономия оперативки и мгновенная "передача" данных.
17K
30 июня 2006 года
ShumilinAG
6 / / 27.06.2006
[QUOTE=cheburator]Не пойму, в чем проблема. Отображение файла на память позволяет не просто обмениваться информацией, а память будет физически общая, т. е. оба процесса будут пользоваться одними и теми же 400 Мб памяти. А файл нужен только для подкачки. Т. е. если возникнет ситуация, что у операционной системы не хватает оперативки для других приложений - в обычной ситуации она скинет твою матрицу в файл подкачки, а в данном случае - в указанный тобой файл. Так что разницы нет. Более того, есть экономия оперативки и мгновенная "передача" данных.[/QUOTE]

Просто я не так долго пишу на с++,поэтому и обратился за помощью к знающим.
Да так именно мне и предложили сделать!(использую MMF оч. удобно) Спасибо всем, программа почти пашет ;-) остались мелочи всякие :-)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог