2010-12-21 6 views
3

파이썬에서 실행 파일을 실행하는 가장 빠르고 효율적인 방법은 무엇입니까? os.system은 subprocess.popen보다 빠릅니다. 나는이 다른 과정에서 나오는 선을 읽을 수 있기를 원하지만 무엇보다도 속도가 중요합니다.파이썬에서 프로세스를 호출하는 가장 빠른 방법은 무엇입니까?

+6

속도가 중요한 이유는 무엇입니까? 속도가 너무 중요하다면 왜 다른 프로세스를 시작하여 (a) 일을 성취하려고합니까? (b)와 파이썬? 당신은 ** 무엇을 ** 정말로하려고합니까? –

+3

나는 칼 (Karl)이 말한 것을 두 번째로 말하며 :'os.system은 서브 프로세스 .popen보다 빠르다. 너 정말 확실한거야? 그리고 그것은 중요합니까? – user225312

+0

스레딩 등이 필요하지 않으면 성능 차이가 미미합니다. 파이썬 코드 자체와 프로세스 호출 (예 : 어떤 옵션을 사용하는지 등)을 최적화해야합니다. –

답변

4

os.systemos.execvsubprocess.Popen 사이의 속도 차이는 새 프로세스 시작 비용과 실제로 실행하는 데 필요한 컨텍스트 전환 비용으로 인해 크게 줄어들 것으로 예상됩니다. 따라서 먼저 subprocess을 사용하고 성능을 측정하는 것이 좋습니다.

가능한 성능 고려 사항은 os.systemsubprocess.Popen(shell=True, ...)이므로 추가 셸 프로세스가 만들어집니다. 대부분의 경우 해당 셸은 필요하지 않습니다. 그것을 만드는 것은 낭비입니다. 당신은 아무런 이점도 얻지 못하는만큼 프로세스의 2 배를 얻을 수 있습니다.

관련 문제