요점:
인프라 측정항목은 애플리케이션 측정항목에 연결된 경우에만 가장 효과적입니다.
효율적인 성능 최적화의 핵심은 성능 데이터에 있습니다.
일부 APM 도구는 ASP.NET에 대한 기본 지원을 제공하므로 ASP.NET을 시작하려면 최소한의 초기 설정이 필요합니다.
코드 분석 도구는 프로그램 성능에 대한 가장 자세한 보기를 제공합니다.
경량 분석 도구는 웹 페이지 성능에 대한 실시간 보기를 제공하며 개발 및 생산 환경 모두에서 사용할 수 있습니다.
"이 웹 페이지가 너무 느리게 열립니다!" 웹 사이트에 대한 이러한 불만은 특히 웹 응용 프로그램이 점차적으로 데스크톱 응용 프로그램을 대체하기 시작한 이후 자주 발생합니다. 웹은 글로벌 전달과 같은 이상적인 기능을 제공하지만 성능 수준에서는 이에 상응하는 과제도 제시합니다.
데이터 수집 및 이용 기본원칙
사용자가 "느린" 웹페이지의 URL을 제공했는데 어떻게 해야 합니까? 느린 웹 페이지 열기 문제는 어디에서 발생합니까? 처음부터 이렇게 느린 걸까요? 모든 사용자에게 느린가요? 느린 웹 페이지 열기 문제를 해결하고 일주일 후에도 다시 느려지지 않도록 하기 위해 해결해야 할 이와 같은 문제가 많이 있습니다.
인터넷에서 일부 성능 최적화 정보를 검색할 수 있지만 일반적으로 Jit, 가비지 수집, SQL 쿼리 최적화, ORM 트랩 등과 같은 특정 주제에 관한 것입니다. 최적화 구현에 대한 매력적인 전망을 고려할 때 다음과 같은 질문이 제기됩니다. 선택한 최적화 방법이 실제로 현재 성능 문제에 대해 좋은 결과를 생성할 것인지 어떻게 알 수 있습니까?
이 작품에는 뭔가 빠진 것이 있다는 것은 의심의 여지가 없습니다. 지속적으로 성능 문제를 찾는 방법이 필요합니다. 이 접근 방식을 사용하면 시스템의 느린 부분을 식별하고 성능 문제 진단을 지원하는 실질적인 조치를 취할 수 있습니다. 성능 문제가 어디에 있는지 이해하면 성능 개선이 필요한지 여부를 추가로 판단하고 이 모든 것을 이해관계자에게 설명할 수 있습니다.
위에서 언급한 성능 문제가 발견되면 정확한 식별이 이를 처리하는 보다 효과적인 방법입니다. 문제는 애초에 웹페이지 로딩 속도가 느린 것이 아닐 수도 있습니다. 시간 초과가 있는 경우(예: 로드 밸런서가 연결을 서비스하기 전에 몇 초 동안 기다릴 수 있음) 교착 상태 문제인지 느린 응답 시간 문제인지 구분하는 것은 불가능합니다. 두 문제 모두 동일한 원인이 되기 때문입니다. 시간 초과. 문제의 실제 원인을 찾으려면 데이터가 필요합니다.
성능 문제를 정확하게 식별하는 것의 중요성을 설명하기 위해 웹 애플리케이션의 응답 속도를 저하시키는 몇 가지 가능한 문제 해결 지점은 다음과 같습니다.
JavaScript가 느리게 반응합니다.
리소스 로딩 중 차단이 발생합니다.
클라이언트 측에 프록시가 있습니다.
DNS 문제
- ISP 또는 네트워크 문제
- 스위치 및 라우터
- 로드 밸런서;
- 애플리케이션 코드(타사 소프트웨어 라이브러리 포함)
- HTTP 서버(예: 때때로 ASP.net 또는 IIS)
- 제3자 서비스: 결제 서비스 제공업체, 지도 서비스 제공업체 등
- SQL Server, Redis, Elasticsearch, Rabbit MQ 등을 포함한 하위 시스템
- 에 성능 문제가 있는지 확인하세요. 클라이언트 측, 서버 측 또는 그 사이 어딘가에 있습니까?
- 느린 JavaScript, 렌더링 또는 리소스 차단?
- 로드 밸런서, 웹 서버, 하위 시스템 또는 타사 소프트웨어?
이러한 트리에서 수준별로 아래로 내려갈수록 성능 문제가 점점 더 명확해집니다. 각 문제 해결 수준에서 성능 문제를 찾는 데 필요한 데이터는 해당 문제의 정확성과 일치해야 합니다. 이때 성능 분석 도구나 SQL 실행 계획 등의 도구를 활용하는 것이 필요하다.
시간을 효율적으로 사용하려면 암달의 법칙을 반복해야 합니다:
작업이 아무리 개선되더라도 개선의 이점을 얻지 못하는 작업 부분은 이론적 작업 속도 향상을 제한합니다.
예를 들어 웹 요청의 경우 서버 처리 시간은 100ms, SQL 쿼리 시간은 5초가 소요된다고 가정합니다. 서버 처리 시간을 1밀리초 미만으로 최적화할 수 있더라도 전체 응답 시간의 개선 효과는 5.1초에서 5초로 작습니다. SQL 처리를 개선하는 데 필요한 5초는 잠재적인 이득이 가장 큰 최적화입니다.
건축 문제
최적화 문제를 계층별로 명확히 하는 이러한 하향식 방법은 단일 페이지로 제한된 최적화 문제에 좋은 영향을 미칩니다. 그렇다면 여러 페이지에 걸쳐 있는 최적화 문제에 적용하면 어떤 영향이 있을까요? 예를 들어, 일부 페이지가 간헐적으로 느리게 열리는 문제는 하위 시스템이 전체 작업 리듬을 따라갈 수 없거나 시스템을 다시 시작한 후 더 이상 작동하지 않는 오래된 네트워크 스위치가 있기 때문에 발생합니다.
이 경우 애플리케이션 중심 모니터링 접근 방식은 한계를 보여줍니다. 이를 위해서는 시스템의 각 구성 요소를 평가하기 위해 더 많은 소프트웨어 수준 및 하드웨어 수준 지표가 필요합니다.
하드웨어 수준에서 가장 먼저 떠오르는 것은 웹 서버와 데이터베이스 서버이지만 이는 빙산의 일각에 불과합니다. 시스템의 모든 하드웨어 구성 요소를 식별하고 모니터링해야 합니다. 여기에는 서버, 네트워크 스위치, 라우터, 로드 밸런서, 방화벽, SAN 등이 포함됩니다.
시스템 관리자의 정규 업무가 하드웨어 모니터링이라는 점을 고려하면 위의 모든 지표는 시스템 관리자에게 분명할 수 있습니다. 그러나 여기에 중요한 주의 사항이 있습니다. 이러한 모든 하드웨어 지표의 대부분은 소프트웨어 지표와 별도로 취급되는 경우 성능 관점에서 쓸모가 없습니다. 즉, 지표는 적절한 환경에 배치된 경우에만 가장 잘 작동할 수 있습니다.
예를 들어, 어떤 경우에는 데이터베이스 서버에서 CPU 사용량이 평균 50%인 것이 완전히 정상일 수 있지만 다른 서버의 경우 이는 시한폭탄입니다. 사용량이 가장 많은 시간대에 CPU 사용량이 50%라는 것은 더 많은 작업을 실행할 수 있는 공간이 여전히 많다는 것을 의미합니다. 그러나 유휴 기간 동안 50%의 CPU 사용량이 자주 발생하는 경우 이는 애플리케이션이 들어오는 요청의 갑작스러운 급증을 견딜 수 없음을 의미합니다.
요점은 시스템 상태를 평가하려면 CPU, 메모리, 디스크와 같은 시스템 전반의 지표가 애플리케이션 지표와 상관 관계가 있어야 한다는 것입니다. 시스템 상태에 대한 보다 완전한 보기를 제공하기 위해 요청 처리량과 같은 애플리케이션 메트릭과 CPU 사용률과 같은 시스템 메트릭을 시각화할 수 있습니다.
애플리케이션 성능 관리(APM) 도구
APM 도구는 데이터 수집, 데이터 저장, 데이터 시각화와 같은 기본 작업을 제공합니다. 일반적으로 에이전트는 데이터를 수집하여 데이터 저장소로 보내고, 웹 인터페이스를 사용하여 웹 요청에 초점을 맞춘 대시보드에서 데이터를 시각화하는 일을 담당합니다.
APM은 다음 용도로 사용할 수 있습니다.
웹 애플리케이션 성능에 대한 전반적인 시각화 제공
특정 웹 요청 성능을 시각화합니다.
웹 애플리케이션 성능이 저하되거나 여러 오류가 발생하면 자동으로 알림을 보냅니다.
비즈니스 규모가 큰 경우, 애플리케이션의 응답 모드를 확인하십시오.
여기에 예가 나와 있습니다.
다음은 기본적으로 ASP.NET 및 IIS를 지원하는 APM 도구의 전체 목록입니다.
뉴렐릭 APM
애플리케이션 인사이트
앱다이내믹스
스택파이
인프라 모니터링 도구
인프라 모니터링 도구는 성능을 보다 완전하게 반영할 수 있는 호스트 수준에서 지표를 수집합니다. 이러한 측정항목은 하드웨어 및 소프트웨어 수준에서 수집됩니다.
데이터독
OpServer - 오픈 소스
경량 분석 도구
경량 분석 도구는 특정 웹 요청에 대한 높은 수준의 지표를 제공하고 개발자가 웹 페이지를 탐색할 때 실시간 피드백을 제공합니다. 이러한 도구는 모든 환경 유형(개발 환경, QA 검증, 스테이징 환경, 프로덕션 환경 등 포함)에서 사용할 수 있으므로 특정 페이지 성능을 빠르게 평가하는 데 이상적입니다.
해당하는 모든 기능을 갖춘 분석 도구와 비교할 때 경량 분석 도구의 근본적인 차이점은 프로세스에 연결되지 않는다는 것입니다. 즉, 경량 분석 도구를 사용할 때 발생하는 오버헤드에 대해 걱정할 필요가 없습니다.
개발 환경에서는 경량 분석 도구가 현재 작성 중인 코드에 대한 실시간 피드백을 제공합니다. 응답 시간은 항상 페이지 모서리에 표시되므로 N+1 또는 느린 응답 시간과 같은 문제를 발견하는 데 매우 유용합니다.
오픈 소스 MiniProfiler
오픈소스 살펴보기
성능 카운터로 공백 메우기
Windows 시스템의 성능 카운터(성능 카운터)는 하드웨어 및 소프트웨어 수준에서 다양한 표시기를 제공합니다. 모니터링 도구는 CPU 및 메모리 사용량과 같은 성능 카운터를 보고하는 경우가 많습니다. 그러나 가비지 수집 시간 등과 같은 일부 유용한 카운터가 누락되는 경우가 많습니다. 시작하는 가장 실용적인 방법은 기본 목록을 사용하고 필요한 관련 카운터를 반복에 추가하는 것입니다. 또한 perfmon을 사용하면 성능 카운터를 실시간으로 수집하고 시각화할 수 있습니다. 많은 경우 사용자 정의 지표나 플러그인을 APM 도구와 통합하는 것도 가능합니다.
SQL 도구
데이터베이스는 많은 애플리케이션에서 일반적으로 사용되므로 지속성 계층(즉, SQL 데이터베이스)은 성능 병목 현상이 발생하는 경우가 많습니다. SQL 모니터링을 위한 전문 도구는 리소스 사용량 메트릭뿐만 아니라 대기 시간, 초당 컴파일 등과 같은 특정 메트릭도 제공할 수 있습니다.
다음 데이터를 제공하면 일부 유형의 문제를 발견하고 성능을 향상할 수 있습니다.
하나 이상의 쿼리에 대한 과도한 처리량
쿼리 문제 또는 인덱스 누락을 시사하는 과도한 CPU 사용량. 캐시할 수 있는 처리량이 높은 쿼리입니다.
SQL 모니터링 도구에는 다음이 포함됩니다.
- RedGate SQL 모니터
SQLSentry 성능 조언자
-
기타 지속성 시스템
모든 하위 시스템을 어느 정도 모니터링해야 합니다. 처리량이 낮거나 중요하지 않은 시스템의 경우 간단한 데이터 수집 및 시각화로 충분합니다. 다른 경우에는 더욱 발전된 전문적인 모니터링이 필요합니다. - 코드 분석 도구 특정 페이지나 코드 조각이 느린 것으로 식별되면 코드 분석 도구는 성능 문제 식별을 위해 가능한 가장 자세한 보기를 제공할 수 있습니다. 코드 분석 도구는 데이터베이스 쿼리 및 웹 요청과 같은 외부 호출에 대한 정확한 보기도 제공합니다.
JetBrains dotTrace
-
메모리 분석 도구
메모리 모니터링 및 가비지 수집 지표는 잠재적인 문제를 감지하는 데 도움이 됩니다. 그러나 이러한 지표는 문제가 있음을 보여주지만 문제가 어디에 있는지 알려주지 않는 경우가 많습니다. 메모리 및 가비지 수집 문제를 더 자세히 조사해야 하는 경우 메모리 분석 도구가 유용할 수 있습니다. - 분석 도구:
RedGate Ants 메모리 프로파일러
-
클라이언트 분석 도구
성능 문제는 프런트 엔드에서도 발생할 수 있습니다. 이 문제는 요즘 JavaScript로 구동되는 단일 페이지 애플리케이션의 확산으로 인해 매우 일반적입니다. 모든 주요 브라우저에는 코드 분석 및 메모리 분석과 같은 도구가 내장되어 있습니다. 이벤트 및 요청의 순서를 표시하는 도구는 문제가 프런트 엔드에서 발생하는지 백엔드에서 발생하는지 한눈에 판단하는 데 도움이 됩니다. - 도구:
파이어폭스
-
페이지 분석 도구
고급 클라이언트 도구는 성능 문제를 식별하고 해결하기 위한 편리한 시작점을 제공합니다. 이러한 도구는 응답 시간 문제의 근본 원인에 대한 높은 수준의 보기를 제공하고 이에 상응하는 몇 가지 권장 사항을 제공할 수 있습니다. 예를 들어 Google의 PageSpeed Insights는 무료 도구입니다. - 시스템 성능과 관련된 요소와 도구가 너무 많아서 복잡해 보일 수도 있습니다. 하지만 이는 데이터라는 한 단어로 요약될 수 있습니다. 시스템을 명확하고 정확하게 파악하면 성능 문제를 추론하는 것이 가능해집니다. 또한 성능 지표와 그래프를 통해 시스템 성능에 정확히 영향을 미치는 요소를 발견할 수 있으므로 즉석에서 성능 문제를 해결하는 방법을 배울 수 있습니다.
위 내용은 ASP.NET 성능 모니터링 및 최적화 시작하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

C#.netissuitable forenterprise-levelapplications는 richlibraries, androbustperformance, 그러나 itmaynotbeidealforcross-platformdevelopmentorwhenrawspeediscritical, wherelanguagesslikerustorthightordogrordogrognegrognegrognegrognecross-platformdevelopmentor.

.NET에서 C#의 프로그래밍 프로세스에는 다음 단계가 포함됩니다. 1) C# 코드 작성, 2) 중간 언어 (IL)로 컴파일하고 .NET 런타임 (CLR)에 의해 실행됩니다. .NET에서 C#의 장점은 현대적인 구문, 강력한 유형 시스템 및 .NET 프레임 워크와의 긴밀한 통합으로 데스크탑 응용 프로그램에서 웹 서비스에 이르기까지 다양한 개발 시나리오에 적합합니다.

C#은 Microsoft가 개발 한 최신 객체 지향 프로그래밍 언어이며 .NET 프레임 워크의 일부로 개발되었습니다. 1.C#은 캡슐화, 상속 및 다형성을 포함한 객체 지향 프로그래밍 (OOP)을 지원합니다. 2. C#의 비동기 프로그래밍은 응용 프로그램 응답 성을 향상시키기 위해 비동기 및 키워드를 기다리는 키워드를 통해 구현됩니다. 3. LINQ를 사용하여 데이터 컬렉션을 간결하게 처리하십시오. 4. 일반적인 오류에는 NULL 참조 예외 및 인덱스 외 예외가 포함됩니다. 디버깅 기술에는 디버거 사용 및 예외 처리가 포함됩니다. 5. 성능 최적화에는 StringBuilder 사용 및 불필요한 포장 및 Unboxing을 피하는 것이 포함됩니다.

C#.NET 애플리케이션에 대한 테스트 전략에는 단위 테스트, 통합 테스트 및 엔드 투 엔드 테스트가 포함됩니다. 1. 단위 테스트를 통해 MSTEST, NUNIT 또는 XUNIT 프레임 워크를 사용하여 코드의 최소 단위가 독립적으로 작동합니다. 2. 통합 테스트는 일반적으로 사용되는 시뮬레이션 된 데이터 및 외부 서비스를 결합한 여러 장치의 기능을 확인합니다. 3. 엔드 투 엔드 테스트는 사용자의 완전한 작동 프로세스를 시뮬레이션하며 셀레늄은 일반적으로 자동 테스트에 사용됩니다.

C# 수석 개발자와의 인터뷰에는 비동기 프로그래밍, LINQ 및 .NET 프레임 워크의 내부 작업 원리와 같은 핵심 지식을 마스터하는 것이 필요합니다. 1. 비동기 프로그래밍은 비동기를 통해 작업을 단순화하고 응용 프로그램 응답 성을 향상시키기 위해 기다리고 있습니다. 2.linq는 SQL 스타일로 데이터를 운영하고 성능에주의를 기울입니다. 3. Net Framework의 CLR은 메모리를 관리하며 가비지 컬렉션은주의해서 사용해야합니다.

C#.NET 인터뷰 질문 및 답변에는 기본 지식, 핵심 개념 및 고급 사용이 포함됩니다. 1) 기본 지식 : C#은 Microsoft가 개발 한 객체 지향 언어이며 주로 .NET 프레임 워크에 사용됩니다. 2) 핵심 개념 : 위임 및 이벤트는 동적 바인딩 방법을 허용하고 LINQ는 강력한 쿼리 기능을 제공합니다. 3) 고급 사용 : 비동기 프로그래밍은 응답 성을 향상시키고 표현 트리는 동적 코드 구성에 사용됩니다.

C#.net은 강력한 생태계와 풍부한 지원으로 인해 마이크로 서비스를 구축하는 데 인기있는 선택입니다. 1) ASP.NETCORE를 사용하여 RESTFULAPI를 작성하여 주문 생성 및 쿼리를 처리하십시오. 2) GRPC를 사용하여 마이크로 서비스 간의 효율적인 통신을 달성하고 주문 서비스를 정의하고 구현하십시오. 3) Docker Containerized 마이크로 서비스를 통해 배포 및 관리를 단순화합니다.

C# 및 .NET의 보안 모범 사례에는 입력 확인, 출력 인코딩, 예외 처리, 인증 및 인증이 포함됩니다. 1) 일반 표현식 또는 내장 방법을 사용하여 악성 데이터가 시스템에 들어가는 것을 방지하기 위해 입력을 확인하십시오. 2) XSS 공격을 방지하기 위해 출력 인코딩 httputility.htmlencode 메서드를 사용하십시오. 3) 예외 처리는 정보 유출을 피하고 오류를 기록하지만 자세한 정보를 사용자에게 반환하지는 않습니다. 4) ASP.NETIDENITY 및 CAMPLES 기반 승인을 사용하여 신청서를 무단 액세스로부터 보호합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.

SecList
SecLists는 최고의 보안 테스터의 동반자입니다. 보안 평가 시 자주 사용되는 다양한 유형의 목록을 한 곳에 모아 놓은 것입니다. SecLists는 보안 테스터에게 필요할 수 있는 모든 목록을 편리하게 제공하여 보안 테스트를 더욱 효율적이고 생산적으로 만드는 데 도움이 됩니다. 목록 유형에는 사용자 이름, 비밀번호, URL, 퍼징 페이로드, 민감한 데이터 패턴, 웹 셸 등이 포함됩니다. 테스터는 이 저장소를 새로운 테스트 시스템으로 간단히 가져올 수 있으며 필요한 모든 유형의 목록에 액세스할 수 있습니다.

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

SublimeText3 Linux 새 버전
SublimeText3 Linux 최신 버전

Dreamweaver Mac版
시각적 웹 개발 도구
