오류, 버그, 질문 - 페이지 1337

 
Vladimir Pastushak :

개발자는 유머가 없다

나에게 이것은 로딩이고 "다운로드"는 나무를 오른쪽이나 왼쪽으로 흔드는 것과 같은 것입니다.

그것이 "흔들림"이라면 나무와 비교할 수 있습니다. "오른쪽 / 왼쪽"- 유머도 있습니다 (완전히 "오른쪽 / 왼쪽")
 
Artyom Trishkin :
그것이 "흔들림"이라면 나무와 비교할 수 있습니다. "오른쪽 / 왼쪽"- 유머도 있습니다 (완전히 "오른쪽 / 왼쪽")

보트에서 "그네",

그리고 약 ( "오른쪽 / 왼쪽으로"융합) 내 캔트가 아니라 파이어 폭스 머프.

 
프로젝트 폴더에 있는 ME에서 파일을 컴파일하면 해당 Experts, Indicators, Scripts 폴더에 컴파일된 파일이 생성됩니다. 그러나 별도의 컴파일러로 컴파일하면 이런 일이 발생하지 않습니다. 컴파일된 파일은 소스 폴더에 생성됩니다. 이런 식이어야합니까 아니면 적절한 키를 사용해야합니까?
 

BR-8.15 및 BR-10.15 문자에서 버그가 있고 나머지 BR 기간은 정상입니다.

빌드 1150 리얼 오프닝 win7 x64 max

예고편의 .mp4 비디오 파일.

+ 기간 M1(예:)

버튼에서 손을 떼면 - "새 틱이 도착하면 끝으로 차트 자동 스크롤" - 차트가 처음으로 이동합니다.

그런 다음 "END" 키를 누르면 차트가 1초 동안 끝으로 이동하고 다시 차트가 처음으로 이동합니다.

파일:
br-bag.zip  7609 kb
br-bag2.zip  3720 kb
 
Alexey Navoykov :

여하튼 전에는 주의를 기울이지 않았지만, 이제는 대규모 클래스 객체 배열로 작업할 때 지나치게 큰 메모리 소비를 발견했습니다. sizeof()에서 확인 - 절대적으로 비어 있는 클래스는 16바이트를 차지합니다. 그리고 여기의 클래스가 관리된다는 점을 감안할 때 포인터에 8바이트를 더 추가합니다. 총 24바이트. 어쩐지 너무 힘들다.

나는 문서를 조사했고 이것이 내가 찾은 것입니다.

질문은 다음과 같습니다. 상속에 참여하지 않는 단순 클래스 에 가상 함수 테이블이 필요한 이유는 무엇입니까? 결국 컴파일 단계에서 이러한 클래스에 대한 모든 것이 알려져 있습니다.

그 안에 있는 메서드는 가상 메서드와 정확히 같은 방식으로 호출됩니다. 테이블에 대한 추가 액세스 리디렉션이 있습니다. 그리고 자랑스러운 컴파일러 최적화는 어디에 있습니까? 그렇다면 어떻게 C++과의 성능 비교를 주장할 수 있습니까?

강조 표시된 가정은 잘못되었으며 가상 메소드만 테이블을 통해 호출되며 내 진술은 MQL 컴파일러에 대해서만 사실이 아닙니다.
또한 MQL은 테이블을 통하지 않고 일반 함수에 대한 호출로 일부 가상 호출을 수행합니다.
Renat이 쓴 것처럼 MQL의 클래스에는 실제로 항상 8바이트 + 8바이트 메타 정보를 차지하는 가상 테이블이 있습니다.
 
Vladimir Pastushak :

개발자는 유머가 없다

나에게 이것은 로딩이고 "다운로드"는 나무를 오른쪽이나 왼쪽으로 흔드는 것과 같은 것입니다.

감사합니다. "로드 중"으로 수정했습니다.
 
Ilyas :
강조 표시된 가정은 잘못되었으며 가상 메소드만 테이블을 통해 호출되며 내 진술은 MQL 컴파일러에 대해서만 사실이 아닙니다.
또한 MQL은 테이블을 통하지 않고 일반 함수에 대한 호출로 일부 가상 호출을 수행합니다.
Renat이 쓴 것처럼 MQL의 클래스에는 실제로 항상 8바이트 + 8바이트 메타 정보를 차지하는 가상 테이블이 있습니다.
당신의 답변에 감사드립니다. 그런데도 아무에게도 상속받지 않고 가상화에 참여하지 않는 간단한 클래스에 테이블이 필요한 이유를 설명해 주시겠습니까? Renat은 가상 소멸자를 언급했지만 이 경우 가상화할 것이 없습니다. 소멸자는 하나뿐이므로 인라인될 수도 있습니다. 맞죠? 따라서 8바이트의 메타데이터만 남게 됩니다.
 
Alexey Navoykov :
당신의 답변에 감사드립니다. 그런데도 아무에게도 상속받지 않고 가상화에 참여하지 않는 간단한 클래스에 테이블이 필요한 이유를 설명해 주시겠습니까? Renat은 가상 소멸자를 언급했지만 이 경우 가상화할 것이 없습니다. 소멸자는 하나뿐이므로 인라인될 수도 있습니다. 맞죠? 따라서 8바이트의 메타데이터만 남게 됩니다.
클래스가 상속에 참여하지 않으면 해당 소멸자가 가상이 아닌 일반 함수로 호출되고 인라인 기준에 해당하는 경우 인라인됩니다.

실행 시스템(MQL 프로그램의 환경)은 클래스가 최소 16바이트를 차지한다는 사실을 고려하여 구축되었습니다.
 
프로젝트 폴더에 있는 ME에서 파일을 컴파일하면 해당 Experts, Indicators, Scripts 폴더에 컴파일된 파일이 생성됩니다. 그러나 별도의 컴파일러로 컴파일하면 이런 일이 발생하지 않습니다. 컴파일된 파일은 소스 폴더에 생성됩니다. 이런 식이어야합니까 아니면 적절한 키를 사용해야합니까?
 

빌드 854 윈도우 10 64 x

시각화로 어드바이저를 테스트할 때 테스트 가 있는 현재 작업자를 제외하고 이전에 열린 다른 창을 닫으려고 하면 테스트가 중단됩니다...

마우스 가운데 버튼과 상황에 맞는 메뉴를 통해 닫기를 시도했습니다...