>  기사  >  백엔드 개발  >  translateaccelerator PHP 코드 속도를 높이기 위해 eAccelerator를 사용하는 목적

translateaccelerator PHP 코드 속도를 높이기 위해 eAccelerator를 사용하는 목적

WBOY
WBOY원래의
2016-07-29 08:36:38967검색

eAccelerator를 사용하여 PHP 코드 가속화
eAccelerator는 정말 좋은 기능입니다(이전 버전은 Truck-mmcache입니다).
간단히 말하면 PHP(PHP5 지원)로 동작하여 공유 메모리나 디스크 파일을 통해 데이터를 교환하는 캐싱 시스템입니다.
PHP 소스 코드를 "인코딩"(부적절하게 "암호화"라고도 함)하고 PHP 실행의 중간 코드를 캐시하여 속도를 높이는 데 널리 사용됩니다. eA의 설치 및 사용에 대한 자세한 기사가 많이 있습니다. 이번에 추천하고 싶은 것은 프로그램 설계 및 캐싱을 지원하는 데 사용하는 것입니다.
매우입니다. 편리하고 안정적인 네이티브 머신 캐시 구현 방법, 현재 디자인의 이 부분은 공유 메모리만 지원하는 것으로 보이므로 Unix 계열 OS에만 사용할 수 있으며 Windows는 그다지 운이 좋지 않습니다.
1.eaccelerator_put($key, $value, $ttl=0)
$key를 키 이름으로 사용하여 $value를 캐시에 저장합니다(객체 유형은 php4에서 지원되지만 소스 코드를 보면 zend2)에서는 지원되지 않는 것 같습니다. $ttl은 이 캐시의 수명 주기이며 단위는 초입니다. 이 매개변수를 생략하거나 0으로 지정하면 서버가 다시 시작되고 지워질 때까지 시간 제한이 없음을 의미합니다.
2.eaccelerator_get($key)
$key를 기준으로 해당 eaccelerator_put()에 저장된 데이터를 캐시에서 반환합니다. 캐시가 만료되었거나 존재하지 않는 경우 반환 값은 NULL입니다.
3 .eaccelerator_rm ($key)
$key를 기준으로 캐시 제거
4. eaccelerator_gc()
만료된 모든 키 제거 및 정리
5. 다중 프로세스 및 다중 스레드 작업 중에 데이터 동기화를 보장하는 작업입니다. 잠금을 해제하려면 eaccelerator_unlock($key)을 호출하거나 요청이 끝날 때 프로그램이 자동으로 잠금을 해제할 때까지 기다려야 합니다.
예:
eaccelerator_lock("count")
eaccelerator_put("count",eaccelerator_get("count") 1)); > 6. eaccelerator_unlock($key)
$key를 기준으로 잠금을 해제합니다.
7. eaccelerator_cache_output($key, $eval_code, $ttl=0)
$ttl에 대한 $eval_code 출력을 캐시합니다. 초, ($ttl 매개변수는 eacclerator_put과 동일합니다.)
예:
8. eaccelerator_cache_result($key , $eval_code, $ttl=0)
$ttl 초 동안 $eval_code 코드의 실행 결과를 캐시합니다. ($ttl 매개변수는 eacclerator_put과 동일합니다.)
예:

9. > $ttl 초 동안 현재 전체 페이지를 캐시합니다.
예:
eaccelerator_cache_page($_SERVER['PHP_SELF'].'?GET='.serialize($_GET),30)
echo time(); 🎜> phpinfo();
?>
10. eaccelerator_rm_page($key)
eaccelerator_cache_page()에 의해 실행된 캐시를 삭제합니다. 매개변수도 $key입니다.
( 간단한 예 성능을 확인하세요. cli 모드에서는 작동하지 않을 수 있습니다. )
class test_cache {
var $pro = 'hello'
function test_cache();
echo "객체가 생성되었습니다!
n";
}
function func() {
echo ', the world!'
}
function now($t ) {
echo date('Y-m-d H:i:s', $t)
}
}
$tt = eaccelerator_get("test_tt")
if (!$tt )
{
$tt = new test_cache
eaccelerator_put("test_tt", $tt)
echo "캐시되지 않았습니다!
n"
else {
echo "캐시됨
n";
echo $tt->pro
$tt->func(); time() 86400);
?>
다음은 네티즌들의 댓글입니다.
------------ ----- ------------------- ----- -
showsa 답변 날짜: 2005-12-31 19:51:56 win도 지원합니다! http://www.arnot.info/eaccelerator/
Albatross의 답변 날짜: 2006-01-04 17:17:37 eAccelerator 0.9.4-rc1 최신 버전에는 /로 나타나는 작은 버그가 있습니다. var/log/httpd 다수의 [warn] (32) 깨진 파이프: write Pipe_of_death 오류 메시지가 /error_log에 나타납니다. 해결 방법: debug.c 파일을 수정하세요. --------------- ----------- ---------- /**  * 디버그 시스템을 닫습니다.  */ void ea_debug_shutdown () { fflush (F_fp ); // 소스 문, 파일을 닫을 때 감지되지 않음 //fclose (F_fp); //if (F_fp != stderr) fclose (F_fp) }
soichiro가 다음 위치에 응답했습니다. 2006-01-10 22:01:21eAccelerator/truck- mmcache는 이제 부하가 높은 두 개의 시스템을 가지고 있습니다. 하나는 Drupal 기반이고 다른 하나는 PostNuke 기반입니다. eAccelerator를 사용한 후 Drual의 속도는 100배 증가했고 PostNuke가 10배 증가한 이유는 그 자체 때문입니다.
wangyih 답변: 2006-04-08 10:48:11
showa 답변: 2006-04-08 23:23:44 Squid와 비교하면 어떻습니까? 차이점은 Squid가 페이지 실행 결과를 캐시한다는 것입니다. 하지만 실시간으로 표시되지 않으면 Squid가 확실히 좋습니다. eaccelerator /memcache를 사용하면 효율성이 크게 향상될 수 있습니다
Yarco 답변: 2006-04-09 10:00:43 그런데 인코딩된 코드와 충돌한다고 합니다... 얼마나 호환되는지 모르겠습니다. 지금은 젠드와 함께 있어요

위에서는 TranslateAccelerator의 내용을 포함하여 PHP 코드를 가속화하기 위해 eAccelerator를 사용하는 TranslateAccelerator의 목적을 소개했습니다. PHP 튜토리얼에 관심이 있는 친구들에게 도움이 되기를 바랍니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.