2013-02-12 3 views
0

나는 몇 백만 번 실행해야하는 루프가 있습니다. 정확하게 말하면 10,967,700입니다. 그 안에서 나는 등 일부를 확인하고있는 중이 야 :PHP에서 숫자를 비교하는 가장 빠른 방법

번호 1 내가 궁금 해요

5 번보다 2 번 이상 번호 1 번호 3보다 작거나 같은이 번호 4가 크다 작이 이 검사가 더 빨리 수행되도록 수행 할 수있는 최적화/개조입니다. 아니면이 말도 안되는 퀘스트 노입니까?

사용하는 대신이 예제와 같은 foreachfor -loop :

$key = array_keys($aHash); 
$size = sizeOf($key); 
for ($i=0; $i<$size; $i++) $aHash[$key[$i]] .= "a"; 

foreach -loop 느린 4.7입니다

+1

우리는 우리가 몇 가지 코드를 볼 수있는 기회가한다면 당신에게 최적화를위한 몇 가지 입력을 제공합니다 ... 그렇지 않으면 일반적인'>''<''==='(및 수 등등) 아마 가장 빠르고 유일한 요소를 비교할 수 있습니다. if/else와 switch/case 사이의 성능 차이를 시험해 볼 수도 있습니다. – wildhaber

+2

숫자가 문자열 표현이 아닌 전체 정수인지 확인하십시오. 타입 - 저글링에 몇 사이클을 단축해야합니다. –

+0

위대한 포인트 마이크 B. 내 모든 경우는 모든 것이 정수입니다. – onassar

답변

0

당신의 조각에 따르면 나는 당신에게 다음과 같이 변경하는 것이 좋습니다.

foreach($aHash as $key=>$val) $aHash[$key] .= "a";

을뿐만 아니라, 값을 확인하면 empty() -method 약간 빠른 isset()보다 설정 - (http://www.phpbench.com/를 끝에 예 참조). if and elseif (using ===)를 사용

내가 당신을 도울 수있는 희망도보다 빠른 (==)

입니다.

(성능 출처 : http://www.phpbench.com/)

+0

나는 이것을 풀어 줘야 겠지만, 나는 그것이 설치를위한'for' 루프에 얼마나 잘 적용되는지 잘 모르겠습니다. 변수를 사용하는 예제가 있다면, 나는 모두 귀입니다. 나는 그것을 밖으로 시도 할 것이다. 감사. – onassar

+0

http://php.net/manual/en/control-structures.foreach.php는 foreach 구조가 배열과 객체와 함께 사용되어야한다는 것을 알려줍니다 – onassar

관련 문제