2011-03-03 2 views
0

나는 C++로 작성한 프로그램을 가지고 있고 클라이언트와 실행 파일을 공유했다. 이 프로그램은 기본적으로 일부 타사 보안 라이브러리를 사용하여 입력 값을 제공하는 코드를 생성합니다.bin/exe의 효율적인 사용

테스트에서 2 백만 개의 입력 목록을 제공했습니다. 그들은 유닉스에서 입력을 읽는 파일을 열고 입력 매개 변수로 매번 실행 파일을 로딩하는 스크립트를 작성하고있다.

이것은 일회성이지만 스크립팅을 통해 다른 효과적인 방법이 있는지 묻습니다. 유닉스에서이 프로세스를 빠르게 할 수있는 방법이 있는지 궁금하다.

여기에 사용중인 다음 유닉스 스크립트가 있습니다 .... 비효율적 인 것들이 있습니다. 더 빨리 사용할 수 있습니다.

#!/usr/bin/ksh 
for input in `cat test_input.txt` 
do 
echo ${input} `my_script${input}` 
done 
# The End 

답변

1

이 유닉스 쉘 스크립트 아니지만, 파이썬 같은 스크립트 언어는 것은 이러한 유형의 작동 (그리고 기본적으로 대부분의 유닉스 기반 컴퓨터에서이다).

#!/usr/bin/python 
import subprocess 

with open('inputfile.txt', 'r') as f: 
    for line in f.readlines(): 
     retcode = subprocess.call(['execname', line]) 
     print retcode 

원하는 경우 파이프를 stdout 및/또는 stderr로 설정할 수도 있습니다.

+0

내가 가지고있는 스크립트를 살펴보고 더 효율적으로 만들 수있는 방법이 있는지 확인할 수 있습니까? 고양이처럼 느려지는 작업이 있습니까? –

+0

내가 아는 것은 아닙니다. 코어 당 하나의 프로세스를 연속적으로 생성 시키면 더 빨리 처리 할 수 ​​있지만, 그렇게하기는 쉽지 않습니다 (프로그램을 생성하는 데 잠시 시간이 걸릴뿐 아니라 하나의 프로그램에서). –