안녕하세요. 컴퓨터 메모리는 스택 컨텍스트에서 사용하든 힙 컨텍스트에서 사용하든 동일한 성능을 갖습니다. 동적 메모리 자체의 관리는 가비지 수집기의 구현에 따라 다릅니다. 예를 들어 Python(저속 버전)과 같은 참조 카운팅 또는 백그라운드 프로세스(Net CLR)에서 실행 그래프를 우회하여 객체 생성 에포크 분석이 될 수 있습니다. MQL에서 어떤 변형이 사용되는지는 알려져 있지 않지만, 우리는 그것의 극도의 효율성을 가정할 수 있습니다. MQL5 사용자는 삭제 연산자에 직접 액세스할 수 있으므로 GC 자체의 작업이 크게 간소화됩니다. 이와 관련하여 new를 사용할 때 오버헤드에 대한 우려는 헛된 것입니다. 동적 메모리를 자유롭게 사용하십시오.
"스택 오버플로"는 복잡한 재귀를 사용하거나 재귀 알고리즘에 오류가 있는 경우에만 현대 시스템에서 이 경우를 충족할 수 있습니다. 최신 프로그램은 동적 페이지 로딩과 함께 가상 주소 공간에서 항상 보호된 OC 모드로 실행되므로 걱정하지 마십시오. 스택이 끝나지 않습니다. :)
명쾌한 설명 감사합니다. 어떤 이유로 mql에서 스택에 대한 호출이 힙보다 빠르다고 생각했습니다. 특히 가비지 수집기의 구현을 모르기 때문입니다. 따라서 객체 생성 속도, 자동 또는 역학에 사용하는 것이 더 나은 질문이 발생했습니다. 예, 모든 것이 특정 작업에 따라 다르다는 것을 이해하지만, 예를 들어 거래 요청을 보내는 경우를 가정해 보겠습니다. 그리고 우리는 처리 속도를 위해 가능한 한 정확하게 객체를 생성하는 작업을 스스로 설정했습니다. 설명된 거래 주문 방법에 대한 사용자 정의 클래스가 있습니다. 클래스 및 해당 메서드의 인스턴스 수는 기본적으로 우리에게 알려져 있습니다. 그리고 "스택이 끝나지 않을 것"이라고 어떻게 가정합니까?
따라서 질문은 객체를 만들고 삭제하는 가장 좋은 방법은 무엇입니까? 자동 또는 동적? 나는 일반적으로 자동 개체를 종합적으로 제어하는 아이디어를 생각해 냈습니다. 즉, 사용자 정의 함수의 본문에 자동 개체를 선언합니다. 따라서 객체는 스택에 생성되며(이론적으로는 힙보다 빠름) 객체 변수가 사용자 정의 함수에서 선언되기 때문에 자동 삭제 제어에 대해 걱정하지 않습니다. 그리고 자동 객체는 함수의 동적 변수 규칙에 따라 사용자 정의 함수 자체에 의해 소멸되도록 추가 제어됩니다. 여기에서 또한 그것에 대해 생각하는 해당 지부의 참가자들의 적절한 의견을 듣는 것이 바람직할 것입니다.
명쾌한 설명 감사합니다. 어떤 이유로 mql에서 스택에 대한 호출이 힙보다 빠르다고 생각했습니다. 특히 가비지 수집기의 구현을 모르기 때문입니다. 따라서 객체 생성 속도, 자동 또는 역학에 사용하는 것이 더 나은 질문이 발생했습니다. 예, 모든 것이 특정 작업에 따라 다르다는 것을 이해하지만, 예를 들어 거래 요청을 보내는 경우를 가정해 보겠습니다. 그리고 우리는 처리 속도를 위해 가능한 한 정확하게 객체를 생성하는 작업을 설정했습니다. 설명된 거래 주문 방법에 대한 사용자 정의 클래스가 있습니다. 클래스 및 해당 메서드의 인스턴스 수는 기본적으로 우리에게 알려져 있습니다. 그리고 "스택이 끝나지 않을 것"이라고 어떻게 가정합니까?
따라서 질문은 객체를 만들고 삭제하는 가장 좋은 방법은 무엇입니까? 자동 또는 동적? 나는 일반적으로 자동 개체의 종합 제어를 만드는 아이디어를 생각해 냈습니다. 즉, 사용자 정의 함수의 본문에 자동 개체를 선언합니다. 따라서 객체는 스택에 생성되며(이론적으로는 힙보다 빠름) 객체 변수가 사용자 정의 함수에서 선언되기 때문에 자동 삭제 제어에 대해 걱정하지 않습니다. 그리고 자동 객체는 함수의 동적 변수 규칙에 따라 사용자 정의 함수 자체에 의해 소멸되도록 추가 제어됩니다. 여기에서 또한 그것에 대해 생각하는 해당 지부의 참가자들의 적절한 의견을 듣는 것이 바람직할 것입니다.
당신이 옳게 생각했다. new로 생성된 객체에 액세스하는 것은 훨씬 느립니다. 여기에는 가비지 수집기가 없습니다.
그리고 새에 대해 말하면 설명자는 포인터이기도 합니다. 그리고 그 단어 자체에서 설명자, 포인터, 식별자 등 아무 것도 변경되지 않습니다.
이 단어의 물리적 구현은 오랫동안 사용자에게 숨겨져 왔습니다.
다음과 같은 IMHO:
- 설명자 - 시스템에서 이 기능을 구현하는 메서드에 바인딩됨
- 핸들, 모든 것이 디스크립터와 같지만 OS에 의해 구현됩니다.
- 포인터와 식별자는 이것이 물리적 메모리 작업임을 의미합니다.
그리고 함수에서 객체를 생성하기 위해 함수에 대한 포인터를 전달해야 하는 경우 작동 방식은 다음과 같습니다.
그것이 실제로 당신이 OOP에 대해 알고 싶었지만 물어보기가 두려웠던 모든 것입니다)))어, 훌륭해.
이 17줄은 실제로 Fedoseev의 프로그래머 자격에 대해 알아야 할 전부입니다.
2019.07.05 15:19:56.309 'test13.mq5'에서 잘못된 포인터 액세스(11,5)
안녕하세요. 컴퓨터 메모리는 스택 컨텍스트에서 사용하든 힙 컨텍스트에서 사용하든 동일한 성능을 갖습니다. 동적 메모리 자체의 관리는 가비지 수집기의 구현에 따라 다릅니다. 예를 들어 Python(저속 버전)과 같은 참조 카운팅 또는 백그라운드 프로세스(Net CLR)에서 실행 그래프를 우회하여 객체 생성 에포크 분석이 될 수 있습니다. MQL에서 어떤 변형이 사용되는지는 알려져 있지 않지만, 우리는 그것의 극도의 효율성을 가정할 수 있습니다. MQL5 사용자는 삭제 연산자에 직접 액세스할 수 있으므로 GC 자체의 작업이 크게 간소화됩니다. 이와 관련하여 new를 사용할 때 오버헤드에 대한 우려는 헛된 것입니다. 동적 메모리를 자유롭게 사용하십시오.
"스택 오버플로"는 복잡한 재귀를 사용하거나 재귀 알고리즘에 오류가 있는 경우에만 현대 시스템에서 이 경우를 충족할 수 있습니다. 최신 프로그램은 동적 페이지 로딩과 함께 가상 주소 공간에서 항상 보호된 OC 모드로 실행되므로 걱정하지 마십시오. 스택이 끝나지 않습니다. :)
명쾌한 설명 감사합니다.
어떤 이유로 mql에서 스택에 대한 호출이 힙보다 빠르다고 생각했습니다. 특히 가비지 수집기의 구현을 모르기 때문입니다.
따라서 객체 생성 속도, 자동 또는 역학에 사용하는 것이 더 나은 질문이 발생했습니다.
예, 모든 것이 특정 작업에 따라 다르다는 것을 이해하지만, 예를 들어 거래 요청을 보내는 경우를 가정해 보겠습니다.
그리고 우리는 처리 속도를 위해 가능한 한 정확하게 객체를 생성하는 작업을 스스로 설정했습니다.
설명된 거래 주문 방법에 대한 사용자 정의 클래스가 있습니다.
클래스 및 해당 메서드의 인스턴스 수는 기본적으로 우리에게 알려져 있습니다.
그리고 "스택이 끝나지 않을 것"이라고 어떻게 가정합니까?
따라서 질문은 객체를 만들고 삭제하는 가장 좋은 방법은 무엇입니까? 자동 또는 동적?
나는 일반적으로 자동 개체를 종합적으로 제어하는 아이디어를 생각해 냈습니다.
즉, 사용자 정의 함수의 본문에 자동 개체를 선언합니다.
따라서 객체는 스택에 생성되며(이론적으로는 힙보다 빠름) 객체 변수가 사용자 정의 함수에서 선언되기 때문에 자동 삭제 제어에 대해 걱정하지 않습니다.
그리고 자동 객체는 함수의 동적 변수 규칙에 따라 사용자 정의 함수 자체에 의해 소멸되도록 추가 제어됩니다.
여기에서 또한 그것에 대해 생각하는 해당 지부의 참가자들의 적절한 의견을 듣는 것이 바람직할 것입니다.
어, 훌륭해.
이 17줄은 실제로 Fedoseev의 프로그래머 자격에 대해 알아야 할 전부입니다.
2019.07.05 15:19:56.309 'test13.mq5'에서 잘못된 포인터 액세스(11,5)
기이. 그리고 저를 위해 그것은 오류 없이 컴파일되고(지금) 올바르게 작동합니다.
다음에는 포토샵으로 그립니다.
명쾌한 설명 감사합니다.
어떤 이유로 mql에서 스택에 대한 호출이 힙보다 빠르다고 생각했습니다. 특히 가비지 수집기의 구현을 모르기 때문입니다.
따라서 객체 생성 속도, 자동 또는 역학에 사용하는 것이 더 나은 질문이 발생했습니다.
예, 모든 것이 특정 작업에 따라 다르다는 것을 이해하지만, 예를 들어 거래 요청을 보내는 경우를 가정해 보겠습니다.
그리고 우리는 처리 속도를 위해 가능한 한 정확하게 객체를 생성하는 작업을 설정했습니다.
설명된 거래 주문 방법에 대한 사용자 정의 클래스가 있습니다.
클래스 및 해당 메서드의 인스턴스 수는 기본적으로 우리에게 알려져 있습니다.
그리고 "스택이 끝나지 않을 것"이라고 어떻게 가정합니까?
따라서 질문은 객체를 만들고 삭제하는 가장 좋은 방법은 무엇입니까? 자동 또는 동적?
나는 일반적으로 자동 개체의 종합 제어를 만드는 아이디어를 생각해 냈습니다.
즉, 사용자 정의 함수의 본문에 자동 개체를 선언합니다.
따라서 객체는 스택에 생성되며(이론적으로는 힙보다 빠름) 객체 변수가 사용자 정의 함수에서 선언되기 때문에 자동 삭제 제어에 대해 걱정하지 않습니다.
그리고 자동 객체는 함수의 동적 변수 규칙에 따라 사용자 정의 함수 자체에 의해 소멸되도록 추가 제어됩니다.
여기에서 또한 그것에 대해 생각하는 해당 지부의 참가자들의 적절한 의견을 듣는 것이 바람직할 것입니다.
당신이 옳게 생각했다. new로 생성된 객체에 액세스하는 것은 훨씬 느립니다. 여기에는 가비지 수집기가 없습니다.
이 단어의 물리적 구현은 오랫동안 사용자에게 숨겨져 있습니다.
다음과 같은 IMHO:
- 설명자 - 시스템에서 이 기능을 구현하는 메서드에 바인딩됨
- 핸들, 모든 것이 디스크립터와 같지만 OS에 의해 구현됩니다.
- 포인터와 식별자는 이것이 물리적 메모리 작업임을 의미합니다.
예, 그곳에서 작동하는 방식은 우리에게 아무런 차이가 없습니다.
질문 하나만 더 해주세요. CButton에서 자식 클래스 CMyButton을 만드는 경우 버튼을 만든 다음 클래스 외부에서 해당 속성을 변경할 수 있습니다. 이것은 아래 OnInit()에서 수행됩니다.
그러나 자식 클래스 내부에 추가 필드를 만들고 새 함수에서 CButton 클래스의 내장 속성을 사용하려는 경우 올바르게 구현하는 방법은 무엇입니까?
CButton 클래스에서 m_button 클래스 멤버는 private 섹션에 선언됩니다.
네, 메모리 누수에 대한 메시지를 삭제하고 작성합니다. 조언자를 작성하는 프로그래머가 삶에 지루해하지 않도록 하기 위해서입니다.
어제는 메모리 누수가 있었고, 오늘은 원칙적으로 존재할 수 없습니다.
그리고 새에 대해 말하면 설명자는 포인터이기도 합니다. 그리고 그 단어 자체에서 설명자, 포인터, 식별자 등 아무 것도 변경되지 않습니다.
그리고 저를 위해 그것은 오류 없이 컴파일되고(지금) 올바르게 작동합니다.
예, 이미 관련 없는 두 사람이 코드 충돌을 포토샵으로 처리하고 있습니다)
코드가 제대로 작동하지 않습니다. 코드 자체에서 알 수 있습니다.))
예, 이미 관련 없는 두 사람이 코드 충돌을 포토샵으로 처리하고 있습니다)
코드가 제대로 작동하지 않습니다. 코드 자체에서 알 수 있습니다.))