2010-12-29 2 views
1

많은 아약스를 사용하여 데이터를 표시하는 webapp에서 작업 중이며 어떤 내용에 대한 조언을 얻을 수 있는지 궁금합니다. 그렇지 않으면 응용 프로그램의 속도를 높이고 대역폭을 줄일 수 있습니다.내 웹 응용 프로그램의 성능을 향상시키기 위해 더 많은 작업을 수행해야하는 경우 몇 가지 생각과 조언이 필요합니다.

저는 제 환경에 php, mysql, freeBSD, Apache, Tomcat을 사용하고 있습니다. 나는 서버를 소유하고 있으며 모든 설정 파일 등에 대한 모든 권한을 가지고있다.

아파치 http.conf 파일에서 gzip 압축 압축을 켰다. 나는 모든 .js와 .css 파일을 모호하게하고 축소했다.

내 웹 앱은 일반적인 방식으로 작동합니다. 로그인 후 사용자는 index.php 페이지로 이동합니다. 인덱스 페이지의 모든 링크는 ajax 호출로 .php 클래스 함수를 읽습니다.이 함수는 문자열에서 html을 검색하여 기본 index.php 페이지의 div 안에 표시합니다. 이미 주요 index.php를 페이지에 존재하기 때문에 내가, 전체 "<html><head>"물건을 반환하지 않는

<table> 
    <tr> 
     <td>Data here</td> 
    </tr> 
</table> 

: HTML을 반환하는 대부분의 기능

처럼 문자열을 반환한다.

그러나 반환 된 html 문자열은 코드를 쉽게 읽을 수 있도록 탭, 공백, 주석 등으로 ​​형식이 지정됩니다. 이 페이지를 축소하고 탭, 주석, 공백을 제거하는 데 시간을 할애해야합니까? 또는 .php 페이지를 서버에서 축소하므로 무시할 수 있습니까?

웹 응용 프로그램을 구조화 한 방식이 대역폭 문제를 일으키고, .php 클래스 파일 크기를 줄이면 성능을 향상시킬 수 있는지 알아 내려고 노력하고 있습니다. 대부분의 .php 클래스는 40-50KB이고 최대 크기는 99KB입니다.

속도면에서 필자는 memcache 사용에 대해 생각해 보았지만 실제로 추가할만한 가치가 있으며 추가 구현 방법을 모르겠다. 서버에 어떤 캐싱이 켜져 있는지 모르겠습니다 ... 브라우저에 맡긴 것 같습니다 ... 나는 캐싱 분야에 정통하지 않습니다.

지금은 사이트가 느린 것처럼 보이지 않지만 나는 유일한 사용자입니다. 추가 작업을 할 가치가 있는지 궁금합니다.

어떤 조언이나 기사라도 감사하겠습니다.

미리 감사드립니다.

답변

0

내 추천은 HTML을 AJAX 호출로 보내지 않는 것입니다. 대신 JSON을 통해 기본 데이터 ("여기에 데이터"부분)를 보낸 다음 해당 데이터를 올바른 HTML로 꾸미고 DOM에 삽입하는 클라이언트 측 함수를 통해 해당 데이터를 처리하십시오. 이렇게하면 Ajax 호출 속도가 크게 향상됩니다.

+0

감사합니다. 이것을 코드 기반으로 구현하려고합니다 ...그것은 PHP 루프, 함수, 데이터 처리 및 HTML 구조의 일부를 클라이언트에게 넘겨주기 위해 프로젝트 초기에 결정되었습니다. 클라이언트가 html로 데이터를 장식하도록 코드 구조를 다시 실행하는 데는 시간이 걸릴 것이지만 귀하의 제안이 좋은 것이라고 생각합니다. 감사. 감사합니다 oswald – Ronedog

0

Memcache는 데이터를 캐시 할 수있는 API를 제공합니다. 당신이 필요로하는 것 (내 의견으로는 더 중요하다)은 캐시 할 대상과 캐시를 언제 무효로 할 것인지에 대한 전략이다. 이것은 소스 코드를 보면 알 수 없으며 사이트 사용 방법에서 비롯됩니다.

그러나 opcode 캐시 (예 : APC)를 바로 사용할 수 있습니다.

+0

. 이것이 나에게 새로운 것처럼 APC에 대해 읽어 볼 것입니다. 그래서 기본적으로 더 자주 사용되는 영역을 파악하기 위해 사이트를 더 분석해야하고 해당 페이지에 캐싱을 구현해야합니까? – Ronedog

0

코드 미장원은 기계가 아닌 인간을위한 것입니다.
최적화의 일환으로 이륙해야합니다.

또는 응용 프로그램에서 특정 조건 일치 (디버그 모드와 같은)를 확인하는 플래그를 추가하기 만하면 멋지게 형식화 된 자바 스크립트가 반환됩니다. 그렇지 않으면 공백이 처리 할 수있는 것이 아닙니다.


APC

당신은 항상 사용 APC는 연산 코드로 & 캐시 PHP 스크립트를 컴파일해야한다.

왜?

  1. 변화가 거의 배포
  2. 모든 스크립트는 연산 코드 준비가되었는지 후, 서버가
  3. 한 번 컴파일 즉석에서 이진 연산 코드에 일반 텍스트 스크립트를 컴파일하는 데 필요한하지 않는지 확인하고, 많은 것을 사용하십시오

어떤 이점이 있습니까?

  1. 낮은 실행주기는 요청이 현재 환경에서 이초에서 제공하는 경우
  2. 적은 메모리 (모두 관련)
  3. 이 간단한 수학은, 지금 APC와가 제공됩니다 소비하는 일반 텍스트 스크립트를 컴파일 0.5 초 안에 번 4 번 4 번 요청하면 APC가 2 초, 더 나은 성능을 얻을 수 있습니다. 이전에 50 명의 동시 사용자를 수용 할 수 있었으므로 이제 200 명의 동시 사용자를 허용 할 수 있습니다.

Memcache - NO GO?

에 달려 있습니다. 단일 호스트 환경에 있다면 아마 좋지 않을 것입니다. memcache의 가장 큰 장점은 정보 공유 & 배포 (여러 서버 환경, 한 번 캐시 및 많은 사용을 의미 함)입니다.

등? 만료 헤더

  1. 정적 파일 memcache에/디스크 캐시 또는 데이터베이스 (예 : 보고서/통계 생성과 같은 고가의 요청)에
  2. 캐시 비싼 요청 (prime cache concept, 아니 요구 대역폭 빠른 없으며, 저장)
  3. 항상 최고의 최적화를위한 코드를 검토 (하지만 오버하지 않는다)
  4. 항상 벤치 마크를 수행하고 그 결과를 비교
  5. 미세 조정 아파치/톰캣 구성
  6. (이고 현재)
  7. 최소 라이브러리/확장자로 PHP를 다시 컴파일하고 런타임 동안 필요한 라이브러리를로드하는 것을 고려하십시오 (예 : mysqli를 사용하는 응용 프로그램, PDO를 사용하지 않고 유지할 이유 없음)
+0

이 해명을 가져 주셔서 감사합니다. – Ronedog

관련 문제