다이렉트X - 페이지 8

 
Реter Konow :

여기에서 어제 유리의 예를 만들었습니다. 그 셀은 전체 창의 캔버스에 관계없이 다시 그려집니다. https://www.mql5.com/ru/forum/333652/page4

셀을 개별적으로 다시 그리면 셀이 모두 다시 그려지는 경우에도 40fps에서 부하를 20% 이내로 유지하는 것으로 나타났습니다(비디오 녹화로 인해 비디오에 더 많음). 이 접근 방식을 사용하는 유리의 일반적인 역학은 대략 5-10% 정도 배송됩니다.

큰 영역(~ 500 * 500 px)을 일시 중지(~ 40+ fps) 없이 높은 빈도로 다시 그리는 경우에만 부하가 높습니다. 다시 그리기 영역이 지연되거나 감소하면 로드가 몇 배 감소합니다.

귀하의 예에서 유리는 물론 깊이를 포함하여 매우 잘립니다. 웃기지만 분명히 DOM 그리기는 OpenCL을 사용하여 모든 코어에서 계산되어야 하고, 게다가 계산이 별도의 셀로 나누어져 있기 때문입니다. 하지만 여기에서는 제가 이론가입니다.

 
Aleksey Vyazmikin :

귀하의 예에서 유리는 물론 깊이를 포함하여 매우 잘립니다. 웃기지만 분명히 DOM 그리기는 OpenCL을 사용하여 모든 코어에서 계산되어야 하고, 게다가 계산이 별도의 셀로 나누어져 있기 때문입니다. 하지만 여기에서는 제가 이론가입니다.

알겠습니다. 더 많은 세포로 유리잔을 만들고 다시 확인하겠습니다.

 
Реter Konow :

알겠습니다. 더 많은 세포로 유리잔을 만들고 다시 확인하겠습니다.

정적이 아니라 동적

 
Rafil Nurmukhametov :

프로세서가 잘로드됩니다. 이전 그림에서 열린 위치를 볼 수 있습니다. 가격 주변의 프레임은 마젠타 색이며 위치는 빨간색으로, 위치는 아래 그림에서 검은 색입니다.

내 감정에 따르면 그러한 이미지는 1-3 밀리 초를 넘지 않아야합니다. 더 길다면 어딘가에 약간의 잼이 있습니다.
 
Rafil Nurmukhametov :

정적이 아니라 동적

"동적"이란 무엇을 의미합니까? 모든 셀이 동시에 값을 변경하지 않도록? 이해하지 못했습니다.

 
Nikolai Semko :
내 감정에 따르면 그러한 이미지는 1-3 밀리 초를 넘지 않아야합니다. 더 길다면 어딘가에 약간의 잼이 있습니다.

그래서 당신은 나를 위해 완벽함의 기준을 높였습니다... 6-8밀리초로 낮출까요?

 
Реter Konow :

"다이나믹"이란 무엇을 의미합니까? 모든 셀이 동시에 값을 변경하지 않도록? 이해하지 못했습니다.

현재 가격 이 MT5 오더북과 같이 중간이 아닌 셀에서 움직이도록

 
Rafil Nurmukhametov :

현재 가격 이 MT5 오더북과 같이 중간이 아닌 셀에서 움직이도록

즉, 중앙 집중화 없이. 음, 선물 상품에는 정말 그런 유리가 필요합니다. 확인. (이것은 로드 확인을 위한 모의일 뿐입니다).

 
Rafil Nurmukhametov :

그래서 당신은 나를 위해 완벽함의 기준을 높였습니다... 6-8밀리초로 낮출까요?

너무 많아. 3개도 많네요. 30fps에서 6-8 - CPU 시간의 20-30%.
가능한 한 ArrayCopy 를 최대한 사용할 필요가 있습니다. 투명도는 필요한 경우에만 최소한으로 사용해야 합니다.
프로파일링을 통해 실행하고 최대값이 어디인지 확인할 수 있습니다. 프로세서 리소스 누출.
물론 Peter가 맞습니다. 변경 사항이 발생한 로컬에서 다시 그려야 하지만 전체 캔버스가 매번 다시 형성되어야 하는 것은 아닙니다.
그리고 일반적으로 DX를 사용하면 백분율을 매우 낮출 수 있습니다.
 

좋아, 나는 편집기에서 유리를 만들었습니다. 2시간이 걸렸다. 많은 소란. 도구를 추가하여 프로세스 속도를 4배 높일 수 있습니다.

확인했습니다.

결과: 초당 40프레임의 빈도로 모든 요청 및 입찰 셀과 하나의 가격 셀에서 지속적으로 변경되는 20% 미만의 로드. (녹화가 켜져 있을 때 부하가 5-7% 증가합니다).


나는 내 의견을 반복합니다. 실제 조건에서 부하는 시장의 활동에 따라 5-10%가 될 것입니다.

파일:
GUI_Expert.ex5  600 kb