Los casos de prueba se dividen en funciones y clases para leer caracteres de una cadena grande una por una.
Código de prueba
Nodo.js
función
var fs = require ("fs"); var content = fs.ReadFilesync ("page.html", {coding: "utf-8"}); function chars (content) {var longitud = content.length; var pos = 0; while (pos ++ <longitud) {var chr = content [pos - 1]; }} var start = date.Now (); chars (content); var end = date.Now (); console.log (final - inicio);amable
var fs = request ("fs"); var content = fs.ReadFilesync ("page.html", {coding: "utf-8"}); var chars = function (str) {this.str = str; this.length = str.length this.pos = 0;} chars.prototype.run = function () {while (this.pos ++ <this.length) {var chr = this.str [this.pos - 1]; }} var start = date.Now (); var instance = new Chars (content); instance.run (); var end = date.Now (); console.log (final - inicio);Php
función
<? PhpFunction Chars ($ content) {$ longitud = strlen ($ content); $ pos = 0; while ($ pos ++ <$ longitud) {$ char = $ content {$ pos - 1}; }} $ content = file_get_contents ("page.html"); $ start = microTime (true); chars ($ content); $ end = microTime (true); echo ($ end - $ start). "/n" ;?>amable
<? PhpClass Chars {Función pública __construct ($ str) {$ this-> str = $ str; $ this-> longitud = strlen ($ str); $ this-> pos = 0; } public function run () {while ($ this-> pos ++ <$ this-> longitud) {$ char = $ this-> str {$ this-> pos-1}; }}} $ content = file_get_contents ("page.html"); $ start = microTime (true); $ instancia = nueva chars ($ content); $ instance-> run (); $ end = microTime (true); echo ($ end - $ start). "/n" ;?>Pitón
función
Importar CodeCSimport Timedef Chars (contenido): longitud = len (content) pos = 0 while (pos <longitud): char = content [pos] pos = pos + 1f = codecs.open ('page.html', encoding = 'utf -8') content = f.read () inicio = tiempo.time () chars (content) end = time.time (); print fin - start - start - start - start - start - start - start - start - start - start - start - start - start - start - startamable
import codecsimport timeClass chars (): def __init __ (self, str): self.str = str self.length = len (str) self.pos = 0 def run (self): while (self.pos <self.length): char = self.str [self.pos] self.pos = self.pos + 1f = Codecs.open ('Page.html', encoding = 'utf -8') content = f.read () start = time.time () instance = chars (content) instance.run () end = time.time (); print (final - inicio)El contenido del archivo Page.html es un texto de longitud.
Resultados de las pruebas
Clase de lengua nodo.js 0.022S 0.026SPHP 0.35S 1.02spython 0.58s 1.50s