Domyślnie testy wydajności Xcodes uruchamiane są dziesięć razy, a mój wynik jest średnią z dziesięciu testów. Problem polega na tym, że uśredniony wynik różni się znacznie przy każdym uruchomieniu, więc muszę przeprowadzić test co najmniej pięć razy, aby uzyskać wynik zbieżny. Jest to zarówno żmudne, jak i czasochłonne; czy istnieje sposób na skonfigurowanie XCode lub samego testu urządzenia, aby działał więcej niż dziesięć razy?Jak mogę uruchomić testy wydajności więcej niż dziesięć razy?
Odpowiedz
klasy zrzutu XCTestCase ujawnia tej metody:
- (void)_recordValues:(id)arg1 forPerformanceMetricID:(id)arg2 name:(id)arg3 unitsOfMeasurement:(id)arg4 baselineName:(id)arg5 baselineAverage:(id)arg6 maxPercentRegression:(id)arg7 maxPercentRelativeStandardDeviation:(id)arg8 maxRegression:(id)arg9 maxStandardDeviation:(id)arg10 file:(id)arg11 line:(unsigned long long)arg12;
gdy metoda swizzled pierwszego parametru (ARG1) ma 10 czas trwania:
["0.003544568",
"0.003456569",
"0.003198263",
"0.003257955",
"0.003508724",
"0.003454298",
"0.003461192",
"0.00423787",
"0.003359195",
"0.003335757"]
i dodaje się 4 nowych wartości (1,0 , 2,0, 3,0, 4,0) na końcu tej listy przed przekazaniem go z powrotem do pierwotnej implementacji, ale niestety innej klasy, który przestrzega, XCTestLog
, posiada wewnętrzną testow który pobiera zadziałał:
Assertion failure in +[XCTestLog _messageForTest:didMeasureValues:forPerformanceMetricID:name:unitsOfMeasurement:baselineName:baselineAverage:maxPercentRegression:maxPercentRelativeStandardDeviation:maxRegression:maxStandardDeviation:file:line:]
caught "NSInternalInconsistencyException", "Performance Metrics must provide 10 measurements."
Gdy metoda XCTestLog
jest również nadpisana, więc nie zapewnia, dodatkowe 4 wartości można dodać bez żadnych skarg. niestety widok wciąż pokazuje tylko 10 wyników.
to jednak aktualizuje całkowity czas + wartości odchylenia standardowego w widoku mini.
Przed Swizzling
Po Swizzling i dodając 4 wartości
aby zobaczyć więcej niż 10 wyników należałoby prawdopodobnie trzeba dostosować czas pracy XCode powiedzieć tabela, aby wyświetlić więcej elementów.
Krótka odpowiedź: Nie, nie ma prądu interfejs narażony aby umożliwić blok miarą ponad dziesięciokrotnie.
dłuższej odpowiedzi: Nie, ale tam jest interfejsem narażone na zmiany niektórych metryk bloku pomiarowym. Domyślne dane znajdują się w tablicy String zwróconej z defaultPerformanceMetrics
. Wygląda na to, że dostępna jest tylko jedna metryka: XCTPerformanceMetric_WallClockTime
. Określa tylko metrykę wydajności, która rejestruje czas w sekundach między wywołaniami metod testu wydajności, a nie liczbą uruchomień bloku.
- 1. Jak mogę szybciej uruchomić testy RoR?
- 2. Jak mogę uruchomić testy Androida z sbt?
- 3. Jak mogę skompresować więcej niż dwa iteratory?
- 4. Jak uruchomić testy integracji?
- 5. Testy wydajności Rhino VS Spidermonkey
- 6. Regex za wykrycie tej samej postaci więcej niż pięć razy?
- 7. UIFeedback Haptic Silnik nazywa więcej razy niż zostało aktywowane
- 8. Jak uruchomić ten sam asynctask więcej niż raz?
- 9. Jak mogę uruchomić tensorflow na GPU o wydajności 2.0?
- 10. Czy nvarchar zawsze zajmuje dwa razy więcej miejsca niż varchar?
- 11. Czy ktoś uruchomił testy wydajności porównujące LINQ
- 12. Jak uruchomić QUnit testy z wiersza poleceń?
- 13. Heroku: Nie można uruchomić więcej niż 1 Darmowe hamowni wielkości
- 14. Jak mogę uruchomić testy JUnit w losowej kolejności?
- 15. Jak mogę uruchomić testy jednostkowe django (poprzez manage.py) szybciej
- 16. Jak mogę atomicznie uruchomić testy mvn (bez odbudowywania kodu źródłowego)?
- 17. Jak powiedzieć „should_receive” więcej razy w RSpec
- 18. Jak odczytać BufferedReader dwa lub więcej razy?
- 19. Jak mogę wdrożyć opcję Porównywalne więcej niż jeden raz?
- 20. Jak mogę mieć więcej niż 9 obszarów roboczych w Xmonad?
- 21. Jak mogę odtwarzać/wstrzymać więcej niż jedno wideo przez mouseover
- 22. Jak uruchomić testy TestNG wskazujące na słoik
- 23. Czy mogę stwierdzić, czy wszystkie testy przeszły test Perla: Więcej?
- 24. Jak uruchomić testy Jasmine w przeglądarce?
- 25. Jak uruchomić testy Karma z kontenera dokowanego?
- 26. pliki std :: fstream więcej niż 2 gb
- 27. Testy wydajności/wytrzymałościowe Aplikacje Java EE
- 28. Korzystając z Mavena, jak uruchomić określone testy?
- 29. Jak uruchomić wszystkie moje testy PHPUnit?
- 30. Stworzyłem testy NUnit, teraz jak je uruchomić?
Czy to działa poprawnie? Wzrost z 0,003 sekundy do 0,717 sekundy wydaje się nieco większy dla trzech nowych wpisów. – Deco
Tak, to działa poprawnie. Średnią dla oryginalnych 10 wartości było 0,00348 i średnią z 14 (po dodaniu 1, 2, 3, 4) Wartości to 0,71677 – Casey
(0,003544568 + 0,003456569 + 0,003198263 + 0,003257955 + 0,003508724 + 0,003454298 + 0,003461192 + 0,00423787 + 0,003359195 + 0,003335757 + 1 + 2 + 3 + 4)/14 – Casey