Linux에 파일 실행 속도를 높일 수 있는 명령이 있습니까?

Linux에 파일 실행 속도를 높일 수 있는 명령이 있습니까?

Perl 파일을 더 빠르게 실행하는 Linux 명령이 있는지 알고 싶습니다.

실행 시간을 확인하려면 다음 명령을 사용합니다.

time ./rspd.pl

산출:

1.003u 0.480s 3:34.90 0.6% 0+0k 56+5520io 0pf+0w

일부 Perl 스크립트를 완료하는 데 시간이 오래 걸립니다. 이 경우 실행 속도를 높이기 위해 사용할 수 있는 다른 Linux 명령이 있습니까?

답변1

때에 따라 다르지.

일반적으로 말하면 그렇지 않습니다. 당신은 그렇게 할 수 없습니다.

그러나 때로는 그렇게 할 수도 있습니다. 예를 들어, 문자열에 대한 고급 조작을 수행하고 각 줄을 독립적으로 변경하는 프로그램이 있다고 가정해 보겠습니다. 그런 다음 parallel프로그램을 병렬로 실행하도록 설계된 프로그램인 GNU를 사용할 수 있습니다 .

그러나 당신은 알아야합니다무엇프로그램의 기능과 병목 현상은 무엇입니까? 기본적으로 일부 프로그램은 자체적으로 더 작은 하위 프로세스로 분할되므로 속도가 향상되지 않습니다. 일부 프로그램은 병목 현상으로 인해 디스크를 과도하게 사용하므로 아무런 개선도 얻을 수 없습니다. 일부 프로그램 논리는 분할 파일과 함께 사용할 수 없습니다.

GNU Parallel은 파일을 더 작은 부분으로 나누고 각 부분에서 스크립트를 실행하여 결과를 병합합니다. awk첫 번째와 두 번째 열을 변경하는 것과 같은 작업을 실행하면 훌륭하게 작동합니다. N으로 변경되는 프로그램을 실행하면 제대로 작동하지 않습니다. 여기서 N은 dog지금까지 해당 단어를 본 횟수입니다.dog

답변2

유일한 대답은아니요. 다른 임의의 실행 파일(예: Perl 스크립트)의 속도를 높일 수 있는 범용 명령은 없습니다.

속도를 높이려면 rspd.pl먼저 그것이 무엇을 하는지 알아야 합니다. 왜 느린가요? CPU, RAM, 네트워크 또는 디스크 I/O? 이를 "분석"이라고 합니다. 예를 참조하세요. https://stackoverflow.com/questions/4371714/how-do-i-profile-my-perl-programs

답변3

아니요.

당신이 할 수 있는 최선의 방법은 명령을 사용하여 여러 스레드에 분산하여 더 빠르게 실행되도록 하는 것입니다. 예를 들어GNU 병렬.

답변4

모든 Perl 라이브러리를 RAM에 저장하면 Perl 스크립트가 많은 라이브러리를 사용할 때 실행이 더 빨라집니다.

관련 정보