PROFI에서 SUPERPROFI에 대한 모든 질문 - 1. - 페이지 27 1...202122232425262728293031323334...45 새 코멘트 Vadim Zhunko 2011.09.09 14:59 #261 sergeev : 메모리 매핑 작업에 대한 질문입니다. 복사 및 재생성에 의존하지 않고 할당된 메모리(CreateFileMapping) 및 해당 프로젝션(MapViewOfFile)의 크기를 동적으로 변경할 수 있습니까? 따라서 문제는 다음과 같습니다. CreateFileMapping 객체는 100바이트 프로세스(writer-reader) 간의 데이터 교환을 위해 메모리에 생성됩니다. 및 100바이트에서 동일한 크기의 MapViewOfFile. 첫 번째 쓰기 프로세스는 두 번째 읽기 프로세스에서 추출할 시간이 없는 모든 100바이트 데이터를 메모리에 쓸 수 있습니다. 따라서 CreateFileMapping/MapViewOfFile을 다시 생성하지 않고 할당된 메모리 양을 확장할 수 있는지 여부가 작업입니다. 따라서 첫 번째 프로세스는 릴리스를 기다리지 않고 추가된 볼륨에 계속 쓰고 두 번째 프로세스도 계속 더 읽습니다. 할 수 있다. 더 강조하는 것이 좋습니다. 더 빨리 작동합니다. 같은 라이브러리에서 구현했습니다. TheXpert 2011.09.09 15:11 #262 Zhunko : 할 수 있다. 더 강조하는 것이 좋습니다. 흠, 조금 정확하지 않습니다. 매핑에는 크기가 전혀 없으며 생성할 때 일반적으로(기본적으로) 작업 중인 파일의 크기와 동일한 최대 크기만 지정됩니다. 보기의 경우 크기는 생성 중에 설정되며 액세스 플래그에 샤머니즘이 있는 경우에만 UnmapViewOfFile 함수 없이 크기를 변경하거나 전혀 변경하지 않을 수 있습니다. 그리고 왜 크기를 전혀 변경합니까? --- 2011.09.09 15:20 #263 Zhunko : 할 수 있다. 처럼 ? MSDN과 Google에 보내지 마십시오. 이미 반나절 동안 거기에 있었습니다. 더엑스퍼트 : 흠, 조금 정확하지 않습니다. 매핑에는 크기가 전혀 없으며 생성할 때 일반적으로(기본적으로) 작업 중인 파일의 크기와 동일한 최대 크기만 지정됩니다. 그게 요점입니다. 글쎄, 나는 만들 때 크기 = 100 바이트가 지정되었다고 썼습니다. 둘째, 물리적 파일로 작업하지 않고 단순히 메모리로 작업합니다. 한 프로세스는 다른 프로세스에 정보를 전달합니다. 그리고 왜 크기를 전혀 변경합니까? 작동하는 동안 할당된 메모리 는 모두 100바이트로 채워집니다. 그러나 데이터가 새 것으로 나타나므로 추가해야 합니다. 따라서 추가하려면 이 볼륨을 확장해야 합니다. 그래서 중간 복사 및 다시 생성에 의존하지 않고 할당된 100바이트를 확장하는 방법을 묻고 있습니다. 나는 반전으로 이해했다. 다시 하기만 하면 됩니다. CreateFileMapping 개체 자체는 어떻습니까? 그것으로 확장하기 위해 닫지 않고 밝혀 질 것입니까? MT5 전략 테스터에 대한 파일 작업. 코딩 도움말 Андрей 2011.09.09 15:30 #264 그 과정에서 매핑으로 읽기의 경우 매핑 크기는 Create에서 고정 값으로 설정됩니다. . 아마도 재생산만 가능합니다. . BUT: 대용량 스파스 파일(예: 2GB)을 생성하는 경우 그러면 모든 것이 괜찮을 것입니다. 그러나 파일의 끝은 시스템 파일 크기 밖에서 이해해야 합니다. . 그러나 파일에서 읽는 프로세스를 동기화하는 방법을 묻는 것이 이미 필요합니다. 저것들. 데이터의 일부가 기록되어 있다는 것을 배우는 방법과 위치. --- 2011.09.09 15:36 #265 대체로 그러한 볼륨은 필요하지 않습니다. 프로세스는 비동기적으로 쓰기/읽기만 합니다. 그리고 독자가 모든 것을 긁어 모을 때까지 작가가 불편함을 느끼지 않도록 방법이 필요합니다. 즉, 내용을 변경하지 않고 배열을 확장하려면 ArrayResize 와 같은 것이 필요합니다. 판독기가 모든 데이터를 가져오자 마자 메모리는 다시 처음부터 쓰기에 사용할 수 있습니다. --- 2011.09.09 15:36 #266 jartmailru : 그러나 파일에서 읽는 프로세스를 동기화하는 방법을 묻는 것이 이미 필요합니다. 저것들. 데이터의 일부가 기록되어 있다는 것을 배우는 방법과 위치. 나는이 문제를 즉시 해결했습니다. 그러나 크기가 동적 인 증가와 함께 아직까지는 아닙니다 :( Vadim (Zhunko)이 그렇게 관대하다면 그가 어떤 기능을 사용해야하는지 알려 주셨으면합니다 ... Андрей 2011.09.09 15:54 #267 반복합니다: 희소 파일과 같은 것이 있습니다... 이것은 2기가 파일이 디스크에서 0바이트를 차지함을 의미합니다. 흠. 그리고 파일을 전송된 파일의 최대 크기로 설정합니다. 데이터가 불가능합니까? --- 2011.09.09 16:05 #268 jartmailru : 반복합니다: 희소 파일과 같은 것이 있습니다... 이것은 2기가 파일이 디스크에서 0바이트를 차지함을 의미합니다. 나는 파일을 사용하지 않으며 모든 것이 메모리를 통해 수행됩니다. 이미 세 번 이상 썼습니다. // 더 쉽게 만드는 경우 CreateFileMapping( INVALID_HANDLE_VALUE , NULL, PAGE_READWRITE, 0, FILE_SIZE, "로컬\\페이지"); 이 FILE_SIZE는 쉬지 않습니다. 그를 자신에게 구체적으로 묶습니다. 흠. 그리고 전송되는 데이터의 최대 크기는 파일로 설정할 수 없나요? 데이터의 양은 미리 알 수 없습니다. Sparse에 대해 읽었는데 유용할 수 있습니다. 동적으로 확장할 수 있다면. TheXpert 2011.09.09 16:11 #269 sergeev : 그게 요점입니다. 글쎄, 나는 만들 때 크기 = 100 바이트가 지정되었다고 썼습니다. 둘째, 물리적 파일로 작업하지 않고 단순히 메모리로 작업합니다. 한 프로세스는 다른 프로세스에 정보를 전달합니다. 무슨 상관이야? 본질은 동일합니다. 단지 infa가 디스크가 아닌 메모리에 기록된다는 것뿐입니다. 마찬가지로 CreateFile을 통해 열린 핸들로 작업이 발생합니다. 여기(메모리에 파일을 생성할 때)에서 가능한 최대 크기를 지정해야 하며 그 이상은 정보가 없을 것입니다. 작동하는 동안 할당된 메모리는 모두 100바이트로 채워집니다. 뭐가 문제 야? 100바이트의 오프셋으로 다른 보기를 만들었지만 매핑(즉, 파일)의 크기에서 미리 고려해야 합니다. 나는 반전으로 이해했다. 다시 하기만 하면 됩니다. CreateFileMapping 개체 자체는 어떻습니까? 그것으로 확장하기 위해 닫지 않고 밝혀 질 것입니까? 확장하는 것은 잘못되었습니다. 크기가 이미 고려되어야합니다. --- 2011.09.09 16:23 #270 TheXpert : 확장하는 것은 잘못되었습니다. 크기가 이미 고려되어야합니다. 유일한 옵션인 것 같습니다. 1...202122232425262728293031323334...45 새 코멘트 트레이딩 기회를 놓치고 있어요: 무료 트레이딩 앱 복사용 8,000 이상의 시그널 금융 시장 개척을 위한 경제 뉴스 등록 로그인 공백없는 라틴 문자 비밀번호가 이 이메일로 전송될 것입니다 오류 발생됨 Google으로 로그인 웹사이트 정책 및 이용약관에 동의합니다. 계정이 없으시면, 가입하십시오 MQL5.com 웹사이트에 로그인을 하기 위해 쿠키를 허용하십시오. 브라우저에서 필요한 설정을 활성화하시지 않으면, 로그인할 수 없습니다. 사용자명/비밀번호를 잊으셨습니까? Google으로 로그인
메모리 매핑 작업에 대한 질문입니다.
복사 및 재생성에 의존하지 않고 할당된 메모리(CreateFileMapping) 및 해당 프로젝션(MapViewOfFile)의 크기를 동적으로 변경할 수 있습니까?
따라서 문제는 다음과 같습니다.
CreateFileMapping 객체는 100바이트 프로세스(writer-reader) 간의 데이터 교환을 위해 메모리에 생성됩니다. 및 100바이트에서 동일한 크기의 MapViewOfFile.
첫 번째 쓰기 프로세스는 두 번째 읽기 프로세스에서 추출할 시간이 없는 모든 100바이트 데이터를 메모리에 쓸 수 있습니다.
따라서 CreateFileMapping/MapViewOfFile을 다시 생성하지 않고 할당된 메모리 양을 확장할 수 있는지 여부가 작업입니다.
따라서 첫 번째 프로세스는 릴리스를 기다리지 않고 추가된 볼륨에 계속 쓰고 두 번째 프로세스도 계속 더 읽습니다.
할 수 있다. 더 강조하는 것이 좋습니다.
흠, 조금 정확하지 않습니다.
매핑에는 크기가 전혀 없으며 생성할 때 일반적으로(기본적으로) 작업 중인 파일의 크기와 동일한 최대 크기만 지정됩니다.
보기의 경우 크기는 생성 중에 설정되며 액세스 플래그에 샤머니즘이 있는 경우에만 UnmapViewOfFile 함수 없이 크기를 변경하거나 전혀 변경하지 않을 수 있습니다.
그리고 왜 크기를 전혀 변경합니까?
할 수 있다.
흠, 조금 정확하지 않습니다.
매핑에는 크기가 전혀 없으며 생성할 때 일반적으로(기본적으로) 작업 중인 파일의 크기와 동일한 최대 크기만 지정됩니다.
그게 요점입니다. 글쎄, 나는 만들 때 크기 = 100 바이트가 지정되었다고 썼습니다.
둘째, 물리적 파일로 작업하지 않고 단순히 메모리로 작업합니다. 한 프로세스는 다른 프로세스에 정보를 전달합니다.
그리고 왜 크기를 전혀 변경합니까?
작동하는 동안 할당된 메모리 는 모두 100바이트로 채워집니다. 그러나 데이터가 새 것으로 나타나므로 추가해야 합니다. 따라서 추가하려면 이 볼륨을 확장해야 합니다.
그래서 중간 복사 및 다시 생성에 의존하지 않고 할당된 100바이트를 확장하는 방법을 묻고 있습니다.
나는 반전으로 이해했다. 다시 하기만 하면 됩니다. CreateFileMapping 개체 자체는 어떻습니까? 그것으로 확장하기 위해 닫지 않고 밝혀 질 것입니까?
.
아마도 재생산만 가능합니다.
.
BUT: 대용량 스파스 파일(예: 2GB)을 생성하는 경우
그러면 모든 것이 괜찮을 것입니다. 그러나 파일의 끝은 시스템 파일 크기 밖에서 이해해야 합니다.
.
그러나 파일에서 읽는 프로세스를 동기화하는 방법을 묻는 것이 이미 필요합니다.
저것들. 데이터의 일부가 기록되어 있다는 것을 배우는 방법과 위치.
대체로 그러한 볼륨은 필요하지 않습니다.
프로세스는 비동기적으로 쓰기/읽기만 합니다. 그리고 독자가 모든 것을 긁어 모을 때까지 작가가 불편함을 느끼지 않도록 방법이 필요합니다.
즉, 내용을 변경하지 않고 배열을 확장하려면 ArrayResize 와 같은 것이 필요합니다. 판독기가 모든 데이터를 가져오자 마자 메모리는 다시 처음부터 쓰기에 사용할 수 있습니다.
그러나 파일에서 읽는 프로세스를 동기화하는 방법을 묻는 것이 이미 필요합니다.
저것들. 데이터의 일부가 기록되어 있다는 것을 배우는 방법과 위치.
나는이 문제를 즉시 해결했습니다.
그러나 크기가 동적 인 증가와 함께 아직까지는 아닙니다 :(
Vadim (Zhunko)이 그렇게 관대하다면 그가 어떤 기능을 사용해야하는지 알려 주셨으면합니다 ...이것은 2기가 파일이 디스크에서 0바이트를 차지함을 의미합니다.
흠. 그리고 파일을 전송된 파일의 최대 크기로 설정합니다.
데이터가 불가능합니까?
반복합니다: 희소 파일과 같은 것이 있습니다...
이것은 2기가 파일이 디스크에서 0바이트를 차지함을 의미합니다.
나는 파일을 사용하지 않으며 모든 것이 메모리를 통해 수행됩니다. 이미 세 번 이상 썼습니다.
// 더 쉽게 만드는 경우
CreateFileMapping( INVALID_HANDLE_VALUE , NULL, PAGE_READWRITE, 0, FILE_SIZE, "로컬\\페이지");
이 FILE_SIZE는 쉬지 않습니다. 그를 자신에게 구체적으로 묶습니다.
Sparse에 대해 읽었는데 유용할 수 있습니다. 동적으로 확장할 수 있다면.
그게 요점입니다. 글쎄, 나는 만들 때 크기 = 100 바이트가 지정되었다고 썼습니다.
둘째, 물리적 파일로 작업하지 않고 단순히 메모리로 작업합니다. 한 프로세스는 다른 프로세스에 정보를 전달합니다.
무슨 상관이야? 본질은 동일합니다. 단지 infa가 디스크가 아닌 메모리에 기록된다는 것뿐입니다. 마찬가지로 CreateFile을 통해 열린 핸들로 작업이 발생합니다.
여기(메모리에 파일을 생성할 때)에서 가능한 최대 크기를 지정해야 하며 그 이상은 정보가 없을 것입니다.
작동하는 동안 할당된 메모리는 모두 100바이트로 채워집니다.
뭐가 문제 야? 100바이트의 오프셋으로 다른 보기를 만들었지만 매핑(즉, 파일)의 크기에서 미리 고려해야 합니다.
나는 반전으로 이해했다. 다시 하기만 하면 됩니다. CreateFileMapping 개체 자체는 어떻습니까? 그것으로 확장하기 위해 닫지 않고 밝혀 질 것입니까?
확장하는 것은 잘못되었습니다. 크기가 이미 고려되어야합니다.