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

 
Alexey Navoykov :
MQL에서 그러한 프로젝트가 얼마나 될 것인지 상상하는 것은 무섭습니다. 예, 본격적인 IDE에는 다양한 컴파일 모드가 있습니다. 대부분의 경우 디버깅으로 충분하지만 릴리스 빌드를 의미합니다. 그러나 MT에서는 이것을 기다릴 것입니다.
또한 미리 컴파일된 파일이 사용되므로 후속 빌드가 확실히 더 빠릅니다.

플러스 측면에서 나는 일반적인 gedit에 작성하고 디버깅을 위해 콘솔도 가져오고 gdb로 직접 디버그하고 gcc 콘솔에서 링크 및 빌드하기도 합니다. 때로는 IDE에서 QtCreator를 사용하지만 이것은 다음과 같은 경우입니다. GUI를 사용하여 무언가를 작성하거나 디버그해야 합니다. :)

1년도 채 되지 않아 이 결정을 내리게 되었습니다. 무거운 IDE를 로드하는 것보다 일반 텍스트 편집기를 로드하고 수정하거나 작성하는 것이 더 쉽다는 것을 깨달았을 때 ...

 

Alexey Navoykov :
Насчёт ВСЕХ кодов - вы не погорячились? Откуда такая уверенность? Вы их все пробовали?

많이 노력했다...

알겠습니다. 컴퓨터에 있을 때 재생할 코드를 알려 드리겠습니다. 그러나 나는 약한 하드웨어에서 수십 ms에 대한 당신의 이야기에 이미 혼란스러워합니다. 우리는 정말로 같은 것에 대해 이야기하고 있습니까? .mq5 스크립트 파일? 그리고 어떤 프로세서가 있습니까?

컴퓨터에 있을 때 데이터를 업데이트하겠습니다.
 
Slawa :
무엇을 반환해야 합니까?
어떤 이유로 든 내역에 대한 디버그는 본격적인 시각화를 발생시킵니다. 따라서 true가 설명합니다. 추가로 __DEBUG__를 사용할 것입니다. 문서에는 시각적 디버깅에 대한 설명이 거의 없습니다.
 
이 항목과 관련이 없는 댓글은 " 메셔 도움말 "로 이동되었습니다.
 

일반적으로 MT5에 대한 대규모 프로젝트를 찾을 때까지 코드 베이스에서 검색했습니다. 그러나 나를 놀라게 한 것은 고문과 지표의 섹션이 본질적으로 같은 사람의 공예품으로 흩어져 있다는 것입니다. 그리고 그는 몇 년 동안 매일 그것들 중 몇 개를 휘젓고 있습니다! 그런 열의가 어디에서 나오는지, 왜 그런 건지... MQ가 이걸로 추가금을 주는 건 아닐까, xs... 물론, 모든 것이 한 칸에 찍혀있지만, 개인적으로는 그냥 설명만 하는 걸 망설였을 것 같다. 및 스크린샷)

그곳에서 그의 조언자들의 무게는 약 150-200kb이지만, 먼저 코드가 다소 분산되어 있고 반복되는 단편이 많이 있습니다. 뭐, 제 기준입니다. 몇 배는 덜 걸릴 것입니다. 따라서 소스 코드의 양은 조건부 지표일 뿐입니다. 둘째, 코드 자체는 가상 기능 , 템플릿, 동적 개체 및 포인터가 없이 간단합니다. 저것들. 거의 모든 코드를 인라인할 수 있습니다. 600-700ms 영역에서 매우 빠르게 컴파일됩니다. 글쎄, 일반적으로 정말 방대하고 다소 복잡한 예를 찾아야합니다. 그리고 내 개발 중 새 컴파일러에 대한 프로젝트만 완료하고 나머지는 모두 이전 컴파일러에서 사용하며 현재 상황에서 수정에 시간을 낭비하는 편리함을 여전히 보지 못합니다.

 
Alexey Navoykov :

...

글쎄, 일반적으로 정말 방대하고 다소 복잡한 예를 찾아야합니다. 그리고 내 개발 중 나는 새 컴파일러에 대한 프로젝트만 완료했고 다른 모든 것은 이전 컴파일러에서 사용하며 현재 상황에서 수정에 시간을 낭비하는 편리함을 여전히 보지 못합니다.

최신 버전: 그래픽 인터페이스 IX: 진행률 표시줄 및 선 그래프 요소(2장)

 

오 감사. 그건 그렇고, 프로젝트 자체는 개념과 구현 모두에서 세련됩니다. 일반적으로 첫 번째 테스트 Expert Advisor TestLibrary01은 6.5초 만에 컴파일되었습니다. 빠르게. 물론 이 EA에서 실제로 사용하는 코드의 양을 추정하는 것은 여전히 필요합니다. 그리고 다시, "빠른"이라는 단어는 이전 빌드의 컴파일 속도와 비교할 때 다소 우스꽝스럽게 보일 것입니다. 거기에서 그것은 즉각적입니다. 이제 직접 보고 싶으신 분들을 위해 컴파일러 버전 1159를 첨부하겠습니다. 파일 이름을 자연스럽게 바꾸시면 됩니다.

저것들. 실제로 다음과 같이 결론을 내릴 수 있습니다. 물론 컴파일 기간은 코드의 양과 복잡성에 따라 크게 다를 수 있지만 한 가지는 변경되지 않은 상태로 유지됩니다. 새 컴파일러 에서는 훨씬 더 느립니다. 옛날 것보다. 동시에 이것은 프로그램 속도에 실질적인 이점을 제공하지 않습니다. 나는 그것을 확인했습니다. 누구든지 달리 증명하고 싶다면 - 깃발을 들고.

파일:
 
Alexey Navoykov :

오 감사. 그건 그렇고, 프로젝트 자체는 개념과 구현 모두에서 세련됩니다. 일반적으로 첫 번째 테스트 Expert Advisor TestLibrary01은 6.5초 만에 컴파일되었습니다. 빠르게. 물론 이 EA에서 실제로 사용하는 코드의 양을 추정하는 것은 여전히 필요합니다. 그리고 다시, "빠른"이라는 단어는 이전 빌드의 컴파일 속도와 비교할 때 다소 우스꽝스럽게 보일 것입니다. 거기에서 그것은 즉각적입니다. 이제 직접 보고 싶으신 분들을 위해 컴파일러 버전 1159를 첨부하겠습니다. 파일 이름을 자연스럽게 바꾸시면 됩니다.

저것들. 실제로 다음과 같이 결론을 내릴 수 있습니다. 물론 컴파일 기간은 코드의 양과 복잡성에 따라 크게 달라질 수 있습니다. 그러나 한 가지는 변경되지 않았습니다. 이전 컴파일러에서는 새 컴파일러보다 훨씬 빠릅니다. 동시에 이것은 프로그램 속도에 실질적인 이점을 제공하지 않습니다. 나는 그것을 확인했습니다. 누구든지 달리 증명하고 싶다면 손에 깃발이 있습니다.

물론 MetaTrader 5 에서 가장 복잡한 내 프로젝트 도 컴파일하는 데 오랜 시간이 걸립니다. 심지어 11 초까지 갑니다. 정확히 같은 버전이지만 MetaTrader 4 에서는 최대 25 배 더 빠릅니다.

예를 들어, 동일한 프로젝트.

메타 트레이더 5 :

 0 error(s), 0 warning(s), compile time: 11054 msec               1        1

//---

메타 트레이더 4 :

 0 error(s), 0 warning(s), compile time: 434 msec                 1        1

//---

이것이 무엇과 관련되어 있는지는 아직 명확하지 않습니다. 테스트용 자료를 준비하고 확인을 위해 서비스 데스크에 보낼 수 있습니다. 프로젝트 코드를 표시하지 않으려면 이 시리즈 기사의 코드를 예로 사용할 수 있습니다.

 
Anatoli Kazharski :

물론 MetaTrader 5 에서 가장 복잡한 내 프로젝트도 컴파일하는 데 오랜 시간이 걸립니다. 심지어 11 초까지 갑니다. 정확히 같은 버전이지만 MetaTrader 4 에서는 최대 25 배 더 빠릅니다.

예를 들어, 동일한 프로젝트.

메타 트레이더 5 :

//---

메타 트레이더 4 :

//---

이것이 무엇과 관련되어 있는지는 아직 명확하지 않습니다. 테스트를 위한 자료를 준비하고 확인을 위해 서비스 데스크에 보낼 수 있습니다. 프로젝트 코드를 표시하지 않으려면 이 시리즈 기사의 코드를 예로 사용할 수 있습니다.

MT4가 32비트라는 사실 때문에 "완전히 최적화"되는 슬픈 운명을 겪지 않았다는 가정이 있습니다. 결국, 내가 아는 한 이 컴파일러의 의사 최적화는 64비트 환경에서 작업을 개선하는 것으로 선언되었습니다. 그건 그렇고, 32 비트 버전의 MT5를 확인해야합니다. 아마도 모든 것이 괜찮을 것입니다. 하지만 지금은 그 선택권이 없습니다.

32비트 버전의 메타에디터를 가지고 계신 분은 공유 부탁드립니다.

 
Anatoli Kazharski :

물론 MetaTrader 5 에서 가장 복잡한 내 프로젝트도 컴파일하는 데 오랜 시간이 걸립니다. 심지어 11 초까지 갑니다. 정확히 같은 버전이지만 MetaTrader 4 에서는 최대 25 배 더 빠릅니다.

예를 들어, 동일한 프로젝트.

메타 트레이더 5 :

//---

메타 트레이더 4 :

//---

이것이 무엇과 관련되어 있는지는 아직 명확하지 않습니다. 테스트를 위한 자료를 준비하고 확인을 위해 서비스 데스크에 보낼 수 있습니다. 프로젝트 코드를 표시하지 않으려면 이 시리즈 기사의 코드를 예로 사용할 수 있습니다.

이것은 코드 최적화 입니다.

metaeditor.ini 필드 [Experts]에 OPTIMIZE=0을 쓰면 컴파일 속도는 4-ke와 동일합니다. 컴파일하는 데 20초가 걸리는 일부 프로젝트가 있으며 일부는 끝없는 최적화 주기에 포함됩니다. :)