을
고마워 각 라인 : 파일을 읽기 위해 shutil.copy2
: 내가 사용하고 로컬 드라이브에 복사
그것을 순차적으로 읽고 다른 곳에서 저축하고 있습니다.
응용 프로그램의 성능은 데이터 액세스 패턴, I/O 시간 계산, 네트워크 대기 시간 및 네트워크 대역폭에 따라 달라질 수 있습니다.
스크립트를 한 번 실행하고 순차적으로 읽으면 파일을 복사하는 것과 같습니다. 단, 저장하는 대신 계산을 수행한다는 점만 다릅니다. 작은 덩어리의 데이터를 처리하더라도 아마 버퍼링됩니다. 사실 단일 실행의 경우, 1면을 복사하면 실제로 동일한 데이터를 두 번 읽습니다. 한 번은 사본 용으로, 한 번은 계산 용 사본입니다.
스크립트를 여러 번 실행하면 데이터 처리량을 확인해야합니다. 예를 들어 기가비트 이더넷을 사용하는 경우 1GBit/s는 125MByte/s입니다. 데이터를 더 느리게 처리하면 대역폭이 제한되지 않습니다.
네트워크 대기 시간은 작은 청크에 대해 여러 요청을 보낼 때 발생합니다. 읽기 요청시 네트워크 요청을 보내고 유한 시간에 데이터를 다시 가져옵니다. 이것은 대기 시간입니다. 한 번 큰 대기열에 대한 요청을하면 대기 시간 제한을 한 번 지불합니다. 큰 청크의 1/1000에 대해 1000 번 요청하면 1000 번 "지불"해야합니다. 그러나 이것은 아마도 네트워크 파일 시스템에 의해 사용자로부터 추상화 될 것이고 순차적 읽기의 경우에는 버퍼링 될 것입니다. 그것은 파일을 뛰어 넘고 그것의 작은 덩어리를 읽는 랜든에서 분명히 나타납니다.
초당 처리하는 바이트 수를 확인하고 하드웨어 한계와 비교하여 제한되는 항목을 확인할 수 있습니다. HDD 속도에 가깝다면 (당신의 경우에는 그렇지 않습니다) I/O-HDD에 묶여 있습니다. 네트워크 대역폭에 가깝고 낮 으면 I/O 네트워크에 의해 제한됩니다. 그것이 더 낮 으면 데이터 처리 속도 나 I/O 네트워크 대기 시간에 구속을받습니다. 그러나 I/O로 바인딩 된 경우 두 가지 방법의 차이가 나타납니다. 따라서 동일한 결과가 표시되면 계산됩니다.
무엇이 가장 먼저 복사하는 것이 읽기보다 시간이 덜 걸릴 것이라고 생각하십니까? 복사 작업을 어떻게 생각하십니까? – luk32
csvs를 읽는 경우 [CSV] (https://docs.python.org/3.3/library/csv.html) 모듈을 확인하십시오. – Shadow9043
@Barrec 비 로컬 드라이브에서 읽기 및 처리가 로컬 드라이브가 아닌 읽기, 로컬 드라이브 쓰기, 로컬 드라이브 읽기 및 처리보다 빠르지 않습니다. 그것은 분명히 더 많은 일입니다. 전체 런타임에 차이가 없다면 처리 시간이 데이터의 읽기 시간을 지배하고 더 빨리 읽는 것이 많은 영향을 미치지 않는다는 것을 의미합니다. – BlackJack