Os casos de teste são divididos em funções e classes para ler caracteres de uma corda grande uma a uma.
Código de teste
Node.js
função
var fs = requer ("fs"); var content = fs.readfilesync ("página.html", {coding: "utf-8"}); function chars (content) {var length = content.length; var pos = 0; while (pos ++ <comprimento) {var chr = content [pos - 1]; }} var start = date.now (); chars (content); var end = date.now (); console.log (end - start);tipo
var fs = requer ("fs"); var content = fs.readfilesync ("página.html", {codificando: "utf-8"}); var chars = function (str) {this.str = str; this.Length = str.Length this.pos = 0;} char.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 (end - start);Php
função
<? phpfunction chars ($ content) {$ length = strlen ($ content); $ pos = 0; while ($ pos ++ <$ length) {$ char = $ content {$ pos - 1}; }} $ Content = FILE_GET_CONTENTS ("Page.html"); $ start = microtime (true); chars ($ content); $ end = microtime (true); echo ($ end - $ start). "/n";?>tipo
<? phpclass chars {função pública __construct ($ str) {$ this-> str = $ str; $ this-> length = strlen ($ str); $ this-> pos = 0; } função pública run () {while ($ this-> pos ++ <$ this-> length) {$ char = $ this-> str {$ this-> pos-1}; }}} $ content = file_get_contents ("página.html"); $ start = microtime (true); $ instance = new chars ($ content); $ instance-> run (); $ end = microtime (true); echo ($ end - $ start). "/n";?>Python
função
Importar codecsimport timedef chars (content): comprimento = len (content) pos = 0 while (pos <comprimento): char = content [pos] pos = pos + 1f = codecs.open ('página.html', codinging = 'utf -8') content = f.read () start = time.time () chars (conteúdo) end = time.tftime.Time.Time.Time ()tipo
Importar 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. coding = 'utf -8') content = f.read () start = time.time.time () instância = chars (content) instance.run () end = time.time (); print (end - start)
O conteúdo do arquivo Page.html é um texto de comprimento.
Resultados do teste
Função da linguagem Classe node.js 0,022s 0,026sphp 0,35s 1,02spython 0,58s 1.50ss