2017-09-27 1 views
0

내 asp.net 코어 2.0 응용 프로그램에서 클레임 기반 권한을 사용하고 있으며 내 응용 프로그램 전체에서 클레임 이름을 하드 코딩하는 대신 주입 된 구성 개체 (appsettings.json)에 설정하려고합니다._config.GetSection ("section") [ "key"] 사용시 성능에 영향이 있습니까?

그러나 내가 그 도로를 뛰어 내려 가기 전에 성능에 대한 우려가 있다는 점이 궁금했습니다. 이 같은

뭔가이 같은 대

var subscriptionClaim = user.Claims.FirstOrDefault(c => c.ClaimType == _config.GetSection("ClaimNames")["BasicMembership"]); 

:

var subscriptionClaim = user.Claims.FirstOrDefault(c => c.ClaimType == "basicMembership"); 

나는이 시점에서, 4-5 주장이 나는 다양한 지점에서 사용자로부터 추가/제거있어왔다 내 앱에서. 이름을 appsettings로 압연하는 이유는 내가 클레임 이름을 오타로 표시하지 않도록하기 위해서입니다. 그리고 앞으로 어떤 이유로 든 나는 더 쉽게 변경할 수 있습니다.

그러나 _config.GetSection("section")["key"]);에 눈에 띄는 성능 저하가있는 경우에는 그렇지 않을 수도 있습니다. 나는 눈에 띄는 퍼포먼스 히트가 아니라, 확신하고 싶었다.

미리 감사드립니다.

+0

https://ericlippert.com/2012/12/17/performance-rant/ – DavidG

+0

알아내는 가장 좋은 방법은 스스로 확인하는 것입니다. 아무것도 알아 내고 깨닫는 것이 가장 좋습니다. – BugFinder

+0

가장 좋은 방법은 다음과 같습니다. 구성 주위의 래퍼 클래스 파일에서 설정 데이터를 한 번만 검색하고 유지하도록 정적으로 만듭니다. 구성 값을 원할 때마다 래퍼 클래스를 사용하십시오. –

답변

1

_configIConfiguration입니까?

일반적으로 응용 프로그램 시작시 구성 개체를 작성하면이 정보가 메모리에로드되므로 성능상의 차이는 미미합니다.

그러나 다른 언급과 같이 성능이 우려된다면 직접 테스트하는 것보다 더 좋은 방법은 없습니다.

+0

감사합니다. 이것은 시작시 빌드되는 IConfiguration 객체입니다. 자동으로 asp.net 코어 2.0 응용 프로그램입니다. – Chaddeus

관련 문제