서식이 향상되었습니다.
7065 단어 benchmark-ips
묘사
정밀도의 변화는 몇 가지 이유가 필요하다.지나간 시간에 대해 말하자면, 나는 ms보다 낮은 시간은 '초당 교체 횟수' 의 기준 테스트에 모두 쓸모가 없다고 생각한다. 표시되는 시간은 모두 5s 정도이다.i/s에 대해 말하자면, 모든 표시가 1/1000인 것은 기준 소음 부근에 있을 것이다.만약 어떤 물건이 5초 안에 50만 번의 교체를 완성할 수 있다면 그것은 초당 10미터이고 1000번의 교체(1/10000의 정밀도 손실)는 0.1밀리초가 필요하다.이 기준의 오류율은 +/-1000회 교체 또는 0.0002% 이다.받아들일 수 있고 가독성이 좋은 결과입니다.
이전:
Calculating -------------------------------------
uncontended MD5 'foo'
29296 i/100ms
uncontended MD5 'foo' * 1000
9558 i/100ms
4x contended MD5 'foo'
599 i/100ms
4x contended MD5 'foo' * 1000
519 i/100ms
10x contended MD5 'foo'
267 i/100ms
10x contended MD5 'foo' * 1000
229 i/100ms
100x contended MD5 'foo'
21 i/100ms
100x contended MD5 'foo' * 1000
19 i/100ms
-------------------------------------------------
uncontended MD5 'foo'
543446.5 (±5.2%) i/s - 2724528 in 5.028890s
uncontended MD5 'foo' * 1000
134059.2 (±2.9%) i/s - 678618 in 5.066376s
4x contended MD5 'foo'
123911.7 (±10.6%) i/s - 609782 in 4.994339s
4x contended MD5 'foo' * 1000
31893.7 (±6.9%) i/s - 158814 in 5.006711s
10x contended MD5 'foo'
47335.5 (±9.4%) i/s - 233625 in 4.994032s
10x contended MD5 'foo' * 1000
12726.5 (±5.5%) i/s - 63433 in 5.001239s
100x contended MD5 'foo'
2463.1 (±8.1%) i/s - 12222 in 4.999318s
100x contended MD5 'foo' * 1000
976.0 (±5.2%) i/s - 4883 in 5.018057s
다음:나의 가장 큰 걱정은 선과 선 사이의 폭 전환이다.이 숫자들을 볼 때 크기를 무시하기 쉽다.내가 더 좋아하는 것은 모든 숫자를 보고'네, 대다수가 1000 이상입니다. 우리는 킬로그램 단위로 숫자를 표시해야 합니다'라고 결정하는 것이다. 그러면 우리는 줄 사이를 전환하지 않을 것이다.
토론 #1
@evanphx에서 이 줄에서'1000000 in'을 삭제할 수 있습니까?이것은 전체 시간의 속도보다 더 많은 정보를 전달했는가(예를 들어 그것은 파생할 수 있는 것이기 때문에 나는 이 숫자에 관심을 두지 않는다)?죄송합니다. 이 오류에 뛰어들었지만, 형식에 관한 것입니다.
토론 #2
@enebo 어느 줄입니까?토론 #셋
Calculating -------------------------------------
uncontended MD5 'foo'
29.733k i/100ms
uncontended MD5 'foo' * 1000
9.572k i/100ms
4x contended MD5 'foo'
618.000 i/100ms
4x contended MD5 'foo' * 1000
531.000 i/100ms
10x contended MD5 'foo'
273.000 i/100ms
10x contended MD5 'foo' * 1000
234.000 i/100ms
100x contended MD5 'foo'
22.000 i/100ms
100x contended MD5 'foo' * 1000
19.000 i/100ms
-------------------------------------------------
uncontended MD5 'foo'
553.452k (± 3.5%) i/s - 2.765M in 5.003s
uncontended MD5 'foo' * 1000
134.654k (± 2.9%) i/s - 679.612k in 5.051s
4x contended MD5 'foo'
124.699k (±10.1%) i/s - 614.292k in 4.994s
4x contended MD5 'foo' * 1000
32.174k (± 6.9%) i/s - 160.362k in 5.012s
10x contended MD5 'foo'
47.166k (± 9.2%) i/s - 233.142k in 4.999s
10x contended MD5 'foo' * 1000
12.643k (± 5.6%) i/s - 63.180k in 5.015s
100x contended MD5 'foo'
2.513k (± 7.2%) i/s - 12.496k in 5.002s
100x contended MD5 'foo' * 1000
978.344 (± 5.1%) i/s - 4.883k in 5.006s
978.344 (± 5.1%) i/s - 4.883k in 5.006s
토론 #4
불행하게도 우리는 모든 숫자에 대해 단일한 눈금을 선택할 수 없다. 왜냐하면 그것이 실행된 후에 바로 결과를 나타내기 때문이다.우리는 그것을 기다린 후에 보고서를 작성해야 한다. 나는 이것이 가용성에 해를 끼칠 것이라고 생각한다.처음에는 음계의 변화가 걱정스러웠지만, 나는 이 접미사들을 읽는 것이 조금도 어렵지 않았다.우리는 이미 계산의 많은 다른 방면에서 이렇게 하는 것에 익숙해졌다.자유공간, 지난번 게시 이후 시간(5초 전, 5m 전)...나는 이것이 문제라고 생각하지 않는다.
어쨌든 264.368M을 읽는 것이 264368526을 읽는 것보다 훨씬 쉽다.후자는 접미사보다 변화가 더 골치 아프다.
토론 #5
야!토론 #6
전면 공개만 가능합니다.테스트가 실제적으로 적당한 시간 동안 실행되었음을 확보하기 위해 빠른 건전성 검사를 제공하는 것 외에 너무 많은 정보를 전달하지 않는 것이 옳다.사실 Benchmark/ips는 이 시간들을 검사해야 합니다. 만약 이 시간들이 실행 시간과 너무 멀다면 확대해야 합니다.in X.Ys
접미사가 정확한 값보다 읽을 수 있는 또 다른 경우: 어떤 결과의 너비가 1문자이고 어떤 결과의 너비가 12문자라면 합리적으로 열을 맞추기 어렵다.이것은 모든 결과의 폭을 일치하게 하고, 뒤에 비례 접미사를 붙인다.더 간단해!:-)토론 #7
@evanphx 네, 결국 저도 5.0002초에 관심이 없지만 5s 운행의 증가량이 너무 큰지 관심이 있습니다.토론 #8
@headius 네, 큰 숫자에 접두사가 더 쉽다는 것을 충분히 볼 수 있습니다.내가 좀 지나치게 보호했나봐.":human"이라는 옵션을 추가하는 것은 어떻습니까? 기본적으로 이 옵션은 활성화되어 있으며, 설정한 후에 접두사를 사용합니다.이것은 적어도 사람들에게 가벼운 기회를 주었다.토론 #9
나는 옵션을 추가하는 것을 고려한 적이 있다. 나는'원시적인'폼이 좋을 것이라고 동의한다.나는 너의 건의에 따라 할 것이다.토론 #10
@enebo 동의토론 #11
최종적으로 소음입니다.이 값이 필요한 운행 시간의 5% 를 초과하지 않는 한, 나는 그것을 변경해서 억제할 것이다.in X.Y
@evanphx는 기준 테스트에 전달된 IP를 제외하고는 다른 IP 옵션을 볼 수 없습니다.ips 방법.거기에 추가할 패치가 하나 있습니다(https://gist.github.com/headius/61c09c2c5b8574b30df4). 그게 당신 뜻입니까?나의 직감은 이것이 옵션이어야 하며, 너는 기준을 바꾸지 않고 전환할 수 있다는 것을 알려주었다.토론 #12
그 패치가 좋아요.기본값을 포함하는 산열을토론 #13
추가하면 사람들이 할 수 있습니다.Benchmark::IPS.options
Benchmark::IPS.options[:format] = :raw
@enebohttps://github.com/evanphx/benchmark-ips/commit/4736eb6e50e2999a03217d3c75e61874e343bae9너를 위해!토론 #14
이 옵션을 ips () 호출에서 꺼내서 Benchmark::ips로 따로 옮깁니다.옵션입니다.기본 테스트를 하드코딩하는 것은 그 형식이 옳지 않다.토론 #15
@headius 네, 그럼 안에 있는 다른토론 #16
도 제거해야 합니다.아이고, 나 정말 바보야.불량 드릴을 제거하고 힘껏 밀어라.@format
@headius 다시 고치면 도착합니다!토론 #17
Yeesh...나는 오늘 걱정거리가 너무 많다고 생각한다.다시 밀어.토론 #18
나는 최근의 제출에 따라 다시 그것을 재정비하고 제출했다.감사합니다!토론 #19
숫자의 점 기호는 정말 나를 반감하게 하지만, 나도 원시적으로 바꿀 수 없을 것 같다.Block 객체에 #ips 메소드의 매개 변수로 전달하려고 합니다.내가 어떻게 이런 새로운 숫자 형식을 사용하지 않을 수 있겠는가?토론 #20
나는 그것을 설정하는 방법을 찾지 못했을 뿐만 아니라 이 값을 설정할 방법이 없다는 것을 상당히 확신했다.이 방면에도 테스트가 없다.토론 #21
@krainboltgreen 추가토론 #22
를 통해 원시 상태로 설정할 수 있습니다Reference
이 문제에 관하여(서식이 향상되었습니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://github.com/evanphx/benchmark-ips/issues/20텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)