개인 PC의 로컬 호스트에서 WAMP 서버 (32 비트) 를 사용하고 있습니다. 긴 문장이 포함 된 CSV 파일 (CSV 파일에는 20,000 행의 정보가 포함됨)을 읽어 정보를 가져 오는 큰 (매우 큰) 다차원 배열이 있습니다. 문제는 몇 가지 계산을 수행 할 때 다음 오류가 발생한다는 것입니다.
치명적인 오류 : 메모리 부족 (1134559232 할당 됨) (할당하려고 x : \ wamp \ www \ xxx 에서 32768 바이트)
upload_max_filesize
, post_max_size
, max_file_uploads
및 memory_limit
증가와 같은 다른 솔루션을 시도했거나 PHP에서 -1로 설정했습니다. ini 또는 내 스크립트의 시작 부분에서도 아무도 작동하지 않습니다. 제발 도와주세요. 어떤 이유로 인해 코드를 다시 설계하거나 WAMP 버전을 변경하도록 요청하지 마십시오. 대단히 감사합니다. :)
해결 방법
마침내 해결책을 찾을 수있었습니다. PHP 컬렉션 가비지가 가득 차면 해제 할 방법이 없다는 것을 알았습니다. Unset
및 gc_collect_cycles ()
도 효과적이지 않습니다. 유일한 방법은 다른 코드 섹션에서 Function
을 사용하는 것입니다. 제 경우에는 for 루프에 큰 스크립트가있어서 함수의 모든 코드를 복사했고 루프에서 함수를 호출했습니다. 함수가 조용해질 때마다 메모리가 해제됩니다. 함수에 memory_get_usage ()
를 한 번 추가하고 함수에서 한 번 추가하여 차이점을 확인하여 테스트 할 수 있습니다.
참조 페이지 https://stackoverflow.com/questions/23050090
'MySql' 카테고리의 다른 글
MySQL 준비된 명세서의 내용을 어떻게 볼 수 있습니까? (0) | 2020.12.07 |
---|---|
MySQL mysqli_query를 실행하는 데 문제가 있습니다. (0) | 2020.12.07 |
MySQL 오류 "DEFAULT 절에 CURRENT_TIMESTAMP가있는 TIMESTAMP 열이 하나만있을 수 있습니다."내가 잘못하지 않은 경우에도 (0) | 2020.12.07 |
MySQL 정의되지 않은 클래스 상수에 정의되지 않은 클래스 상수 'MYSQL_ATTR_INIT_COMMAND'(PHP 5.5.3) (0) | 2020.12.07 |
MySQL 테이블이 비어 있는지 확인하십시오. COUNT (*)가 0 대 LIMIT (0,1) 결과가 있습니까? (0) | 2020.12.07 |
댓글