2012-04-29 4 views
1

함수를 사용하거나 정적 메서드를 여러 스레드 프로그램에서 사용하는 것이 더 빠릅니다. 왜 더 빠른 지 설명하십시오.함수 대 정적 메서드

+4

"함수"는 실제로 Java에서 사용되는 용어가 아니므로 질문을 명확히해야합니다. 이상적으로 두 가지 접근법을 보여주는 예를 제시하십시오. –

+1

정적 대 비 정적 방법을 사용해야합니다. –

+1

그는 방법이 아니라 기능을 의미한다고 생각합니다. –

답변

2

"순수 함수"가 멀티 스레딩에 더 좋다고 들었을 것입니다. pure 함수는 종종 Java에서 정적 메서드로 구현 될 수 있지만 인스턴스 메서드로 구현 될 수도 있습니다. 요점은 멀티 스레딩 할 때 변경할 수있는 전역 변수가없는 경우 항상 더 좋습니다. 그래서 당신이 불변의 객체를 가지고 있다면 그것은 정적 함수가 순수한 함수를 구현하는 것만큼이나 좋습니다.

10

2 가지 접근법 (나는 심각하게 의심 스럽습니다) 사이에 현명한 차이가 있더라도,이를 바탕으로 프로그램을 설계해서는 안됩니다. 더 나은 성능을 얻기 위해서는 좋은 디자인을 희생해서는 안됩니다. 당신은 많이 얻지는 못하지만, 당신은 많이 잃기 때문에.

+1

+1 : 작은 차이가 있다고해도 JVM이 향상 될 때 차이가 변경된다는 사실을 실망하게 될 것입니다. 즉, 디자인을 디자인에 맞게 변경하면 나중에 실제로 느려지 며 실망 할 수 있습니다. 간단하고 명확한 것을 고수하고 비즈니스가 얼마나 다른지 말할 수 없다면 나노 초마다 걱정할 필요가 없습니다. –

+0

전혀 동의합니다. 결정적 정적 대 인스턴스는이 메소드가 논리적으로 * 특정 객체 인스턴스 또는 특정 클래스의 모든 객체에 속하는지 여부에 따라 결정되어야합니다. 작은 성능상의 불이익이있을 수 있지만 (public final - final 메서드는 가상 호출 임) 일반적으로 무시할 수 있으며 JVM은 점점 더 똑똑해지고 점점 더 효율적으로 처리됩니다. 이러한 차이가 애플리케이션에 중요한 영향을 미치는 경우 Java가 좋지 않은 선택 일 수 있습니다. –

관련 문제