MT5와 속도 - 페이지 85

 
Anton :

@Anton , 많은 일반 함수에서 문자 대신 NULL을 지정할 수 있습니다. 실행 속도에 영향을 줍니까?

 SymbolInfoTick ( NULL , Tick);

SymbolInfoTick ( _Symbol , Tick);

아니면 터미널/테스터에 차이가 없습니까?

 
fxsaber :

@Anton , 많은 일반 함수에서 문자 대신 NULL을 지정할 수 있습니다. 실행 속도에 영향을 줍니까?

아니면 터미널/테스터에 차이가 없습니까?

확실히 말할 수는 없지만 직관적으로 나는 어디에도 NULL을 쓰지 않습니다.

이론적으로는 중요하지 않습니다. 컴파일하면 NULL이 정상값으로 바뀌는 것 같은데, 명확하지 않은 것을 눈으로 보기는 싫다.

 
Alexey Viktorov :

확실히 말할 수는 없지만 직관적으로 나는 어디에도 NULL을 쓰지 않습니다.

이론적으로는 중요하지 않습니다. 컴파일하면 NULL이 정상값으로 바뀌는 것 같은데, 명확하지 않은 것을 눈으로 보기는 싫다.

비슷하게. 하지만 나는 속도가 중요하다.

 

나는 SymbolInfoTicks 가 주말에 두 번째 타이머에서 어떻게 느려질 수 있는지 이해하지 못합니다!

 2021.02 . 28 21 : 33 : 02.993 :: SymbolInfoTick ( _Symbol ,Tick) = 171 mcs.

다양한 기호로 구성된 20개의 차트가 각각에 Expert Advisor가 실행되며 두 번째 타이머에서는 해당 기호의 눈금만 사용합니다.

쉬는 날에는 왜 여기에서 속도를 늦추세요?!


화면의 ZY 3374MB - 이것은 내가 일주일 동안 틱을 요청한 1시간 전입니다. 이러한 자원 절약.

 
fxsaber :

나는 SymbolInfoTicks 가 주말에 두 번째 타이머에서 어떻게 느려질 수 있는지 이해하지 못합니다!

다양한 기호로 구성된 20개의 차트가 각각에 Expert Advisor가 실행되며 두 번째 타이머에서는 해당 기호의 눈금만 사용합니다.

쉬는 날 왜 여기에서 속도를 줄이지?!

너:

  1. 정보 부족
  2. 4개의 코어에서 병렬로 작동하는 수십 개의 Expert Advisors 스레드(하이퍼스레딩이 있는 8개는 무시할 수 있음)
  3. 오랜 기다림에서 다시 단일 이상값을 찾았습니까?
  4. 스레드 관리자의 요청에 따라 다시 단일 임의 시스템 대기 시간이 발생합니까?


 
Renat Fatkhullin :

너:

  1. 정보 부족
  2. 4개의 코어에서 병렬로 작동하는 수십 개의 Expert Advisors 스레드(하이퍼스레딩이 있는 8개는 무시할 수 있음)
  3. 오랜 기다림에서 다시 단일 이상값을 찾았습니까?
  4. 스레드 관리자의 요청에 따라 다시 단일 임의 시스템 대기 시간이 발생합니까?

SymbolInfoTick 이 제동을 위한 선택 기능인 이유가 궁금합니다.

 
fxsaber :

SymbolInfoTick 이 제동을 위한 선택 기능인 이유가 궁금합니다.

아니다.

프로그램의 어느 곳에서나 항상 임의의 지연을 포착합니다. 모든 것을 따라 시작하고 Windows의 현실에 경악하십시오. 이미 여러 번 자세히 설명했습니다.

우리는 또한 시스템 WinAPI 기능에서 0ms 대신 60-80ms의 임의 방출을 포착했을 때 놀랐습니다.


이제 우리는 대부분의 Windows 솔루션을 특별히 탈지된 Windows Server 2019 Core 버전으로, .NET Core 웹 프로젝트를 Linux로 대규모로 전송하고 있습니다. 그 결과 시스템 리소스가 크게 절약되고 시스템 대기 시간이 크게 줄어듭니다.

MataTrader 5 터미널 그리스 제거의 첫 번째 단계로 작업 관리자를 도입하여 리소스 소비를 즉석에서 모니터링하기 시작했습니다. 우리는 더 많은 정보를 수집합니다.

우리는:

  • 초과 흐름을 너무 오랫동안 유지
  • 과도한 스케일링
  • 캐시 과다 노출
다음 릴리스에서는 일부 리소스 문제를 단계별로 수정할 것입니다.
 
Alexey Viktorov :

이론적으로는 중요하지 않습니다. 컴파일하면 NULL이 정상값으로 바뀌는 것 같은데, 명확하지 않은 것을 눈으로 보기는 싫다.

이론적으로는 영향을 미치기만 하면 되지만 영향을 미치지는 않습니다.

 SymbolInfoTick ( _Symbol , Tick);

_Symbol은 값에 의해 전달되지 않고(도움말의 설명에서 다음과 같이) 참조 에 의해 전달됩니다.

 
Renat Fatkhullin :

아니다.

프로그램의 어느 곳에서나 항상 임의의 지연을 포착합니다. 모든 것을 따라 시작하고 Windows의 현실에 경악하십시오. 이미 여러 번 자세히 설명했습니다.

감사합니다. 확인하겠습니다.


그러한 기능을 고려하십시오.

 int SymbolInfoTicks( const string Symb, MqlTick &Ticks[] ); // Возвращает свежие тики (не более сотни), пришедшие с предыдущего вызова этой функции.


간격 없이 FRESH 틱을 얻는 문제는 이제 CopyTicks*를 통해서만 해결됩니다. 이것은 이 공통 작업에 대한 매우 성가신 메커니즘입니다. 참새에게 대포처럼.

따라서 브레이크, 거대한 캐시 보유 등이 있습니다.

 
A100 :

이론적으로는 영향을 미치기만 하면 되지만 영향을 미치지는 않습니다.

_Symbol은 값에 의해 전달되지 않고(도움말의 설명에서 다음과 같이) 참조 에 의해 전달됩니다.

함수 내에서 여전히 해당 눈금 기호로 이동해야 합니다. 문자열 변수를 구문 분석할 시간입니다. NULL을 사용하면 이것은 불필요합니다.