php 노트:규칙 적 인 큰 파일 읽 기와 쓰기 분석
첫 번 째.file()함수 의 효율 문제.
file()함수 의 효율 은 매우 낮다.만약 규칙 적 인 파일 이 라면,예 를 들 어 줄 마다 해당 하 는 데 이 터 를 사용한다.그러면 되도록 file()함수 로 하지 마라.
file 사용 가능get_contents()그리고 explode 로 자 르 면 효율 이 3 분 의 1 이 빨 라 집 니 다.
예 를 들 어:
파일 스타일 은 다음 과 같 습 니 다:
11111
22222
33333
44444
55555
.....
nnnnnnnnnnn
file($file)로 읽 으 면 오래 걸 립 니 다.
다음 방법 으로 explode(",file")를 사용 할 수 있 습 니 다.get_contents($file));효율 이 훨씬 빨 라 질 거 야.
두 번 째,배열 의 옮 겨 다 니 는 방식.
데 이 터 는 이미 배열 에 읽 혔 습 니 다.다음은 옮 겨 다 니 는 것 입 니 다.
제 가 필요 한 것 은 배열 에 값 이 있 는 지 확인 하 는 것 입 니 다.예 를 들 어 44444 가 배열 에 있 는 지 확인 하 는 것 입 니 다.먼저 생각 나 는 것 은 in 입 니 다.array()
그러나 실험 을 해 보 니 효율 이 매우 낮 았 다.그래서 다른 사람의 코드 를 참고 하여 방법 을 생각 해 냈 다.배열 을 뒤 집어 서 모든 값 이 1 이 되 었 다.원래 의 값 이 색인 이 되 었 다.그러면 내 가 if 에($arr[색인]=1)만 쓰 면 판단 할 수 있다.과연 효율 이 훨씬 높다.
배열 을 옮 겨 다 니 는 과정 에서 배열 의 크기 가 매우 크 고 배열 의 데 이 터 를 모두 사용 할 수 있 는 것 이 아니라면 옮 겨 다 니 는 배열 을 추출 하 는 것 이 좋 습 니 다.그러면 많은 효율 을 높 일 수 있 습 니 다.
제3 조,배열 의 저장.
계 산 된 데 이 터 를 저장 합 니 다.한 파일 에 존재 합 니 다.세 가지 방법 을 고려 했 습 니 다.하 나 는 phop 파일 로 직접 쓰 는 것 입 니 다.하 나 는 serialize 이 고 하 나 는 json 문자열 입 니 다.
첫 번 째 방식
파일 에 직접 쓰기PHP 로 저장
필요 할 때 직접 require 들 어 와.
두 번 째 방식 입 니 다.변 수 를 serialize 하고 fileput_contents()파일 에 들 어 갑 니 다.사용 할 때 unserialize 는 괜 찮 습 니 다.
세 번 째 방식 은 두 번 째 방식 과 유사 하 다.단지 제 이 슨 꼬치 로 썼 을 뿐이다.
테스트 를 통 해 두 번 째 효율 이 가장 높 은 것 을 발견 했다.세 번 째 효율 은 두 번 째 효율 과 막상막하 이다.첫 번 째 효율 은 가장 느리다.내 가 예상 한 것 과 차이 가 매우 크다.정말 크게 놀 랐 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
큰 파일 의 정렬 과 무 게 를 줄 이 는 것 은 매우 간단 하 다.한 학교 에서 학생 을 모집 하 는 면접 문 제 는 큰 파일 (예 를 들 어 1T) 을 줄 에 따라 정렬 하고 무 게 를 제거 하 는 것 이다. 간단 한 해결 방안 은 큰 파일 의 단어 크기 가 고 른 몇 개의 작은...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.