성능 현명한이 일에 어떤 차이가이정적 클래스
public static Class StaticTestClass()
{
public static void Function(object param) => //Do stuff with "param"
}
이를? : :
public Class ConstructedTestClass()
{
private object classParam;
public ConstructedTestClass(object param)
{
classParam = param;
}
public void Function() => //Do stuff with "classParam"
}
내가 어떤 성능 differece가 없을 것이라고 생각 한 번만 해봐도 여러 번 반복해야한다면 Function()
번을 여러 번 전화할까요?
ConstructedTestClass
의 많은 인스턴스가 메모리에 영향을 줍니까?
매개 변수가있는 StaticTestClass
을 사용하여 Function
을 호출하면 성능에 어떤 영향이 있습니까?
추신 : 이와 비슷한 질문이 있지만 많은 호출시 성능을 중시하는 것을 찾을 수 없습니다.
편집 : 나는 몇 가지 테스트를하고이 결과를 다음과 같습니다
1000000000
으로 반복하고 ConstructedClass
각 반복 만들기.
정적 방법 : 72542ms
구축 방법 : 정적 방법 빠르다 이때 83579ms
, 그때마다 Function()
호출하는 클래스를 생성하지했는데,이 결과는 다음과 같다 : 100000000 samples
]
정적 방법 : 7203ms
구축 방법 : 7259ms
이 경우에는 거의 차이가 없으므로 클래스의 인스턴스를 1000000000 개 생성 할 것이므로 가장 좋아하는 것은 무엇이든 할 수 있다고 생각합니다.
당신은 * 여러 번 말 했어요.하지만 몇 개죠? 차이를 만드는 것은 너무 많지 않을 수 있습니다. 두 가지 접근법을 비교해보고 싶으 시다면'Stopwatch' 클래스를 사용하여 시간을 측정하십시오. – user3185569
쉽게 중복 될 수있는 유사한 질문이 많이 있습니다. 그러나 더 중요한 것은 *** 당신이 실제로 코드에 윤곽을 잡아서 문제의 차이가 충분한 지 알았습니까? *** 내 추측은 당신이 그랬다면 당신이 그랬을 때 그 차이가 너무 작아서 찾을 수 없었을 것입니다. 정확하게 측정하는 것은 거의 불가능합니다. 이 수준의 마이크로 최적화에 대한 걱정보다 적절한 애플리케이션을 설계하는 것이 훨씬 낫습니다. –
당신의 말을 경주하십시오! :) https://ericlippert.com/2012/12/17/performance-rant/ – NoSaidTheCompiler