설정이 포함 된 싱글 톤 정적 클래스가 있습니다 (Settings.Instance.MemberName
).
이 클래스는 여러 프로젝트가 포함 된 솔루션 내부의 GlobalSettings 프로젝트에 있습니다.정적 멤버 vs 정적 로컬 멤버 vs 로컬 멤버
모든 프로젝트가 DLL로 컴파일되어 외부 Windows 서비스 프로세스에서 사용됩니다.
이 솔루션의 한 프로젝트에서 나는 ClassA
의 100-200 인스턴스를 가지며,이 클래스는 네트워크 소켓을 사용하여 장치에서 데이터를 폴링하는 데 사용됩니다.
폴링은 특정 로직으로 수행되며, 예를 들어 폴링 사이의 절전 시간은 Settings.Instance
, 의 설정을 사용합니다.
socket.Send(..);
Thread.Sleep(Settings.Instance.SleepBetweenSendAndReceive);
socket.Receive(..);
제 질문은 무엇을하는 것이 좋습니까?
모든 인스턴스는 위와 같이 직접 Settings.Instance.MaxNetworkRetries를 호출해야합니다. (Thread.sleep를 (_sleepBetweenSendAndReceive))를 ClassA의 생성자에서
- , 내가 로컬 정적 개인 회원
모든 설정을로드해야합니다를 ClassA의 생성자에서
를, 내가해야 모든 설정을 로컬 전용 멤버에로드하십시오.
(Thread.Sleep (_sleepBetweenSendA ndReceive))
은 무엇 최상의 성능을 줄 것이다? 아니면 전혀 차이가 없을 수도 있습니다.
해당 코드와 관련된 성능 문제가 발생 했습니까? 그리고 아마도 더 중요한 질문 : 프로그램 실행 중에 'Settings.Instance.MemberName'값이 변경 될 가능성이 있습니까? – MarcinJuraszek
그들은 변하지 않을 것입니다. 소켓을 사용하는 동안 성능 문제가 발생했습니다. 최선을 다해이 코드가 더 잘 작동하도록 만들었습니다. 이것이 사소한 향상이라고 생각합니다. 무엇보다 더 호기심이 많습니다. 교육 목적 또한 . – ilansch