Java의 메모리 매핑 파일은 Windows의 메모리 매핑 파일과 비슷합니까? 또는 Java 기반 메모리 및 파일 공통 작업을 기반으로하는 에뮬레이션입니까?Java 메모리 매핑 파일은 무엇입니까?
답변
메모리 매핑 된 파일에 대해 OS 지원을 사용합니다.
나는 그것을 뒷받침 할 문서를 찾으려고하지만 아직 결정적인 것을 찾지 못했습니다. 그러나, 문서 의 다양한 비트 사물은 다음과 같이 말 할 : 메모리 매핑 된 파일의 세부
대부분은 기본 운영 체제에 따라 본질적으로 의존 때문에 미지정입니다. 요구 된 영역이이 채널의 파일 내에 완전하게 포함되지 않은 경우의이 메소드의 동작은 지정되지 않습니다. 이 프로그램 또는 다른 프로그램에 의한 기본 파일의 내용이나 크기에 대한 변경 사항이 버퍼에 전파되는지 여부는 지정되지 않습니다. 버퍼에 대한 변경 사항이 파일에 전파되는 속도는 지정되지 않습니다.
모든 것이 방금 에뮬레이션 된 경우 이러한 지정되지 않은 동작이 필요하지 않습니다.
질문과 의견의 줄을 읽으려고 시도하는 것은 메모리 매핑 된 파일을 사용하여 Java와 C++ 응용 프로그램간에 메모리/개체를 공유하는 것입니다.
제 조언은 입니다.을 시도하지 마십시오.
하기 위해 해결해야 할 어려운 문제가있다이 신뢰성 :
- 는 하나의 응용 프로그램에 의해 변경 내용이 확실하게 작성되도록한다는,
- 를 공유 데이터 구조의 두 응용 프로그램의 사용을 동기화 주 메모리에 저장하고 다른 하나에 의해 읽으려는 경우, 변경 내용이 예상 된 순서로 디스크로 플러시되도록 보장하십시오.
Java의 특정 문제는 Java 객체를 메모리 매핑 된 영역에 배치 할 수 없다는 것입니다. 대신 C++ 측에서 기대하는 표현과 호환되는 어떤 방법으로 직렬화 및 비 직렬화해야합니다. 당신이 버전을 변경하면 잠재적으로 변경 될 수 OS, C++ 및 Java 구현 의 지정되지 않은 행동에 의존하기 때문에 당신이 그 모든 문제를 해결에 성공할 경우에도 마지막
는 솔루션은 깨지기 쉬운 될 가능성이 높습니다 위의 어느 것.
답변 해 주셔서 감사합니다! 유용한 조언;) – Edward83
- 1. 메모리 매핑 파일은 실제 메모리에 남아 있습니까?
- 2. 메모리 매핑 파일이없는 공유 메모리
- 3. 메모리 매핑 파일 식별
- 4. 메모리 매핑 스토리지 엔진
- 5. 메모리 매핑 된 데이터베이스
- 6. Ruby에 해당하는 Java .properties 파일은 무엇입니까?
- 7. 메모리 매핑 된 파일을 자릅니다.
- 8. 메모리 매핑 I/O의 의미는 무엇입니까?
- 9. VAS 로의 바이너리 메모리 매핑
- 10. 메모리 매핑 된 레지스터에서 읽기
- 11. 공유 오브젝트 파일은 무엇입니까?
- 12. LINQtoSQL : 맵 파일은 무엇입니까?
- 13. 내 Java 파일은 어디에 있습니까?
- 14. C 공유 메모리 포인터 매핑
- 15. FreeBSD는 메모리 매핑 파일을 지원합니까?
- 16. Windows 메모리 매핑 된 파일
- 17. 파일 시스템 - 메모리 매핑 파일
- 18. 메모리 매핑 된 파일 .NET
- 19. 언제 메모리 매핑 파일을 사용합니까?
- 20. Java : JAX-WS 매핑
- 21. Java 문자열 매핑
- 22. int 배열에 문자열 매핑 - Java
- 23. 메모리 매핑 된 파일 대 RAM 디스크
- 24. 파일의 메모리 매핑 대 CreateFile/ReadFile
- 25. 메모리 매핑 파일의 크기는 어느 정도입니까?
- 26. Posix 공유 메모리 대 매핑 된 파일
- 27. Java 메모리 분석 도구와 메모리 누수 감지 도구의 차이점은 무엇입니까?
- 28. Java 메모리 모델과 C++ 11 메모리 모델 사이의 유사점은 무엇입니까?
- 29. System.Configuration.ConfigurationManager.AppSettings를 사용하는 파일은 무엇입니까?
- 30. Doxygen의 헤더 파일은 무엇입니까?
답변 해 주셔서 감사합니다. 내가 당신을 이해 : java.nio 클래스 (메모리 매핑 된 파일을 조작하기위한) 포장 Windows API는 메모리 매핑 된 파일 함수를? 나는 맞습니까?))) – Edward83
나는 약간의 시험을하려했습니다. 하나의 MMF를 만들고이를 Win32 C++와 Java with nio의 두 프로세스간에 공유하려고했습니다. 하지만 테스트에서 실패했다. 왜냐하면 내가 자바에서 "Named"MMF를 만들거나 열 수 없기 때문이다. LOL))) – Edward83