0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 106
|
|
1 | |
Кэшируются ли маппет файлы?12.11.2014, 19:01. Показов 1052. Ответов 7
Метки нет (Все метки)
Столкнулся с отображаемыми файлами в памяти(Memory Mapped Files).
Как я понимаю данные при первом чтение файла(на примере текстового файла) проходят по такому пути: Диск -> Оперативная память -> Кэш -> Пользовательский буфер. Не могу понять, как этот путь будет выглядит для MMF. И интересующий меня вопрос кэшируются ли маппет файлы?
0
|
12.11.2014, 19:01 | |
Ответы с готовыми решениями:
7
Кэшируются в броузере Найти все RTF файлы, захешировать эти файлы MD5 и SHA1. Потов захешированые файлы поместить в документ Пропали файлы на флешке.Вместо них файлы и папки со странными именами Заголовочные файлы .h, файлы исходного когда c/c++ и установление связи между ними |
12.11.2014, 19:25 | 2 |
Сообщение было отмечено Suares как решение
Решение
Кэш (для любых данных) работает так - подкачивается кусок памяти (кэш-линия), к которому происходит обращение. Если кэш уже забит, то кусок памяти, к которому было самое давнее обращение скидывается (либо в кэш следующего уровня, либо в озу). На его место пишется твои данные. Если нужные данные уже в кеше, то собственно ничего и не происходит. И это поведение не зависит от того есть ли это mapped file или что-то другое.
1
|
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 106
|
|
13.11.2014, 10:13 [ТС] | 3 |
Еще бы хотел уточнить. Правильно ли я понимаю, что преимущество MMF в том, что данные из кэша в пользовательский буфер не копируются, а происходит что-то вроде разыменование указателя по некоторому адресу?
0
|
Ушел с форума
|
|
13.11.2014, 11:10 | 4 |
1
|
0 / 0 / 0
Регистрация: 28.02.2013
Сообщений: 106
|
|
13.11.2014, 12:06 [ТС] | 5 |
0
|
Ушел с форума
|
|
13.11.2014, 12:18 | 6 |
В таком случае да, кэшируются. Если только не указан явно какой-нибудь SEC_NOCACHE.
Преимущество MMF в том, что он позволяет двум и более процессам использовать одни и те же физические страницы памяти, ссылаясь на них через свои виртуальные адреса: один процесс записал данные - второй сразу же увидел, и для этого не требуются ни переключение в ядро, ни синхронизация, ни другие дорогие операции. В плане использования MMF для чтения файлов у него особых преимуществ перед CreateFile/AllocBuffer/ReadFile нет.
1
|
Ушел с форума
|
|
13.11.2014, 12:41 | 8 |
Все верно, просто для некоторых страниц памяти может быть
установлен атрибут "write-combined" (WC) или "non-cached" (NC), тогда работа с кэшем CPU будет другой. Но 99% приложений это никогда не коснется
2
|
13.11.2014, 12:41 | |
13.11.2014, 12:41 | |
Помогаю со студенческими работами здесь
8
Восстановить удаленные файлы (пропали файлы после нажатия Ctrl +Z) Текстовые файлы. Создать новый файл, объединив исходные файлы Как в IntelliJ IDEA скомпилировать исходные файлы в файлы классов Не могу открыть файлы Word, jpeg, pdf - файлы повреждены Почему не отправляются файлы docx, txt и прочие текстовые файлы? Сделать макрос, находящий все файлы .txt и открывающий эти файлы по очереди Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |