흠, 묻기 민망합니다. WinAPI Sleep이 그것과 어떤 관련이 있습니까? 마이크로초 슬립 에 대해 이야기할 때 프로세서에 대해 개별적으로 타이머의 빈도를 결정하고 반복 횟수를 계산할 수 있습니다. 즉, mql에서 자신의 MicrosecondCount를 작성할 수 있지만 요점이 무엇입니까? 표준형이면 충분합니다.
흠, 묻기 민망합니다. WinAPI Sleep이 그것과 어떤 관련이 있습니까? 마이크로초 슬립 에 대해 이야기할 때 프로세서에 대해 개별적으로 타이머의 빈도를 결정하고 반복 횟수를 계산할 수 있습니다. 즉, mql에서 자신의 MicrosecondCount를 작성할 수 있지만 요점이 무엇입니까? 표준형이면 충분합니다.
이 6명의 Expert Advisors를 실행하려면 터미널에서 4Gb 이상의 메모리가 필요했습니다. 이것은 초기화에만 필요하지만 이러한 Expert Advisors의 작업에는 필요하지 않습니다. 전문가 고문이 있는 터미널을 시작한다고 상상해보십시오. 정직한 무료 4Gb RAM이 없으면 거의 재앙입니다.
이제 소스 코드에서 이 줄의 주석을 제거합니다.
if (Sequence.Init()) // Раскомментируйте для последовательного выполнения.
fxsaber : 주어진 간격으로 틱의 이력을 조회하는 메모리 소모 측면에서 가장 저렴한 방법을 추천하십시오.
내 생각에 당신은 저렴하지만 빠르게 메모리를 확보할 수 있는 방법을 찾고 있는 것이 아닙니다.
확인 옵션으로:
- 동적 배열 MqlTick Ticks[]를 클래스에 래핑하고 new(즉, 동적 개체)를 통해 개체를 만들고 필요하지 않은 경우 삭제
- 동일하지만 구조가 있지만 로컬 범위 (함수 또는 로컬 블록 { } - 또는 한 번의 반복이 있는 루프? )에서 구조는 클래스처럼 작동하지 않습니다. - 내 EA 코드의 대부분을 다음과 같이 다시 작성 클래스에서 벗어나 데이터 구조를 교체함으로써 최적화 속도가 상당히 빨라졌습니다. 아마도 주관적으로 새 빌드가 더 빠르게 작동할 수 있을 것입니다.
알겠습니다. 다시 말하겠습니다. mql 내에서는 프로세서의 클럭 속도에 따라 대략적으로 가능합니다.
그러나 PWM은 어떻습니까? - 일정한 주파수 및 가변 듀티 사이클의 펄스 신호.
지속성을 설정하지 않습니까?
시작하려면 WinAPI 절전 기능이 무엇이며 실제로 어떤 역할을 하는지 읽어 보십시오.
PS Windows는 실시간 시스템이 아닙니다.
시작하려면 WinAPI 절전 기능이 무엇이며 실제로 어떤 역할을 하는지 읽어보십시오.
PS Windows는 실시간 시스템이 아닙니다.
흠, 묻기 민망합니다. WinAPI Sleep이 그것과 어떤 관련이 있습니까?
마이크로초 슬립 에 대해 이야기할 때
프로세서에 대해 개별적으로 타이머의 빈도를 결정하고 반복 횟수를 계산할 수 있습니다.
즉, mql에서 자신의 MicrosecondCount를 작성할 수 있지만 요점이 무엇입니까? 표준형이면 충분합니다.
흠, 묻기 민망합니다. WinAPI Sleep이 그것과 어떤 관련이 있습니까?
마이크로초 슬립 에 대해 이야기할 때
프로세서에 대해 개별적으로 타이머의 빈도를 결정하고 반복 횟수를 계산할 수 있습니다.
즉, mql에서 자신의 MicrosecondCount를 작성할 수 있지만 요점이 무엇입니까? 표준형이면 충분합니다.
컨텍스트 전환 없이 보류 중인 절전 모드는 코어를 100% 소모합니다.
그것은 끔찍한 프로그래밍 기술입니다. 신은 그런 코드가 시장에 스며드는 것을 금지합니다.
컨텍스트 전환 없이 보류 중인 절전 모드는 코어를 100% 소모합니다.
그것은 끔찍한 프로그래밍 기술입니다. 신은 그런 코드가 시장에 스며드는 것을 금지합니다.
그리고 아무도 그 하드코어 를 부정하지 않았어 ))
컨텍스트 스위칭의 예를 보여주면 개선할 수 있습니까?
다음은 2개의 코어와 4개의 스레드가 할당된 VirtualBox에서 µsSLEEP(µsRange)의 CPU 사용량입니다.
광부는 더 심하게 화상을 입습니다))
거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼
라이브러리: 시퀀스
fxsaber , 2020.10.13 12:54
대부분의 VPS를 죽일 EA의 예.우리는 다양한 기호의 여러 차트에서 이를 출시합니다. 이 작업을 자동화하기 위해 inAmount = 5 와 함께 이 스크립트 를 사용했습니다.
결과.
이 6명의 Expert Advisors를 실행하려면 터미널에서 4Gb 이상의 메모리가 필요했습니다. 이것은 초기화에만 필요하지만 이러한 Expert Advisors의 작업에는 필요하지 않습니다. 전문가 고문이 있는 터미널을 시작한다고 상상해보십시오. 정직한 무료 4Gb RAM이 없으면 거의 재앙입니다.
이제 소스 코드에서 이 줄의 주석을 제거합니다.
따라서 Expert Advisor를 순차적으로 초기화할 수 있습니다.
우리는 결과를 봅니다(재컴파일 후).
Expert Advisors 출시 당시 터미널의 메모리 사용량을 2.5Gb 이상 줄이는 것이 가능했습니다. VPS 재해(및 약한 가정용 기기)의 가능성이 크게 감소했습니다.
이것이 두 출시가 역학적으로 보이는 방식입니다.
순차적 실행은 전체 초기화 시간을 늘렸지만 터미널이 엄청난 RAM 소비를 방지하도록 관리했습니다.
위쪽 및 아래쪽 그래프는 병렬 초기화(높은 왼쪽 피크)와 6개의 연속 초기화(6개의 중간 피크) 과정을 명확하게 보여줍니다.
위협 실험 중에 수면과 관련된 불쾌한 뉘앙스가 드러났습니다. 출처를 참조하십시오.
CopyTicks를 사용한 후 강제로 메모리 해제를 어떻게든 허용해 주시길 부탁드립니다. 그런 수면 목발을 만들지 않기 위해.
주어진 간격으로 틱의 이력을 조회하는 메모리 소모 측면에서 가장 저렴한 방법을 추천하십시오.
내 생각에 당신은 저렴하지만 빠르게 메모리를 확보할 수 있는 방법을 찾고 있는 것이 아닙니다.
확인 옵션으로:
- 동적 배열 MqlTick Ticks[]를 클래스에 래핑하고 new(즉, 동적 개체)를 통해 개체를 만들고 필요하지 않은 경우 삭제
- 동일하지만 구조가 있지만 로컬 범위 (함수 또는 로컬 블록 { } - 또는 한 번의 반복이 있는 루프? )에서 구조는 클래스처럼 작동하지 않습니다. - 내 EA 코드의 대부분을 다음과 같이 다시 작성 클래스에서 벗어나 데이터 구조를 교체함으로써 최적화 속도가 상당히 빨라졌습니다. 아마도 주관적으로 새 빌드가 더 빠르게 작동할 수 있을 것입니다.
- 소멸자에 ArrayFree()를 추가해 보십시오.
내 생각에 당신은 저렴하지만 빠르게 메모리를 확보할 수 있는 방법을 찾고 있는 것이 아닙니다.
터미널 메모리를 해제하지 않습니다. MQL 변수는 그것과 아무 관련이 없습니다.
터미널 메모리를 해제하지 않습니다. MQL 변수는 이와 관련이 없습니다.
크기를 강제로 설정하면 = 1 ?
그리고 당신이 할 경우
그리고 만약
CopyTicks를 호출한 후 터미널은 모든 데이터를 몇 초 동안 메모리에 보관합니다. 누군가가 진드기 기록 을 다시 읽고 싶은 경우.
저것들. 터미널이 소비하는 메모리의 양은 MQL 변수의 크기에 어떤 식으로든 의존하지 않습니다.
작업은 터미널이 강제로 여유 메모리를 사용하도록 하는 것입니다.