¿Existe algún comando de Linux para acelerar la ejecución de los archivos?

¿Existe algún comando de Linux para acelerar la ejecución de los archivos?

Me gustaría saber si existe algún comando de Linux para ejecutar el archivo perl más rápido.

Utilicé el siguiente comando para comprobar el tiempo de ejecución:

time ./rspd.pl

producción:

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

Algunos de mis scripts de Perl tardan mucho en finalizar. En tales casos, ¿puedo usar cualquier otro comando de Linux para acelerar la ejecución?

Respuesta1

Eso depende.

En términos generales, no. No puedes hacer eso.

Sin embargo, a veces puedes hacerlo. Por ejemplo, digamos que tiene un programa que realiza algunas operaciones avanzadas en cadenas y cambia cada línea, de forma independiente. Entonces, podrías usar GNU parallel, el programa diseñado para ejecutar programas en paralelo.

Sin embargo, necesitas saberquélo hace su programa y cuál es el cuello de botella. Algunos programas se dividen en subprocesos más pequeños de forma predeterminada, por lo que no obtendrás ninguna aceleración. Algunos programas utilizan mucho el disco y, dado que ese es el cuello de botella, no obtendrá ninguna mejora. Algunos programas tienen una lógica que no se puede utilizar en archivos divididos.

GNU Parallel divide el archivo en partes más pequeñas y ejecuta el script en cada parte, fusionando los resultados. Esto funciona bien si ejecuta algo como awkque cambia la primera y segunda columna. Esto no funciona tan bien cuando ejecutas un programa que cambia doga N, donde N es cuántas veces has visto la palabra doghasta ahora.

Respuesta2

La única respuesta esNo. No existe un comando genérico para acelerar otro ejecutable arbitrario como su script Perl.

Para hacerlo rspd.plmás rápido, primero debes saber qué está haciendo. ¿Por qué es lento? ¿CPU, RAM, red o E/S de disco? Esto se llama 'perfilado', ver por ejemplo https://stackoverflow.com/questions/4371714/how-do-i-profile-my-perl-programs

Respuesta3

No.

Lo mejor que puedes hacer es usar un comando para distribuir en diferentes subprocesos y, por lo tanto, tal vez en diferentes núcleos, haciendo que se ejecute más rápido. Por ejemplo, eche un vistazo aParalelo GNU.

Respuesta4

Almacene todas las bibliotecas de Perl en la RAM, por lo que la ejecución será más rápida cuando un script de Perl use muchas de ellas.

información relacionada