나는 세미 실시간 bash 스크립트를 작성 중이며 충분히 빠르게 실행되지 않습니다. 내가 이해하는 바쉬는 Bash가 여러분에게 제공하는 명령의 전체 경로를 찾기 위해 일종의 테이블을 참조합니다. 전체 경로를 지정하면 루프에서 실행되는 명령의 속도가 크게 향상됩니까?Bash 스크립트 가속화
-1
A
답변
6
가능성 없음 bash
쉘은 실제로 찾은 실행 파일을 캐시하여 첫 번째 검색 만 느려집니다. bash
맨 페이지에서
: 이름이 쉘 기능도 내장 명령도이며, 더 슬래시를 포함하지 않는 경우
은 bash는 그 이름의 실행 파일이 들어있는 디렉토리에 대한 경로의 각 요소를 검색합니다. Bash는 해시 테이블을 사용하여 실행 파일의 전체 경로 이름을 기억합니다 (아래 SHELL BUILTIN COMMUNICATION의 해시 참조). PATH에있는 디렉토리의 전체 검색은 명령이 해시 테이블에서 발견되지 않는 경우에만 수행됩니다.
는bash
스크립트를 가속화
일반적으로 두 가지의 형태로 취 bash는 내부 물건 대신에 부하가 작은 산란 과정 (cut
같은 또는 sed
)를 사용하여
- 을;
- 외부 프로세스를 생성해야하는 곳에서 더 나은 선택을합니다. 와 문자열의 첫 번째 문자 추출 최초의 예로서
:이 작업을 수행하는 프로세스를 생성해야하기 때문에
firstchar=$(echo $string | cut -c1-1)
는 끔찍한 생각이다. 당신은 같은 신속 bash
에서 똑같은 일을 수행 할 수 있습니다
firstchar=${string:0:1}
서브 프로세스를 산란의 상대적으로 엄청난 비용하지 않고 있습니다.
두 번째 요점은 하위 프로세스를 실행할 때 작업에 가장 적합한 도구를 선택한다는 것입니다. 예를 들어, 매우 간단한 awk
한 줄 짜기로 수행 할 수있는 경우 많은 grep
, cut
및 sed
명령의 방대한 파이프 라인을 사용하지 마십시오.
관련 문제
- 1. 자바 스크립트 갤러리 가속화
- 2. bash 스크립트
- 3. BASH 내가 BASH 스크립트 아래처럼이
- 4. 가장 가속화 된 자바 스크립트 스노우
- 5. Java EE 애플리케이션의 자바 스크립트 프로그래밍 가속화
- 6. Windows에서 파일 삭제 가속화
- 7. EventLogEntry.Message 가속화
- 8. jQuery로 가속화
- 9. 가속화 파일
- 10. roxygen을 가속화
- 11. LinqDataSource 가속화
- 12. Google지도 가속화
- 13. tessearct 가속화
- 14. runhaskell 가속화
- 15. OpenCV 가속화
- 16. 가속화 urlib.urlretrieve
- 17. 변수가있는 bash 스크립트를 작성하는 Bash 스크립트
- 18. Bash : postgresql 트리거 함수에서 bash 스크립트 호출하기
- 19. 아래의 BASH 코드에서 전체 bash 스크립트 행을
- 20. ImageMagick bash 스크립트 문제
- 21. Bash 스크립트 로깅 사용
- 22. xls2csv에 대한 Bash 스크립트
- 23. 기본 bash 스크립트 인수
- 24. Bash 스크립트 오류 검사
- 25. bash 스크립트 시간 종료
- 26. PHP에서 bash 스크립트 실행
- 27. 도가니 init.d bash 스크립트
- 28. 파일 모니터링 Bash 스크립트
- 29. 입력을 캡처하는 bash 스크립트
- 30. Git commit bash 스크립트
직접 시도해 볼 수 있습니다. 스크립트를 실행하고 소요 시간을 확인한 다음 지정된 경로로 다시 시도하고 시간이 덜 소요되는지 확인하십시오. –
속도를 높이려면 "이 도움이 될까요?"라고 추측하는 대신 전체 스크립트를 붙여 넣은 다음 잘못된 핫스팟이나 잘못된 작업을 식별 할 수 있도록하십시오. –
이것은 대부분의 쉘 스크립트에서 가장 큰 오버 헤드 인 외부 프로세스입니다. 예를 들어, 파일리스트가'ls'을 사용하지 않기를 원한다면,'echo *'를 사용하십시오.'cat'의 모든 사용은 아마도 unwarented입니다. 외부 프로그램을 완전히 피할 수는 없지만 최대한 사용을 최소화해야합니다. 그러면 PATH 검색도 줄어 듭니다. – cdarke