¿Cual es el lenguaje scripting mas rapido?

Iniciado por Segadorfelix, 4 Febrero 2013, 23:28 PM

0 Miembros y 2 Visitantes están viendo este tema.

Segadorfelix

Hola a todos  ;D , desde siempre he tenido la siguiente duda, en que orden van del mas rápido al mas lento(compilado y no compilado) los siguientes lenguajes:
-Perl
-Phyton
-Ruby
-Batch
-Pascal
-Vbs

Gracias por adelantado.  :D

xassiz~

Los lenguajes de scripting no son compilados, son interpretados, y a Pascal podías ir quitándolo de la lista :xD

De todas formas no creo que se pueda ordenar con exactitud la velocidad de ejecución de lo que propones (dejando Batch y VBScript a un lado, la cosa andaría entre los tres primeros). La velocidad de tus programas va a depender la máquina donde se ejecuten y, sobre todo, de la eficiencia con la que hagas tu código.

Saludos!

Eleкtro

#2
Los lenguajes de scripting no se pueden compilar, se interpretan (añades el intérprete + tu script, lo juntas todo en un .exe y tachán), así que la velocidad en ese aspecto es la misma, porque se usa el intérprete en los dos casos xD, aunque al ""compilar"", el código y las librerías que uses tienen que descomprimirse a una carpeta temporal, y eso puede ralentizar bastante el tiempo de inicio de ejecución si se trata de librerías muy pesadas de tamaño.

Sobre lo otro, al menos yo no te lo puedo aclarar al 100%, pero sin duda alguna Batch es el más lento de la lista, porque tiene que usar executables para casi todo, y porque es procesamiento por lotes.

Siempre he escuchado que el más veloz es Perl, aunque debe estar bastante equilibrado Perl/python/ruby,
Pero de todas formas no tiene mucha importancia si python/perl/ruby es más rápido o más lento, si la idea es programar aplicaciones no vas a notar la diferencia entre uno y otro... (Menos en Batch, ahí si que se nota mucho).

Pero si se quiere conseguir el máximo performance para usar python/ruby/perl en programación web, eso ya me parece más útil, y hay varios tests en Google:

CitarRuby vs. Python: Web Performance

Everything was benchmarked by running multiple iterations of apache-bench from the terminal on my MBP. I used Green Unicorn as my test WSGI server, and Thin for Rack apps.

WSGI (PyPy 1.6.0): ~5300 req/sec
WSGI (Python 2.6.1): ~3200 req/sec
WSGI (Python 2.7.2): ~3000 req/sec

Rack (Ruby 1.9.2 MRI):  ~4500 req/sec
Rack (Ruby 1.8.7 MRI): ~4050 req/sec

Rawr/WSGI (PyPy 1.6.0): ~4900 req/sec
Rawr/WSGI (Python 2.6.1): ~2750 req/sec
Rawr/WSGI (Python 2.7.2): ~2700 req/sec

Sinatra/Rack (Ruby 1.9.2 MRI): ~1900 req/sec
Sinatra/Rack (Ruby 1.8.7 MRI): ~1399 req
/sec


EDITO: Aquí tienes otro test Ruby 1.9 vs Python 3, algunas cosas las procesa más rápido Ruby, y en otras Python: http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=yarv&lang2=python

Un saludo.








Segadorfelix

Muchas gracias xassiz y EleKtro H@cker
Cita de: xassiz~ en  4 Febrero 2013, 23:39 PM
Los lenguajes de scripting no son compilados, son interpretados, y a Pascal podías ir quitándolo de la lista :xD
¿No es scripting?  :huh:

Gracias EleKtro H@cker las mediciones me sirven mucho.
Citar...pero sin duda alguna Batch es el más lento de la lista...
Como todo lo que hace microsoft.
CitarLos lenguajes de scripting no se pueden compilar, se interpretan (añades el intérprete + tu script, lo juntas todo en un .exe y tachán), así que la velocidad en ese aspecto es la misma, porque se usa el intérprete en los dos casos xD, aunque al ""compilar"", el código y las librerías que uses tienen que descomprimirse a una carpeta temporal, y eso puede ralentizar bastante el tiempo de inicio de ejecución si se trata de librerías muy pesadas de tamaño.
Ah, eso no lo sabia(en el caso de python/ruby/perl).
¿Phyton se desempaqueta mas lento o igual que ruby?

Eleкtro

#4
Cita de: Segadorfelix en  8 Febrero 2013, 03:39 AM
Cita de: xassiz~ en  4 Febrero 2013, 23:39 PM
Los lenguajes de scripting no son compilados, son interpretados, y a Pascal podías ir quitándolo de la lista :xD
¿No es scripting?  :huh:
No, no lo es.

Si te interesa el tema, aquí tienes una buena lista de lenguajes de scripting:
http://en.wikipedia.org/wiki/Category:Scripting_languages

Cita de: Segadorfelix en  8 Febrero 2013, 03:39 AM
¿Phyton se desempaqueta mas lento o igual que ruby?

Eso no se puede saber con exactitud, depende de la relación entre el tipo de compresión que se use en el "compilador" (compresión mínima/media/máxima), de la cantidad de archivos que contenga (si son 1.000 archivos de 1 kb de tamaño cada uno, tardará bastante más en descomprimir que 1 sólo archivo del mismo tamaño), y del tamaño final del exe. y quizás algún dato más que me dejo.

saludos








xassiz~

Pero es que lo normal no es "compilar" los scripts, los interpretas directamente y listo, eso de "compilarlos" es una tontería :-\

Karcrack

#6
Me parece que estáis confundiendo compilar el código con empaquetarlo.

Compilar el código es posible en múltiples lenguajes de scripting. Por ejemplo Python, permite almacenar el código ya interpretado a sus bytecodes. Eso aumentará la velocidad de carga del código. No hará que sea más rápido entero. Sólo la carga. No sé si me explico.

Haciendo esto te saltas el tiempo de interpretado. Espero haber aclarado ese aspecto.

Saludos

Segadorfelix

#7
Gracias de nuevo.
Cita de: EleKtro H@cker en  8 Febrero 2013, 04:01 AM
Si te interesa el tema, aquí tienes una buena lista de lenguajes de scripting:
http://en.wikipedia.org/wiki/Category:Scripting_languages
Oh gran wikipedia  :xD .Hay mas lenguajes de lo que pensaba.
Cita de: xassiz~ en  8 Febrero 2013, 15:12 PM
Pero es que lo normal no es "compilar" los scripts, los interpretas directamente y listo, eso de "compilarlos" es una tontería :-\
No en todos los casos, puede servir para pseudo-ocultar el código fuente(batch comúnmente) o para los que no tienen el interprete de un lenguaje especifico.
Cita de: Karcrack en  8 Febrero 2013, 17:16 PM
Me parece que estáis confundiendo compilar el código con empaquetarlo.

Compilar el código es posible en múltiples lenguajes de scripting. Por ejemplo Python, permite almacenar el código ya interpretado a sus bytecodes. Eso aumentará la velocidad de carga del código. No hará que sea más rápido entero. Sólo la carga. No sé si me explico.

Haciendo esto te saltas el tiempo de interpretado. Espero haber aclarado ese aspecto.

Saludos
Interesante; significa que después de interpretar el código por primera vez, la próxima vez ¿se inicia mas rápido?

Karcrack

Cita de: Segadorfelix en  9 Febrero 2013, 01:51 AM
Interesante; significa que después de interpretar el código por primera vez, la próxima vez ¿se inicia mas rápido?
Exactamente :-*