캔버스 대 레이블 - 페이지 4

 
Maxim Kuznetsov :

Canvas(BitMap)는 모두 다시 그려지거나 복사되고 레이블은 변경된 레이블만 있는 것이 분명합니다. 놀란 이유는?

캔버스는 물고기가 부족하고 적당히 민첩하기 만하면 편리합니다.

드미트리 페도세예프 :
그리고 비교 테스트 없이는 단순한 레이블이 텍스트를 더 빨리 표시할 것이 분명합니다.

물론 나는 이미 이것을 알고 있었다. 그러나 나는 Canvas를 사용하는 것이 철회하는 가장 빠른 방법이라고 확신했습니다. 동시에 테스터에서(테스트된 Expert Advisor의 데이터를 표시할 때), 특히 진드기에서 나에게는 매우 느렸습니다. 물론 레이블을 사용하여 상황을 수정했습니다. 그래서 Canvas가 Label에 비해 얼마나 느린지 알아보기로 했습니다. 이 측정에 따르면 321번이라는 것이 밝혀졌습니다.

 
Mihail Matkovskij :

물론 나는 이미 이것을 알고 있었다. 그러나 나는 Canvas를 사용하는 것이 철회하는 가장 빠른 방법이라고 확신했습니다. 동시에 테스터에서(테스트된 Expert Advisor의 데이터를 표시할 때), 특히 진드기에서 나에게는 매우 느렸습니다. 물론 레이블을 사용하여 상황을 수정했습니다. 그래서 Canvas가 Label에 비해 얼마나 느린지 알아보기로 했습니다. 이 측정에 따르면 321번이라는 것이 밝혀졌습니다.

글쎄, 꿈을 꾸는 이야기꾼은 세계에 거의 없습니까?

 
Dmitry Fedoseev :

글쎄, 꿈을 꾸는 이야기꾼은 세계에 거의 없습니까?

그건 확실합니다!

 
Maxim Kuznetsov :

Canvas(BitMap)는 모두 다시 그려지거나 복사되고 레이블은 변경된 레이블만 있는 것이 분명합니다. 놀란 이유는?

캔버스는 물고기가 부족하고 적당히 민첩하기 만하면 편리합니다.

전체 비트맵을 다시 그리는 이유는 무엇입니까?
레이블을 다시 그리는 것보다 느리다는 것을 증명하기 위해?

올바른 비교를 위해 레이블 크기인 비트맵의 일부만 다시 그려야 합니다.

 
Taras Slobodyanik :

전체 비트맵을 다시 그리는 이유는 무엇입니까?
레이블을 다시 그리는 것보다 느리다는 것을 증명하기 위해?

올바른 비교를 위해 레이블 크기인 비트맵의 일부만 다시 그려야 합니다.

업데이트 방법은 다음과 같습니다.

한번에

 
Maxim Kuznetsov :

업데이트 방법은 다음과 같습니다.

한번에

그래서 업데이트되거나 다시 그려지나요?
업데이트 할 때 브레이크를 본 적이 없습니다.

 
Taras Slobodyanik :

그래서 업데이트되거나 다시 그려지나요?
업데이트 할 때 브레이크를 본 적이 없습니다.

OBJ_BITMAP_LABEL 로 작업할 때 브레이크를 본 적이 없다면 어디에서 말하는 것이 중요합니다. 터미널에서 작업할 때 그렇습니다. 지연은 미미합니다. 그러나 테스터에서 작업을 수행하고 M1의 Model: All ticks 또는 OHLC에서도 ResourceCreate를 사용하여 m_pixels 배열을 지속적으로 전송하면 매우 강력한 효과를 얻을 수 있습니다. 픽셀 작업은 일반적으로 모든 프로그램에서 가장 비싼 것으로 간주됩니다.

 
Maxim Kuznetsov :

업데이트 방법은 다음과 같습니다.

한번에

어, Windows 캔버스는 비디오 버퍼에서 바로 픽셀 단위로 편집할 수 있다는 것을 기억합니다. 와 너무 재미없어

 
Dmitry Fedoseev :

글쎄, 꿈을 꾸는 이야기꾼은 세계에 거의 없습니까?

드미트리, 무언가를 판단하기 전에 모든 것이 어떻게 시작되었는지 이해해야합니다 ...

거래, 자동 거래 시스템 및 거래 전략 테스트에 관한 포럼

오류, 버그, 질문

Mihail Matkovskij , 2021.03.07 14:02

주석은 길이가 완전히 다른(시각적으로) 완전히 동일한 길이의 행을 표시합니다.

논평

코드:

 void OnStart () {
   string str[ 5 ], res= "" ;
   StringInit (str[ 0 ], 50 , 'a' );
   StringInit (str[ 1 ], 50 , 'X' );
   StringInit (str[ 2 ], 50 , '=' );
   StringInit (str[ 3 ], 50 , ' ' );
   StringInit (str[ 4 ], 50 , ':' );
   for ( int i = 0 ; i < 5 ; i++) 
    res += str[i] + "\n" ;
   Comment (res);
}

주석으로 문자열을 시각적으로 동일한 길이로 표시하려면 어떻게 해야 합니까? 예를 들어, 열이 정확히 세로로 정렬되도록 3개의 열로 구성된 테이블을 표시 해야 합니다.

내가 틀리지 않았다면, 어딘가에 50줄 정도라고 되어 있었다...
 
Alexey Viktorov :

드미트리, 무언가를 판단하기 전에 모든 것이 어떻게 시작되었는지 이해해야합니다 ...

내가 틀리지 않았다면, 어딘가에 50줄 정도라고 되어 있었다...

Canvas 기반 디스플레이가 Label 디스플레이를 빠르게 추월하는 예를 더 잘 만드십시오! 내 말을 반박하려면 논리의 법칙에 따라 그 반대를 증명해야 할 것 같습니다. 효과가 있을까요?...

사유: