나는 많은 양의 데이터를 생성하는 프로그램을 가지고 있는데, 이것은 데이터가 생성 될 때마다 한 줄씩 csv 파일에 씁니다. excel에서 csv 파일을 열 수 있다면 약 10 억 개의 셀 (75,000 * 14,600)이됩니다. 나는 System.OutOfMemoryException을 던져서 액세스하려고 할 때마다 (심지어이 크기의 배열을 만들 때도) throw됩니다. 누구든지 데이터를 vb.net으로 가져올 수있는 방법을 알고 있다면 간단한 작업 (모든 데이터를 한 번에 사용할 수 있어야 함)을 수행 한 다음 모든 아이디어를 시도해 볼 것입니다.vb.net에서 매우 큰 배열을 처리하는 방법
나는 사용 된 램의 양을 늘려 보았지만 다른 기사들/게시물들은 이것이 10 억 마크 전에 짧게 돌아갈 것이라고 말한다. 여기에 시간 문제는 없습니다. 며칠/주로 처리 할 수 있다고 가정합니다 (1 년에 한 두 번만 실행합니다). 어쨌든 그것을 할 수 없다면 내가 생각할 수있는 유일한 해결책은 ~ 75,000까지의 컬럼 수를 늘리는 것입니다 (가능하다면 다른 방법으로 데이터를 쓸 수 없습니다). 이걸 처리 할 수있는 또 다른 언어가 있다면? 로,
Dim bigmatrix(75000, 14600) As Double
많은 감사, 프레이저 :
왜 모든 데이터를 한 번에 사용할 수 있어야한다고 말합니까? 최선의 접근법은 귀하의 모든 힘으로 성명서에 질문하는 것입니다. :-) –
Jason, 어떻게하면 데이터를 한 행씩 파일에 씁니다. 그런 다음 데이터를 바꿔야합니다 (예 : 행 등). 모든 날짜없이이 일을하는 합리적인 방법을 볼 수 없습니다. 당신이 할 수 있다면 좋을 것입니다! :) – FraserOfSmeg
방금 거대한 CSV를 조 변경하려고한다면, 개념적으로 배열을 1,000 x 1,000의 큰 덩어리로 나누십시오. 즉, 한 번에 1000 개의 행을 읽고, 그 전조를 계산하고, 각 청크를 파일에 기록하십시오. 그런 다음 해당 부분을 (중첩 된 형식으로) 읽고 최종 파일을 스트리밍하는 병합 통과를 수행 할 수 있습니다. –