#define BENCHMARK_TEST(function, test_name) \
ArrayCopy (arr2,arr); \
t= GetMicrosecondCount (); \
N= ##function(arr2,Value); \
t= GetMicrosecondCount ()-t; \
printf ( "вариант %-12s: Контрольная сумма = %f; элементов - %d; время выполнения - %6d микросекунд" , test_name, ControlSumm(arr2), N, t);
voidOnStart ()
{
srand ( 1 );
int N;
ulong t;
int Value= rand ()% 1000 ; // значение, которое нужно удалить из массиваint arr[]; // исходный массивint arr2[]; // создаем еще один массив для теста и копируем в него исходный массивArrayResize (arr, 1000000 );
for ( int i= 0 ; i< 1000000 ;i++){
arr[i]= rand ()% 1000 ; //генерируем исходный массив случайными значениями от 0 до 1000
}
BENCHMARK_TEST(ArrayDeleteVal1, "Pastushak" );
BENCHMARK_TEST(arrayFilter, "Korotky" );
BENCHMARK_TEST(DelEl2, "Fedoseev" );
BENCHMARK_TEST(ArrayDeleteVal, "Semko" );
BENCHMARK_TEST(ArrayModify, "Pavlov" );
BENCHMARK_TEST(arrayFilter2, "Nikitin" );
BENCHMARK_TEST(ArrayDelV, "Vladimir" );
BENCHMARK_TEST(PeterArray, "Peter" );
BENCHMARK_TEST(arrayFilter3, "Kuznetsov" );
}
//..............................................
결과:
2018.11 . 1501 : 11 : 13.670 Test (EURUSD,H1) вариант Pastushak : Контрольная сумма = 7225.757267 ; элементов - 998994 ; время выполнения - 127587 микросекунд
2018.11 . 1501 : 11 : 13.675 Test (EURUSD,H1) вариант Korotky : Контрольная сумма = 7225.757267 ; элементов - 998994 ; время выполнения - 2530 микросекунд
2018.11 . 1501 : 11 : 13.679 Test (EURUSD,H1) вариант Fedoseev : Контрольная сумма = 7225.757267 ; элементов - 998994 ; время выполнения - 1995 микросекунд
2018.11 . 1501 : 11 : 13.681 Test (EURUSD,H1) вариант Semko : Контрольная сумма = 7225.757267 ; элементов - 998994 ; время выполнения - 854 микросекунд
2018.11 . 1501 : 11 : 13.686 Test (EURUSD,H1) вариант Pavlov : Контрольная сумма = 7225.757267 ; элементов - 998994 ; время выполнения - 3239 микросекунд
2018.11 . 1501 : 11 : 13.692 Test (EURUSD,H1) вариант Nikitin : Контрольная сумма = 7225.757267 ; элементов - 998994 ; время выполнения - 3812 микросекунд
2018.11 . 1501 : 11 : 13.698 Test (EURUSD,H1) вариант Vladimir : Контрольная сумма = 7225.757267 ; элементов - 998994 ; время выполнения - 4037 микросекунд
2018.11 . 1501 : 11 : 13.707 Test (EURUSD,H1) вариант Peter : Контрольная сумма = 7225.757267 ; элементов - 998994 ; время выполнения - 7855 микросекунд
2018.11 . 1501 : 11 : 13.710 Test (EURUSD,H1) вариант Kuznetsov : Контрольная сумма = 7224.813498 ; элементов - 998994 ; время выполнения - 744 микросекунд
나는 코드에 주석을 달았는데 아마 눈치채지 못했을 것이다. 배열의 마지막 요소가 삭제 조건, 즉 값과 같은 경우 오류
나는 그것을 코드에서 버리지 않았습니다. Nikolai가 코드를 수정하고 자신을 반환할 것이라고 생각합니다. :)
그리고 템플릿을 희생시키면서 : 함수가 실수를 잘못 비교하거나 오히려 이것을 의도하지 않았기 때문에 double을 전달할 때 오류가 발생합니다. 따라서 템플릿을 넣기 전에 함수가 모든 유형에서 올바르게 작동하는지 확인하십시오.
무엇을 주목해야 했습니까? " 마지막 요소 중 하나 이상이 조건과 일치하면 배열이 손상됩니다"? 나는 이것에 대해 위에 썼지만 작동하지 않았습니다. 스크린샷에서 볼 수 있듯이 이것은 사실이 아닙니다. 적은 양의 데이터로 오류가 발생하는 것 같습니다.
double의 오류는 무엇입니까? 왜 갑자기? 배열에 어떤 데이터가 있으며 작동합니다. 올바르게 작동하려면 배열에 배치하기 전에 정규화를 수행해야 합니다. 그러나 정규화를 중재하는 기능이 아닙니다. 이 기능은 템플릿과 완벽하게 일치하며 올바르게 사용하면 double에서도 잘 작동합니다.
갑자기 모두가 이중 문제에 몰두하게 된 것은 매우 좋은 일이지만 머리로 문제에 접근해야 합니다.
무엇을 주의했어야 합니까? " 마지막 요소 중 하나 이상이 조건과 일치하면 배열이 손상됩니다"? 나는 이것에 대해 위에 썼지만 작동하지 않았습니다. 스크린샷에서 볼 수 있듯이 이것은 사실이 아닙니다. 적은 양의 데이터로 오류가 발생하는 것 같습니다.
double의 오류는 무엇입니까? 왜 갑자기? 배열에 어떤 데이터가 있으며 작동합니다. 올바르게 작동하려면 배열에 배치하기 전에 정규화를 수행해야 합니다. 그러나 정규화를 중재하는 기능에는 없습니다. 이 기능은 템플릿에 완벽하게 맞으며 올바르게 사용하면 doubkle에서 잘 작동합니다.
갑자기 모두가 이중 문제에 몰두하게 된 것은 매우 좋은 일이지만 머리로 문제에 접근해야 합니다.
당신과 나는 기능이 어떻게 작동해야 하는지에 대해 다른 견해를 가지고 있습니다. 이 기능은 아프리카에서도 기능이며 데이터 준비 없이 작동해야 합니다. 모든 것이 내부에서 작동해야 합니다. 복사-붙여넣기 하는 사람은 데이터 준비에 대해 아무것도 모르고, 몰라야 합니다.
PS 네, 사실 아무도 걱정하지 않습니다. 왠지 보라색 느낌이 듭니다. 방금 여기 템플릿이 개의 5번째 다리와 같으며 잠재적인 오류가 있다고 썼습니다.
옵티마이저는 쓸모가 없습니다. 비교는 2배 미만입니다.
그냥 미니 리팩토링("당신은 세상에서 그렇게 아름다울 수 없기에..."):
결과:
그냥 미니 리팩토링("당신은 세상에서 그렇게 아름다울 수 없기에..."):
조금 더 높게 요청 - 원래 배열을 시리즈로 넣어보십시오. ArraySetAsSeries (..,true);
다소 화제가 되는 질문 - 어떤 트릭이 시리즈에서 전혀 작동하지 않는지, 어떤 트릭이 갑자기 느려지는지 확인합니다.
배열 필터링으로 수정하면 시리즈에 대한 질문이 더 실용적입니다.
그냥 미니 리팩토링("당신은 세상에서 그렇게 아름다울 수 없기에..."):
유용한 양질의 수업을 해준 Sergey에게 감사합니다. :)
@Maxim Kuznetsov 를 별도의 범주로 이동했지만 여전히 다른 기능
오류가 포함된 테스트를 주석 처리했습니다(Semko 및 Pavlov).
내 버전을 추가했습니다
PS 예, 템플릿을 제거해야 합니다. 이것은 이중을 비교할 때 잠재적인 오류이기도 합니다.
@Maxim Kuznetsov 를 별도의 범주로 이동했지만 여전히 다른 기능
오류가 포함된 테스트를 주석 처리했습니다(Semko 및 Pavlov).
내 버전을 추가했습니다
PS 예, 템플릿을 제거해야 합니다. 이것은 이중을 비교할 때 잠재적인 오류이기도 합니다.
배열의 마지막 두 요소를 Value와 같게 했습니다. Semko에는 오류가 없습니다. 그가 어떤 경우에 오류를 가지고 있는지 보여주십시오. 그렇지 않으면 지도자를 내쫓는 것은 불공평하고 스포츠가 아닙니다.
정규화로 인한 double의 오류는 무엇입니까? 따라서 이중 배열로 작업하는 경우 정규화된 데이터를 배열에 추가하는 데 주의해야 합니다.
배열의 마지막 두 요소를 Value와 같게 했습니다. Semko에는 오류가 없습니다. 그가 어떤 경우에 오류를 가지고 있는지 보여주십시오. 그렇지 않으면 지도자를 내쫓는 것은 불공평하고 스포츠가 아닙니다.
정규화로 인한 double의 오류는 무엇입니까? 따라서 이중 배열로 작업하는 경우 정규화된 데이터를 배열에 추가하는 데 주의해야 합니다.
나는 코드에 주석을 달았는데 아마 눈치채지 못했을 것이다. 배열의 마지막 요소가 삭제 조건, 즉 값과 같은 경우 오류
나는 그것을 코드에서 버리지 않았습니다. Nikolai가 코드를 수정하고 자신을 반환할 것이라고 생각합니다. :)
그리고 템플릿을 희생시키면서 : 함수가 실수를 잘못 비교하거나 오히려 이것을 의도하지 않았기 때문에 double을 전달할 때 오류가 발생합니다. 따라서 템플릿을 넣기 전에 함수가 모든 유형에서 올바르게 작동하는지 확인하십시오.
나는 코드에 주석을 달았는데 아마 눈치채지 못했을 것이다. 배열의 마지막 요소가 삭제 조건, 즉 값과 같은 경우 오류
나는 그것을 코드에서 버리지 않았습니다. Nikolai가 코드를 수정하고 자신을 반환할 것이라고 생각합니다. :)
그리고 템플릿을 희생시키면서 : 함수가 실수를 잘못 비교하거나 오히려 이것을 의도하지 않았기 때문에 double을 전달할 때 오류가 발생합니다. 따라서 템플릿을 넣기 전에 함수가 모든 유형에서 올바르게 작동하는지 확인하십시오.
무엇을 주목해야 했습니까? " 마지막 요소 중 하나 이상이 조건과 일치하면 배열이 손상됩니다"? 나는 이것에 대해 위에 썼지만 작동하지 않았습니다. 스크린샷에서 볼 수 있듯이 이것은 사실이 아닙니다. 적은 양의 데이터로 오류가 발생하는 것 같습니다.
double의 오류는 무엇입니까? 왜 갑자기? 배열에 어떤 데이터가 있으며 작동합니다. 올바르게 작동하려면 배열에 배치하기 전에 정규화를 수행해야 합니다. 그러나 정규화를 중재하는 기능이 아닙니다. 이 기능은 템플릿과 완벽하게 일치하며 올바르게 사용하면 double에서도 잘 작동합니다.
갑자기 모두가 이중 문제에 몰두하게 된 것은 매우 좋은 일이지만 머리로 문제에 접근해야 합니다.
무엇을 주의했어야 합니까? " 마지막 요소 중 하나 이상이 조건과 일치하면 배열이 손상됩니다"? 나는 이것에 대해 위에 썼지만 작동하지 않았습니다. 스크린샷에서 볼 수 있듯이 이것은 사실이 아닙니다. 적은 양의 데이터로 오류가 발생하는 것 같습니다.
double의 오류는 무엇입니까? 왜 갑자기? 배열에 어떤 데이터가 있으며 작동합니다. 올바르게 작동하려면 배열에 배치하기 전에 정규화를 수행해야 합니다. 그러나 정규화를 중재하는 기능에는 없습니다. 이 기능은 템플릿에 완벽하게 맞으며 올바르게 사용하면 doubkle에서 잘 작동합니다.
갑자기 모두가 이중 문제에 몰두하게 된 것은 매우 좋은 일이지만 머리로 문제에 접근해야 합니다.
당신과 나는 기능이 어떻게 작동해야 하는지에 대해 다른 견해를 가지고 있습니다. 이 기능은 아프리카에서도 기능이며 데이터 준비 없이 작동해야 합니다. 모든 것이 내부에서 작동해야 합니다. 복사-붙여넣기 하는 사람은 데이터 준비에 대해 아무것도 모르고, 몰라야 합니다.
PS 네, 사실 아무도 걱정하지 않습니다. 왠지 보라색 느낌이 듭니다. 방금 여기 템플릿이 개의 5번째 다리와 같으며 잠재적인 오류가 있다고 썼습니다.
당신과 나는 기능이 어떻게 작동해야 하는지에 대해 다른 견해를 가지고 있습니다. 이 기능은 아프리카에서도 기능이며 데이터 준비 없이 작동해야 합니다. 모든 것이 내부에서 작동해야 합니다. 복사-붙여넣기 하는 사람은 데이터 준비에 대해 아무것도 모르고, 몰라야 합니다.
유치원입니다.