파일 실행 속도를 높이는 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 스크립트에서 라이브러리를 많이 사용할 때 실행이 더 빨라집니다.

관련 정보