Вопрос

Наказываются на память файлы в Java, такие как файлы для отображения памяти для Windows? Или это только эмуляция на основе памяти и файла общих операций в Java?

Это было полезно?

Решение

Он использует поддержку ОС для отображаемых памяти файлов.

Я пытаюсь найти документацию, чтобы вернуть это, но я еще не нашел ничего убедительного. Однако различные биты документов делать сказать такие вещи:

Многие из деталей файлов смягчаются памятью файлов по своей природе зависят от базовой операционной системы и поэтому не указаны. Поведение этого метода, когда запрошенная область не полностью содержится в файле этого канала, не указано. Приведены ли изменения в содержание или размер базового файла, по этой программе или другому, распространяются на буфер, не указано. Скорость, при которой изменяется изменение буфера, распространяются на файл, не указан.

Если все было только эмулировано, не было бы необходимости в таком неопределенном поведении.

Другие советы

Чтение между линиями вашего вопроса и комментариев, то, что вы пытаетесь сделать, это использовать отображаемый память файла для совместной памяти / объекты между приложением Java и C ++.

Мой совет Не пытайтесь сделать это.

Существуют сложные проблемы, которые необходимо будет адресовать, чтобы сделать это надежным:

  • Синхронизация двух приложений «Использование общей структуры данных»,
  • Обеспечение того, чтобы изменения, сделанные одним приложением, получают надежно записанные в основную память и прочитать другой,
  • Обеспечение того, чтобы изменения были промыты на диск в ожидаемый заказ.

Особая проблема Java в том, что вы не можете поместить ваши объекты Java в рамку памяти. Вместо этого вам приходится сериализовать и десетировать их каким-то образом, что совместимо с представлениями, которые на стороне C ++ ожидают.

Наконец, даже если вы добитесь успеха в решении всех этих вопросов, ваше решение, вероятно, будет хрупким, потому что это зависит от неопределенного поведения ОС, C ++ и Java-реализаций что потенциально может измениться Если вы измените версии любого из вышеперечисленного.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top