2010-03-31 5 views
1

입니다. 텍스트 파일을 읽고 처리해야합니다. File.ReadAllLines 메서드를 사용할 수 있다면 내 처리가 쉬울 것이지만 청크별로 읽지 않고이 메서드로 읽을 수있는 파일의 최대 크기가 무엇인지 확실하지 않습니다. 파일 크기가 컴퓨터 메모리에 달려 있다는 것을 알고 있습니다. 그러나 평균적인 기계에 대한 권장 사항은 아직 있습니까? 귀하의 빠른 답변에 큰 감사드립니다. 고마워, LevFile.ReadAllLines의 최대 파일 크기는

+0

궁금합니다. 시도한 가장 큰 파일 크기는 얼마입니까? 상자에 얼마나 많은 기억이 있습니까? 예외가 발생 했습니까? –

답변

0

파이썬에도 불구하고 1-2GB 이전에 이와 같은 작업을했습니다. 하지만 .NET에는 문제가 있다고 생각하지 않습니다. 하지만 일회성 처리에만이 작업을 수행합니다.

이 작업을 정기적으로 수행하는 경우 파일을 한 줄씩 검토 할 수 있습니다.

0

파일 크기와 실행중인 응용 프로그램에서 사용할 수있는 컴퓨터 메모리를 알지 못하는 경우 나쁜 디자인입니다.

더 나은 해결책은 memory mapped files입니다. 그들은 페이지 파일 저장소로 자신을 사용합니다.

1

32 비트 운영 체제에서는 최대 550 메가 바이트의 메모리가 연속적으로 사용되므로 절반 크기의 파일을로드 할 수 있습니다. 프로그램이 잠시 동안 실행되고 가상 메모리 주소 공간이 조각난 후에는 빠르게 내려갑니다. 100 메가 바이트는 당신이 바라는 모든 것입니다.

64 비트 운영 체제에서는이 문제가 없습니다.

한 번에 한 줄씩 텍스트 파일을 읽는 것이 모든 줄을 읽는 것만큼 빠르기 때문에 실제 문제가 될 수 없습니다.

관련 문제