내가 파일에 두 개의 배열에서 인쇄 번호를 해요 말 :파이썬에서 한 줄씩 파일에 인쇄하는 속도를 올리는 방법은 무엇입니까?
from numpy import random
number_of_points = 10000
a = random.rand(number_of_points)
b = random.rand(number_of_points)
fh = open('file.txt', 'w')
for i in range(number_of_points):
for j in range(number_of_points):
print('%f %f' % (a[i], b[j]), file=fh)
나는이 빠른 것이 정보를 포함하는 하나의 호출을 보내는 반면, 인쇄 할 수있는 시스템 호출을 많이하고있다 생각합니다. 이 올바른지? 그렇다면 어떻게해야합니까? 이것을 구현하는 더 빠른 방법이 있습니까?
얼마나 느린가요? 테스트를 마친 후에는 너무 느리다는 결론을 얻었습니까? 그렇다면, 그 주범이 반복되는'print' 호출이라고 확신합니까? 범위 (number_of_points)에서)'print ('\ n'. 조인 ([ '% f % f'% (a [i], b [i]))') – TigerhawkT3
내 응용 프로그램에서는이 세그먼트의 속도 향상이 바람직합니다. 핀을 프로파일 링하여 '인쇄'를 범합니다. 중첩 된 for 루프에 대해 위의 작업을 어떻게 수행합니까? 위에서 편집하여 중첩 된 'for' 루프를 포함합니다. – bfletch
@ TigerhawkT3 : 그 제안은 메모리에'str'의 100M 항목'list '를 만들 것입니다. 그리고 모두를 합친 길이가'str'을 필요로하는 피크 RAM으로 생성합니다. 이는 여러 GB 이상의 메모리를 필요로합니다. 단편적인 글을 쓰지 않는 해결책으로 이것을 해결하고 싶지는 않습니다. – ShadowRanger