>  기사  >  백엔드 개발  >  시스템 메모리에 상주하는 Asf PHP 개발 구성 정보

시스템 메모리에 상주하는 Asf PHP 개발 구성 정보

藏色散人
藏色散人앞으로
2019-11-22 10:11:162217검색

기존 MVC와 Asf의 비교

기존 MVC 프레임워크

구성 파일은 각 요청마다 다시 로드됩니다. 구성 파일 내용이 업데이트되지 않은 경우에도 다시 로드됩니다. 이것은 매우 나쁜 디자인입니다. (Opcache가 켜진 상태에서는 아직 실행 시간이 존재함)

Asf Framework

읽은 구성 파일의 내용은 시스템 메모리에 저장되고, 다음 요청은 메모리로 직접 가서 데이터를 읽습니다. Asf는 또한 매우 간단한 구성 구현 Config Cache를 제공합니다.

어떤 시나리오에서 구성 캐시를 활성화하는 것이 적합합니까?

● 웹 애플리케이션 시나리오에서는 활성화하는 것이 좋습니다. 최신 버전에서는 기본적으로 활성화할 수도 있습니다.

● CLI 및 다중에서 활성화하는 경우에도 효과적입니다. 스레드 모드이지만 PHP 스크립트는 매번 활성화됩니다. 실행 후 릴리스

● 지원되는 데이터 유형은 문자열, 배열, 정수, 부울, 더블, 부동 소수점, null

Flowchart

시스템 메모리에 상주하는 Asf PHP 개발 구성 정보

캐싱 방법 활성화

<?php
ini_set(&#39;asf.cache_config_enable&#39;, 1); /* 开启配置文件缓存 */
ini_set(&#39;asf.cache_config_expire&#39;, 300); /* 设置缓存多少秒之后过期, 300 seconds by default */

프레임 입력 모드에서 php/ini 구성 파일 로드

<?php
define(&#39;APP_PATH&#39;, dirname(__DIR__));
/* 缓存 config.ini 文件 */
$app = new Asf\Application(APP_PATH . &#39;/config/config.ini&#39;);
$app->run();

AsfConfigPhp php 구성 파일 로드

<?php
$conf_php =  new Asf\Config\Php(CONFIG_PATH . &#39;/config.db.php&#39;);

AsfConfigIni ini 구성 파일 로드

<?php
$conf_ini =  new Asf\Config\Ini(CONFIG_PATH . &#39;/config.redis.ini&#39;);

구성 콘텐츠 메서드 읽기

<?php
print_r(Asf\Application::getInstance()->getConfig()->toArray());
print_r(Asf\Config::get()->toArray());

성능 테스트

● Opcache가 활성화되면 다음으로 간단히 Config Cache 성능 테스트를 했습니다. ab -c100 -n10000

● 구성 파일에 있는 구성 항목의 복잡성과 성능 지표 사이에는 직접적인 관계가 있습니다

캐시 활성화 asf.cache_config_enable = 1

Total transferred:      16109994 bytes
HTML transferred:       14259994 bytes
Requests per second:    6859.01 [#/sec] (mean)
Time per request:       14.579 [ms] (mean)
Time per request:       0.146 [ms] (mean, across all concurrent requests)

캐시 없음

Total transferred:      16080000 bytes
HTML transferred:       14230000 bytes
Requests per second:    6398.22 [#/sec] (mean)
Time per request:       15.629 [ms] (mean)
Time per request:       0.156 [ms] (mean, across all concurrent requests)

Tips

Cache Config는 공유 메모리 기반이 아니고 PHP 프로세스 기반이므로 공유 메모리 문제가 없습니다. 자물쇠.

추천: "PHP 튜토리얼"

위 내용은 시스템 메모리에 상주하는 Asf PHP 개발 구성 정보의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 segmentfault.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제