스 울 이 뭐야?
PHP 는 Python 의 Twisted, Tornado, 자바 의 Netty, Mina, JavaScript 의 Node. js 프레임 워 크 가 없 으 며 비동기 네트워크 통신 프로그램 을 실현 할 수 없습니다.스 울 확장 은 이 결함 을 보완 하기 위해 탄생 한 오픈 소스 프로젝트 다.
스 울 은 Node. js 와 매우 비슷 하 며, 다른 것 은 스 울 이 병행 하여 바 텀 지원 을 제공 한 다 는 것 이다.Node. js 는 단일 프로 세 스 의 프로그램 으로 다 중 핵 서버 에서 모든 CPU 핵 계산 능력 을 발휘 할 수 없습니다.프로그램 이 다 핵 우 위 를 이용 할 수 있 도록 프로그래머 가 자체 적 으로
child_process/cluster
확장 하거나 다 중 인 스 턴 스 를 시작 해 야 합 니 다.한편, Swoole 은 바 텀 에서 다 중 스 레 드 / 다 중 프로 세 스 를 지원 합 니 다. 프로그램 이 시작 되면 여러 개의 IO 스 레 드 와 여러 개의 Worker 프로 세 스 를 만 듭 니 다.개발 자 는 스 레 드 / 스 레 드 수량 만 설정 하면 됩 니 다.스 울 이 뭐야?
Swole 은 PHP 의 비동기, 병렬, 고성능 네트워크 통신 엔진 으로 순수 C 언어 로 작 성 된 PHP 언어의 비동기 다 중 스 레 드 서버, 비동기 TCP / UDP 네트워크 클 라 이언 트, 비동기 MySQL, 비동기 Redis, 데이터베이스 연결 풀, AsyncTask, 메시지 큐, 밀리초 타이머, 비동기 파일 읽 기 쓰기, 비동기 DNS 조회 등 을 제공 합 니 다.Swoole 에는 HTTP / WebSocket 서버 / 클 라 이언 트, HTTP 2.0 서버 가 내장 되 어 있 습 니 다.
Swoole 은 PHP 의 C 확장 으로 PHP 의 고성능 고성능 병렬 TCP / UDP 서버 를 개발 할 수 있 습 니 다. Swoole 의 네트워크 IO 는 epoll / kqueue 이벤트 순환 을 기반 으로 전 비동기 가 막 히 지 않 습 니 다.비 즈 니스 논리 부분 은 다 중 프로 세 스 동기 화 차단 방식 으로 실 행 됩 니 다.즉, 서버 가 높 은 병발 과 대량의 TCP 연결 에 대응 할 수 있 도록 보장 하고 업무 코드 를 간단하게 작성 할 수 있 도록 보장 합 니 다.
스 울 은 아파 치 나 PHP - FPM 에 비해 PHP 프레임 워 크 와 전역 대상 이 매번 생 성 · 폐기 요청 에 따 른 성능 손실 을 절 약 했 지만, PHP 코드 가 누 드
echo
방식 이 라면 스 울 프레임 워 크 는 성능 우위 가 없다.스 울 씨 는 뭘 할 수 있 을까요?
스 울 을 왜 써 요?
Swoole 은 PHP 의 확장 으로서 그 핵심 목적 은 PHP 가 서버 개발 을 실현 하 는 과정 에서 발생 하 는 일련의 문 제 를 해결 하 는 것 이다. 이런 문 제 는 PHP 자체 의 집행 효율 에서 비롯 된다.그래서 서버 개발 에 서 는 일반적으로 PHP 로 문 제 를 해결 하지 않 기 때문에 스 울 이 PHP 를 새롭게 정의 했다 는 설 이 생 긴 것 이다.
전통 적 인 PHP 프레임 워 크 는 요청 을 처리 할 때마다 프레임 워 크 파일, 설정 등 을 불 러 옵 니 다.이것 은 성능 문제 의 큰 원인 이 될 수 있 으 며, Swoole 을 사용 하 는 것 은 문제 가 되 지 않 습 니 다. 한 번 에 여러 번 불 러 올 수 있 습 니 다.
협 정 에 대해 서 는 프로 세 스 와 스 레 드 를 먼저 말 해 야 합 니 다. 잘 알 고 있 습 니 다. 프로 세 스 는 자원 을 많이 차지 합 니 다. 처리 요청 을 위해 대량의 프로 세 스 를 만 드 는 것 은 득 보다 실 이 많 을 것 입 니 다.한편, 다 중 스 레 드 응용 이 비교적 많 습 니 다. CPU 차원 에서 몇 가지 핵심 이 있 으 면 몇 가지 임 무 를 수행 합 니 다. 스 레 드 가 만 들 면 스 레 드 스케줄 의 손실 이 발생 합 니 다.
한편, 협 정 은 단일 스 레 드 를 바탕 으로 이 루어 진 것 으로 CPU 자원 을 최대한 활용 할 수 있 으 며 I / O 대기 시 CPU 를 헛되이 낭비 하지 않 습 니 다.물론 협정 이 많 을 수록 차지 하 는 메모리 도 많 지만 이것 은 받 아들 일 수 있다.프로 세 스 와 스 레 드 에 비해 차지 하 는 자원 이 상대 적 으로 적다.
협 정 을 사용 할 때 파일 읽 기와 쓰기, 요청 인터페이스 등 장면 을 만나면 자동 으로 협 정 을 걸 고 CPU 를 다른 협 정 에 넘 겨 임 무 를 수행 하 게 한다. 그러면 단일 스 레 드 의 CPU 자원 이 용 률 을 향상 시 키 고 낭 비 를 줄 여 성능 을 향상 시 킬 수 있다.
스 울 과 워 크 맨 은 어떤 공통점 이 있 나 요?
현재 PHP 통신 서비스 프레임 워 크 가 가장 유행 하 는 것 은 스 울 과 워 커 맨 이다. 스 울 은 C 언어 로 개 발 된 PHP 의 확장 클래스 이 고, 워 크 맨 은 순수 PHP 로 개 발 된 것 이다.스 울 은 C 언어 로 개 발 된 PHP 확장 으로 C 언어의 장점 이 있 기 때문에 스 울 은 메모리 관리, 데이터 구조, 통신 프로 토 콜 분석 에서 Workerman 보다 현저히 우수 하 며 스 울 은 현재 통신 프로 토 콜 에서 더욱 고 급 스 러 운 통신 기능 을 제공 하고 있다.그래서 Workerman 이 개발 할 수 있 는 Swoole 은 모두 가능 하고 기능 이 더 빠 릅 니 다.마찬가지 로 스 울 의 단점 도 뚜렷 하 다. 자신의 필요 에 따라 개발 할 수 없고 바 텀 통신 서비스 개발 에 대해 알 아야 한다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.