Re[8]: эмуляция фацла в памяти
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 01.11.20 08:52
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>Эмуляция файла — это очень полезный строительный блок.


Для строительства чего?

C>Короче говоря, чрезвычайно полезная вещь.


Полезность любой вещи определяется в первую очередь массовостью и частотой ее применения. Какая часть программ под Linux использует эти средства эмуляции файлов, и для чего именно?
Re[9]: эмуляция фацла в памяти
От: Cyberax Марс  
Дата: 01.11.20 18:20
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

C>>Эмуляция файла — это очень полезный строительный блок.

ЕМ>Для строительства чего?
Приложений.

C>>Короче говоря, чрезвычайно полезная вещь.

ЕМ>Полезность любой вещи определяется в первую очередь массовостью и частотой ее применения. Какая часть программ под Linux использует эти средства эмуляции файлов, и для чего именно?
Композиторы видео используют их для передачи кадров, например. В Андроиде повсеместно используется для избежания копирования памяти (только ashmem, а не memfd).
Sapienti sat!
Re[10]: эмуляция фацла в памяти
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 01.11.20 18:33
Оценка:
Здравствуйте, Cyberax, Вы писали:

C>>>Эмуляция файла — это очень полезный строительный блок.

ЕМ>>Для строительства чего?
C>Приложений.

Мне при строительстве приложений ни разу не требовалось эмуляции файлов. Что я все эти годы делал не так?

C>Композиторы видео используют их для передачи кадров, например. В Андроиде повсеместно используется для избежания копирования памяти (только ashmem, а не memfd).


Зачем для этого ставить концепцию с ног на голову и эмулировать файл? То, что Вы упомянули, всю жизнь называлось "потоковой передачей данных". Поток может быть связан и с реальным файлом, но представлять любой поток в виде этакого "виртуального файла" — явное извращение, ибо поток — это в первую очередь именно поток данных, который вовсе не обязан быть связан с ФС хоть прямо, хоть косвенно.
Re: эмуляция фацла в памяти
От: ononim  
Дата: 02.11.20 09:46
Оценка: 6 (1)
https://github.com/dokan-dev/dokany
Как много веселых ребят, и все делают велосипед...
Re[3]: эмуляция фацла в памяти
От: flаt  
Дата: 02.11.20 11:44
Оценка: 6 (1)
Здравствуйте, sergey2b, Вы писали:


S>мы в секунду создаем несколько тыс файлов и после обработки удаляем их, хотелось соптимизировать процесс

S>я смог решить задачу подменой функций

В таком случае проще всего создать диск в памяти (желательно с fat32, она быстрее) и работать с "несколько тыс файлов" в нём. Или программа работает не у вас, а. у пользователей? Тогда создавать диск программно. Либо FUSE (есть реализации под Windows). Либо перехват функций работы с файлами (их не так много).
Re[6]: эмуляция фацла в памяти
От: sergey2b ЮАР  
Дата: 02.11.20 13:13
Оценка:
Здравствуйте, Reset, Вы писали:


R>P.S. Не очень понимаю, почему файловая система может тормозить при создании и удалении файлов. Т.е. IMHO, для задачи ТС FS должна работать достаточно быстро (файлы в памяти, кончено, быстрее, но и обычная FS должна работать достаточно быстро без хаков, вопрос, почему это не так...). Журнал, насколько я понимаю, не сбрасывается на диск до возвращения из системного вызова "создать файл" (это же не база данных с транзакциями), т.е. по сути все операции работы с FS в ядре должны происходить в памяти. Записи на диск, если и будут (файл создали, через секунду удалили, затем на том же месте создали новый), произойдут в фоне, т.е. тормозить не должны. Остаются переключения контекста (в ядро и обратно), которые в Linux ~1мкс, работа с файловым кешем (в памяти) и пометка страниц, которые нужно в фоне сбросить на диск (в Linux процесс сброса запускается раз в 5 секунд, если памяти достаточно). Возможно, это опять же это особенность FS в Windows...


в секунду создаються и сохраняються на диск N количество файлов
те создали, записали, закрыли, передали путь в балансер задач

если считать только записываемых данные без системных областей диска получаеться несколько G в секунду
а сейчас все в RAM работает
Re[7]: эмуляция фацла в памяти
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 02.11.20 16:36
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>в секунду создаються и сохраняються на диск N количество файлов

S>те создали, записали, закрыли, передали путь в балансер задач
S>если считать только записываемых данные без системных областей диска получаеться несколько G в секунду
S>а сейчас все в RAM работает

Такое впечатление, что одно кривое решение Вы пытаетесь спасти еще более кривым. Надеюсь, это хоть внутренний продукт, не релизный?
Re[8]: эмуляция фацла в памяти
От: reversecode google
Дата: 02.11.20 16:45
Оценка:
ЕМ>Такое впечатление, что одно кривое решение Вы пытаетесь спасти еще более кривым. Надеюсь, это хоть внутренний продукт, не релизный?

сомнительно что это продукт
больше похоже на сервис аля нетфликс
Re[9]: эмуляция фацла в памяти
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 02.11.20 16:52
Оценка:
Здравствуйте, reversecode, Вы писали:

ЕМ>>это хоть внутренний продукт, не релизный?


R>сомнительно что это продукт

R>больше похоже на сервис аля нетфликс

Это и есть "внутренний продукт". Если крутится сугубо на их аппаратуре — по барабану, как там что реализовано. А вот если такое выпускается в релиз, и ставится у потребителей — обильные маты гарантированы.
Re[10]: эмуляция фацла в памяти
От: reversecode google
Дата: 02.11.20 16:57
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, reversecode, Вы писали:


ЕМ>>>это хоть внутренний продукт, не релизный?


R>>сомнительно что это продукт

R>>больше похоже на сервис аля нетфликс

ЕМ>Это и есть "внутренний продукт". Если крутится сугубо на их аппаратуре — по барабану, как там что реализовано. А вот если такое выпускается в релиз, и ставится у потребителей — обильные маты гарантированы.


типа внутреннему продукту будет наплевать как это нужно будет поддерживать?
не, думаю бизнесу виднее
если он нанимает таких сергеев
значит бизнес согласен на кривопопые решение — лишь бы как нибудь работало

так кстати большинство контор делает и для паблик продукта
Re[11]: эмуляция фацла в памяти
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 02.11.20 17:01
Оценка:
Здравствуйте, reversecode, Вы писали:

R>типа внутреннему продукту будет наплевать как это нужно будет поддерживать?


По крайней мере, сор не выносится за пределы организации. В конце концов, кто и когда интересовался, на чем и как написан тот или иной сервис, если со стороны пользователя этого никак не видно?
Re[12]: эмуляция фацла в памяти
От: reversecode google
Дата: 02.11.20 17:06
Оценка:
ЕМ>По крайней мере, сор не выносится за пределы организации. В конце концов, кто и когда интересовался, на чем и как написан тот или иной сервис, если со стороны пользователя этого никак не видно?

разрабам которые ходят из конторы в контору и рассказывают стоит ли куда соваться или там очередное решение на cоплях от очередных прогОмистов сергеев
которых уже уволили
Re: эмуляция фацла в памяти
От: alexanderfedin США http://alexander-fedin.pixels.com/
Дата: 09.11.20 09:23
Оценка: 6 (1)
Здравствуйте, sergey2b, Вы писали:
S>Подскажите пожалуйста есть ли функции Win API или библиотека позволяюшая эмулировать файл в памяти
S>при этом надо чтобы файловый HANDLE был валидны
S>конечная цель сделать так что бы чужая библиотека работала с файлом в RAM а не на диске
Temporary file

If you are WRITING the file in your application you can try creating with:

FILE_ATTRIBUTE_TEMPORARY and FILE_FLAG_DELETE_ON_CLOSE

This tells Windows to try to keep files in RAM instead of on disk — I don't think this will match your needs though but you can read more at http://msdn.microsoft.com/en-us/library/aa363858%28VS.85%29.aspx#caching_behavior

Steve Radich — http://www.BitShop.com/blogs.aspx

Respectfully,
Alexander Fedin.
Re[2]: эмуляция фацла в памяти
От: Maniacal Россия  
Дата: 11.11.20 08:29
Оценка:
Здравствуйте, alexanderfedin, Вы писали:

A>Temporary file

A>

A>If you are WRITING the file in your application you can try creating with:

A>FILE_ATTRIBUTE_TEMPORARY and FILE_FLAG_DELETE_ON_CLOSE

A>This tells Windows to try to keep files in RAM instead of on disk — I don't think this will match your needs though but you can read more at http://msdn.microsoft.com/en-us/library/aa363858%28VS.85%29.aspx#caching_behavior

A>Steve Radich — http://www.BitShop.com/blogs.aspx


Файл всё равно физически создастся на диске, а при превышении размера файлового кэша ещё и зафлюшится. Но система будет стараться не флюшить до последнего.

the FILE_ATTRIBUTE_TEMPORARY attribute does tell the system to hold as much as possible in the system cache without writing and therefore may be of concern for certain applications.

Re[3]: эмуляция фацла в памяти
От: alexanderfedin США http://alexander-fedin.pixels.com/
Дата: 26.11.20 10:53
Оценка:
Здравствуйте, Maniacal, Вы писали:

M>Здравствуйте, alexanderfedin, Вы писали:


A>>Temporary file

A>>

A>>If you are WRITING the file in your application you can try creating with:

A>>FILE_ATTRIBUTE_TEMPORARY and FILE_FLAG_DELETE_ON_CLOSE

A>>This tells Windows to try to keep files in RAM instead of on disk — I don't think this will match your needs though but you can read more at http://msdn.microsoft.com/en-us/library/aa363858%28VS.85%29.aspx#caching_behavior

A>>Steve Radich — http://www.BitShop.com/blogs.aspx


M>Файл всё равно физически создастся на диске, а при превышении размера файлового кэша ещё и зафлюшится. Но система будет стараться не флюшить до последнего.

M>

M>the FILE_ATTRIBUTE_TEMPORARY attribute does tell the system to hold as much as possible in the system cache without writing and therefore may be of concern for certain applications.


Это неплохо, ибо Вам же нужно не только голое быстродействие, но ещё и надёжность.
Если у Вас с файлами в памяти закончится эта память, то будет обидно за потерянные данные.
А здесь эти данные просто уйдут на диск.
Respectfully,
Alexander Fedin.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.