while(x < 100) {
if(x == 1) { echo "Hello World!" } else { echo "Bottles" }
x++;
}
같은 큰 루프를 가진 경우
while(x < 100) {
if(x != 1) { echo "Bottles" } else { echo "Hello World!"}
x++;
}
그것이 정말 차이를 만들 것 B?
while(x < 100) {
if(x == 1) { echo "Hello World!" } else { echo "Bottles" }
x++;
}
같은 큰 루프를 가진 경우
while(x < 100) {
if(x != 1) { echo "Bottles" } else { echo "Hello World!"}
x++;
}
그것이 정말 차이를 만들 것 B?
아마도 차이는 없습니다. 더 자주로
나는, 두 번째로 가고 싶어 그 x != 1
가있을 것보다 그 x == 1
이 아마 슈퍼 작은-1 천분 --A-밀리 세컨드의 성능 향상으로 변환
, 그러나 마이크로 최적화는 그다지 중요하지 않습니다.
나는 가독성을 위해 실제로 첫 번째 것과 함께 갈 것입니다. 부정적인 조건을 사용하면 많이 가지고있는 경우 혼란 스러울 수 있습니다. –
차이점을 발견 할 가능성은 거의 없으며 걱정할 큰 병목 현상이 거의 확실합니다.
일반적인 CPU의 경우 분기 예측이 A로 인해 엉망이 될 수 있으므로 B가 더 빠를 것입니다. 물론 컴파일러가 최적화되지 않는다고 가정하십시오.
btw, 측정 했습니까?
이것은 CPU 분기 예측이 요인이 아닌 php입니다. –
이것은 단지 이론적 인 것입니다. 우리가 측정하지 않는 한 어떤 것이 더 빠를 것인지 결코 말할 수 없습니다. 그렇더라도 우리는 여전히 확신 할 수 없습니다. 그리고 분기 예측자가 무엇을 할 것인지를 예측하는 것은 어렵습니다 :-) –
x가 1에서 시작한다고 가정합니다. 그렇지 않은 경우 반드시 가능할 수는 없습니다.
echo "Hello, World!";
while(x < 99) { echo "bottles"; x++; }
왜 조건을 사용하면 좋을지 알고 있습니다.
코드 어설 션 x는 시작시 1입니다. 이건 어때? (x <1) {echo "bottles"; x ++; } if (x ++ == 1) echo "Hello, World!"; (x <100) {echo "bottles"; x ++; } –
옵티마이 저가 루프와 어떤 관련이 있는지에 따라 다릅니다.
나는 어떤 차이도 볼 수 없으며, 각각 100 루프와 1 조건 체크가 될 것입니다! – Kubi
이것이 단순한 예라고 가정합니다. 왜냐하면이 코드가 실제 코드인지 분명하게 알기 때문에 루프 밖에서 if를 이동해야합니다. 에코 "hello world", 99 병. –