2012-01-15 22 views
13

Estoy escribiendo una secuencia de comandos para tokenizar el contenido del archivo. Escribí un tokenizador en JavaScript, pero se vuelve bastante lento con archivos grandes (más de 5 segundos). Ya que estoy recuperando los archivos del servidor de todos modos, estoy considerando volver a escribirlo en PHP para reducir algunos segundos. He leído que la diferencia de velocidad entre PHP y JavaScript es insignificante, pero si los archivos son de 1 mb o más, una pequeña diferencia de velocidad podría sumarse. Encontré this benchmark en línea, pero no estoy seguro de si la información está actualizada (con todas las optimizaciones de motores JS de los últimos dos años).Velocidad de PHP vs JavaScript?

Portar sobre todo mi código tomaría algún trabajo, así que si puedo evitarlo, no usaré PHP. Pero si va a ser mucho más rápido (25-30%), valdría la pena.

+3

Una cosa a considerar es su entorno de ejecución. Si esto va a ocurrir en los navegadores de los usuarios de los usuarios finales en un sitio web, tendrá que lidiar con tiempos de ejecución muy variables, lo que puede degradar la experiencia del usuario. Usted tiene el control si lo ejecuta en el servidor, pero obviamente debería considerar la concurrencia y la carga asociada. Si su JavaScript se va a ejecutar en su propio entorno (si está creando un script para uso personal, por ejemplo) ese punto es irrelevante. –

+0

En términos generales, la mayoría de los motores JS son mucho más rápidos que el motor PHP Zend oficial. El ejemplo del cliché es que sería difícil escribir un trazador de rayos serio en PHP, pero es muy factible en JS (hay muchos por ahí). – coreyward

+0

tokenising algo del lado del servidor (sea cual sea el idioma) da la posibilidad de _cache_ el resultado beneficiando a múltiples usuarios (o incluso el mismo usuario cuando actualizan la página) - además de ser independiente del hardware/actividades del cliente. – AD7six

Respuesta

12

Bueno, como usted aludió, JavaScript se ejecuta en el lado del cliente, por lo que dependería del cliente. Por ejemplo, un cliente en un iPAD no podría ejecutar esos HTML5 de Quake3 tan fácilmente como un cliente que se ejecuta en una máquina de juego. PHP, por otro lado, se ejecuta en el servidor.

En general, JS es mucho más rápido que PHP (en el mismo hardware);

Aquí hay algunos hard figures de pruebas entre los dos, para respaldar mi afirmación. JS (query) vs PHP Rendimiento.

+13

JS también se ejecuta en el servidor. –

+1

Quizás lo estoy viendo mal, pero [el diagrama de caja] (http://shootout.alioth.debian.org/u32/which-programming-languages-are-fastest.php?php=on&v8=on&calc=chart) hace que parezca que V8 JavaScript es más rápido que PHP. – icktoofay

+0

OOPS, que debería haberse invertido.Gracias @ ick2 –

0

Acabo de convertir un script de PHP a Javascript y he aumentado mucho el rendimiento.

Javascript parece mucho más rápido en cálculos matemáticos. He sido testigo presencial de la mejora del rendimiento, mi procedimiento de PHP en algunos casos también empleó unos segundos de ejecución, mientras que el mismo procedimiento escrito en javascript tarda como máximo unos pocos milisegundos.

Aunque Javascript a ser conocido como el lenguaje del lado del cliente corro mi código en el servidor gracias a Node.js

Aquí se puede ver el punto de referencia entre Javascript y PHP V8

http://benchmarksgame.alioth.debian.org/u32/benchmark.php?test=all&lang=v8&lang2=php&data=u32

1

Vale la pena decir que otra consideración para usar PHP es la capacidad de almacenar en caché el lado del servidor. Estoy viendo esto considerando si debería mover algunas de las funciones de JS a PHP porque si guardo en caché los archivos del lado del servidor ¡no hay más cálculos involucrados en absoluto! Sé que este boleto es viejo, pero esta puede ser otra consideración para los lectores futuros.