디렉토리 목록을 만들고 그 안에있는 파일을 읽는다면 디렉토리의 모든 파일 목록을 반환하는 것과 비교할 때 어느 시점에 수익률의 성능이 저하되기 시작합니까?파이썬에는 "yield statements too many"같은 것이 있습니까?
여기에 (잠재적으로 거대한) 목록을 반환하는 데 충분한 RAM이 있다고 가정합니다.
추신 : 나는 코멘트에 코드를 인라 인하는 데 문제가있어 여기에 몇 가지 예를 들어서 보겠습니다.
def list_dirs_list():
# list version
return glob.glob(/some/path/*)
def list_dirs_iter():
# iterator version
return glob.iglob(/some/path/*)
둘 다 glob에 대한 호출은 os.listdir을 사용하므로 성능면에서 동등한 것처럼 보입니다. 그러나 this Python doc은 glob.iglob가 더 빠르다는 것을 의미하는 것으로 보입니다.
관심사를 나타내는 코드를 공유 하시겠습니까? –
@saidimu : 나는 그 페이지를보고있다. 그러나 나는 그것이 'iglob()'가 더 빠르다는 것을 볼 수 없다. 그것은'iglob()'가 결과를 * 실제로 "모두 동시에 저장하지 않고"리턴하지만 * 반드시 성능에 대해 암시하지는 않습니다. –
나는 이들 모두를 동시에 저장하지 않아도 양의 속도 (및 메모리) 함의를 가지고 있다고 가정 할 것인가? – saidimu