알고리즘, 결정 방법, 성능 비교 - 페이지 6

 
Alexandr Andreev :

일반 int 배열이 적합하지 않은 이유는 무엇입니까? 저 끈이 왜...

우리는 고문이 얼마나 많은 거래를 할 지 미리 알지 못하기 때문입니다. 어레이에 대한 메모리를 미리 할당해야 하지만 얼마인지 모릅니다.

따라서 빠르고 짧고 추가 메모리를 차지하지 않는 솔루션을 찾아야 했습니다.

 
Реter Konow :

설마.

...

다시 말하지만, 당신은 내가 말하는 것을 이해하지 못합니다. 거래 번호는 거래 시스템(MetaTrader 또는 exchange)에 의해 할당됩니다. 거래 번호는 거래의 주문 번호를 의미하는 것이 아니라 HistoryDealGetTicket 함수에 의해 반환된 티켓 을 의미합니다. 이를 염두에 두고 예제를 다시 만드십시오.
 
Alexandr Andreev :

반복합니다. 문자열 대신 차트 의 동적 배열 이 저장된 클래스를 사용했다고 상상해 보십시오. 이것이 빠른 것 같습니까?

문자열 함수의 내부 구현은 모르지만 함수 실행 속도를 측정하면 총 수천 명의 마술사 문자열에서 마술사를 찾고 반환하는 데 100마이크로초 미만이 걸린다는 것을 알 수 있습니다.

제 생각에는 매우 빠릅니다. 더 빨리 할 수는 없습니다.

 
Реter Konow :

우리는 고문이 얼마나 많은 거래를 할 지 미리 알지 못하기 때문입니다. 어레이에 대한 메모리를 미리 할당해야 하지만 얼마인지 모릅니다.

따라서 빠르고 짧고 추가 메모리를 차지하지 않는 솔루션을 찾아야 했습니다.

빠른 비용으로 . 모든 24,000 Medjik의 추출 속도를 측정하십시오. 불쾌하게 놀랐다.

 
Реter Konow :

준비가 된:

귀하의 예는 고칠 수 없습니다 :)

행 크기가 충분하지 않으면 어떻게 됩니까?

귀하의 예에는 32767개의 레코드(트랜잭션)가 있을 수 있으므로 마지막으로 기록된 마술과 읽기 마술을 비교하십시오.


 
Vasiliy Sokolov :
다시 말하지만, 당신은 내가 말하는 것을 이해하지 못합니다. 거래 번호는 거래 시스템(MetaTrader 또는 exchange)에 의해 할당됩니다. 거래 번호는 거래의 주문 번호를 의미하는 것이 아니라 HistoryDealGetTicket 함수에 의해 반환된 티켓 을 의미합니다. 이를 염두에 두고 예제를 다시 만드십시오.

문제가 되지 않습니다. 내일 나는 티켓과 함께 작동할 두 번째 옵션을 만들 것입니다.

이 옵션은 거래에서도 편리합니다.

 
Vasiliy Sokolov :

빠른 비용으로 . 모든 24,000 Medjik의 추출 속도를 측정하십시오. 불쾌하게 놀랐다.

글쎄, 주어진 순간에는 한 명의 마술사가 필요하지 않습니까?

우리는 마법을 추출하고 주문과 관련된 모든 정보에 액세스할 수 있습니다.

한 번에 24,000개의 Medzhik을 추출하는 이유는 무엇입니까?

 

젠장, 내가 여기서 뭐하는거야!? 나는 누구에게 시간을 낭비하고 있습니까? 가서 더 강한 것을 마시는 것이 좋습니다.

추신 아, 네, 또 다른 실수가 있습니다. 세 번째 호출에서 MathRand 가 예를 들어 숫자 1000을 반환하고 _3_1000_을 기록한다면 일련 번호가 1000인 트랜잭션에서 어떤 마법이 발견될까요?
 
Yury Kulikov :

귀하의 예는 고칠 수 없습니다 :)

행 크기가 충분하지 않으면 어떻게 됩니까?

귀하의 예에는 32767개의 레코드(트랜잭션)가 있을 수 있으므로 마지막으로 기록된 마술과 읽기 마술을 비교하십시오.


줄 길이 제한을 지적해 주셔서 감사합니다.

두 번째 줄 쓰기를 시작할 수 있습니다. 그런 다음 세 번째 등등... :)

 
Реter Konow :

문자열 함수의 내부 구현은 모르지만 함수의 실행 속도를 측정하면 총 수천 명의 마술사 문자열에서 마술사를 찾고 반환하는 데 100마이크로초 미만이 걸린다는 것을 알 수 있습니다.

제 생각에는 매우 빠릅니다. 더 빨리 할 수는 없습니다.


간단히 말해서, 한 문자의 문자열은 0에서 255까지의 특정 코드를 가진 문자 이고 무게는 1바이트입니다... 그리고 너무 많은 메모리가 할당되어 256개의 값만 있고 257은 적합하지 않습니다. 거기에서 처음으로 다시 이동합니다.

예, 모든 문자열에서 각 문자는 0에서 255 사이의 숫자와 같습니다 ... 숫자 int 10000000을 얻습니다. 무게는 4바이트이고 "10000000" 문자열로 변환한 다음 각 문자에 대한 메모리를 단일 차트로 할당합니다. 0에서 255까지. .. 총 8바이트 메모리를 절약할 수 있는 곳이 없습니다.