문제

나는 온라인 뉴스 포털을 만들기 전에 나에게 잘 작동하지만 일부는 홈페이지가 조금 느리다고 말합니다. 내가 그것을 생각할 때 나는 그 이유를 본다.

사이트의 홈페이지가 표시됩니다

  1. 헤드 라인
  2. 스팟 뉴스 (하위 헤드 라인
  3. 사진이있는 반점
  4. 가장 많이 읽은 뉴스 (제목)
  5. 대부분의 댓글 뉴스 (제목)
  6. 각 뉴스 카테고리의 5 뉴스 타이틀 (총 11 예를 들어 스포츠, 경제, 지역, 건강 등)

이제이 각각은 DB에 대한 별도의 쿼리입니다. Tableadapters 데이터 세트 및 데이터 레이스 (표준 데이터 ACCES 시나리오)가 있으므로 헤드 라인의 경우 Tableadapter의 데이터 레이스를 반환하는 뉴스 클래스의 비즈니스 로직을 호출합니다. 거기에서, 나는 컨트롤에 바인딩하거나 (대부분) 객체가 예를 들어 목록으로 변환하여 데이터를 사용하여 데이터를 사용하여 데이터를 사용하여 거기에서 소비합니다.

위의 각각에 대해 이것을하는 것은 잘 작동하는 것 같습니다. 적어도 그것은 큰 부하를하지 않습니다. 그러나 더 나은 방법이 있는지 궁금합니다.

예를 들어, 위에서 설명한 프로젝트는 매우 역동적 인 웹 사이트이며, 뉴스는 24 시간 멈춤에 대행사에서 도착할 때 삽입됩니다. 따라서이 경우 캐싱은 좋지 않을 수 있습니다. 그러나 반면에, 나는 지역 신문에 대한 또 다른 비슷한 프로젝트가 있다는 것을 알고 있습니다. 사이트는 하루에 한 번만 업데이트됩니다. 이 경우 : 하나의 쿼리 만 실행할 수 있습니다. 오늘날 삽입 된 모든 뉴스 항목이 포함 된 데이터 가능성을 반환 한 다음 해당 데이터 가능 및 배치 헤드 라인, 스팟 및 기타 항목을 사이트의 각 장소에 쿼리하십시오. 아니면 더 나은 대안이 있습니까? 나는 다른 사람들이 가장 효율적인 방식으로 비슷한 작업을 수행하는 방식을 방황합니다.

도움이 되었습니까?

해결책

Firebug를 사용하여로드하는 데 시간이 걸리는 요소를 찾아야한다고 생각합니다. 때로는 큰 이미지가 쇼를 망칠 수 있습니다 (그리고 화면의 이미지 크기가 항상 다운로드 크기는 아닙니다).

둘째, Yahoo Firefox 플러그인 YSLOW를 다운로드하고 느린 스크립트가 있는지 조사 할 수 있습니다.

그러나 Firebug는 최고의 검토를 제공해야합니다. FireBug를로드 한 후 'NET'탭을 클릭하여 페이지의 각 요소의로드 시간을보십시오.

다른 팁

성능이 좋지 않은 경우 첫 번째 단계는 주위를 시작하지 않습니다. 코드를 프로필하십시오. 왜 느린지 정확히 알아보십시오. 페이지를 전송하거나 렌더링하거나 실제로 페이지를 동적으로 생성하는 데있어서 속도가 저하됩니까? 단일 쿼리가 너무 오래 걸리나요?

병목 현상이 어디에 있는지 정확히 알아 내고 심장의 문제를 공격하십시오.

컨텐츠가 상당히 빠르게 업데이트되는 경우에도 캐싱은 또한 아주 좋은 생각입니다. 캐싱 메커니즘이 지능적이라면 여전히 많은 생성 시간을 절약 할 수 있습니다. 포럼과 달리 뉴스 포털이나 블로그의 경우 캐싱 시스템으로 성능을 크게 향상시킬 가능성이 높습니다.

DB에서 지연이 발생한다는 것을 알게 된 경우 테이블의 데이터 양에 따라 테이블이 적절하게 색인되어 있거나 클러스터링되거나 필요한 모든 것을 확인하십시오. 또한 동적 쿼리를 사용하는 경우 대신 저장 절차를 사용해보십시오.

하나의 데이터베이스 요청에서 여러 쿼리를 수행하려면 가능합니다. 처음에는 모든 쿼리가 완료 될 때까지 데이터를 표시하지 않으므로 다른 문제를 제외하고 최소한 단일 쿼리에 대해 DB에 다시 액세스하는 데 시간을 절약 할 수 있습니다. 데이터 세트는 테이블 모음을 보유하고 있으며 동일한 요청에서 여러 쿼리로 생성 할 수 있습니다.

ASP.NET은 캐싱 (httpcontext.cache)을위한 꽤 좋은 메커니즘을 제공하여 랩핑하여 쉽게 사용할 수 있습니다. 캐시 된 물체에 수명을 설정할 수 있으므로 기사와 제목이 최신 상태가 아닌 것에 대해 걱정할 필요가 없습니다.

이 웹 사이트에 WebForms를 사용하는 경우 페이지를 약간 빠르게로드하기 위해 필요한 컨트롤에 대해 ViewState를 비활성화하십시오. 페이지를 더 빨리로드하기 위해 다른 조정과 변경 사항은 말할 것도 없습니다 (GZIPPING, 스크립트 최소화 등).

그래도 그 일을하기 전에 앤서니는 제안했다 코드를 프로파일 링하십시오. 진정한 문제가 무엇인지 알아보십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top