2014-07-01 1 views
0

코드 시작 부분에서 변수 선언과 필요시 선언 할 때 성능 차이가 있습니까 (가독성 인수 제외)?처음에는 변수 선언으로 java에서 성능이 향상 되었습니까?

가정하자 내가 가지고있는 다음과 같은 두 가지 옵션 :

옵션 1 :

public void methodA() 
{ 
    int amount; 
    long id; 
    String name; 
    //do something 
} 

옵션 2 : 제 생각에는

public void methodB() 
{ 
    int amount; 
    //do something 
    long id; 
    //do something 
    String name; 
    //do something 
} 

이 옵션이 더 미적하고 읽기 및 따라서 나의 취향이다.

Q : 그러나 이러한 선언 위치와 관련된 성능 차이가 있는지 궁금합니다.

편집 : maaartinus 입력으로 인해 벤치 마크 예가 잘못 (현재 삭제됨) 발견되었고 벤치 마크 코드 작성/사용 방법이 추가로 향상되었습니다.

+0

Java 또는 C++에 관해 궁금한 점은 무엇입니까? 대답할만한 질문으로 구체화하십시오. –

+0

설명은 Java의 벤치마킹이 [예상보다 어렵습니다] (http://stackoverflow.com/questions/504103/how-do-i-write-a-correct-micro- 벤치 마크 인 자바). 측정 오류가 있습니다. – maaartinus

+0

@maaartinus 귀하의 링크를 가져 주셔서 감사합니다. 나는 배우고있다. – Tony

답변

1

이러한 경우에 성능 차이는 볼 수 없을 것입니다. 적어도 C++에서는 (Java에서 실제 차이를 보게되면 조금 놀랄 것입니다.

당신은 루프 같은 내부 변수의 정의를 이동하고 중요한 초기화 한 종류 인 경우는 예외입니다-의 종류는 다음과 같습니다

int func() { 
    int amount; 
    long id; 
    string name; 

    while (something) { 
     // ... 
    } 
    // ...  
} 

대 :

int func() { 
    int amount; 
    long id; 

    while (something) { 
     string name; 
    } 
    // ... 
} 

후자의 경우에는 루프가 실행되기 전에 루프를 반복 할 때마다 생성되고 초기화되어야합니다. 루프가 실행되기 전에 루프를 생성하고 초기화하는 것보다 속도가 느릴 수도 있습니다.

+0

내 편집 및 설명을 참조하십시오. – Tony

관련 문제