Les cas de test sont divisés en fonctions et classes pour lire les caractères d'une grande chaîne un par un.
Code de test
Node.js
fonction
var fs = require ("fs"); var content = fs.readfilesync ("page.html", {coding: "utf-8"}); fonction chars (contenu) {var longueur = contenu.length; var pos = 0; while (pos ++ <longueur) {var chr = contenu [pos - 1]; }} var start = date.now (); chars (contenu); var end = date.now (); console.log (end - start);gentil
var fs = require ("fs"); var contenu = fs.readfilesync ("page.html", {codage: "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 (contenu); instance.run (); var end = date.now (); console.log (end - start);Php
fonction
<? PhpFunction Chars ($ Content) {$ LONGNEDE = Strlen ($ Content); $ pos = 0; while ($ pos ++ <$ length) {$ char = $ content {$ pos - 1}; }} $ content = file_get_contents ("page.html"); $ start = microTime (true); chars ($ contenu); $ end = microtime (true); echo ($ end - $ start). "/ n" ;?>gentil
<? PhpClass Chars {Fonction publique __Construct ($ str) {$ this-> str = $ str; $ this-> longueur = strlen ($ str); $ this-> pos = 0; } fonction publique run () {while ($ this-> pos ++ <$ this-> longueur) {$ char = $ this-> str {$ this-> pos - 1}; }}} $ content = file_get_contents ("page.html"); $ start = microTime (true); $ instance = new Chars ($ contenu); $ instance-> run (); $ end = microtime (true); echo ($ end - $ start). "/ n" ;?>Python
fonction
Importer codecsimport timeDef chars (contenu): longueur = len (contenu) pos = 0 while (pos <longueur): char = contenu [pos] pos = pos + 1f = codecs.open ('page.html', encoding = 'utf-8') contenu = f.read () start = time.gentil
Importer codecsimport timeclass chars (): def __init __ (self, str): self.str = str self.length = len (str) self.pos = 0 def run (self): while (self.pos <selfength): char = self.str [self.pos] self.pos = self.pos + 1f = codecs. coding = 'utf-8') content = f.read () start = time.time () instance = chars (contenu) instance.run () end = time.time (); print (end - start)
Le contenu du fichier page.html est un texte de longueur.
Résultats des tests
Langue Fonction Classe Node.js 0,022S 0,026SPHP 0,35S 1,02Sython 0,58S 1,50S