测试用例分为用函数和类来进行一个大字符串的字符逐一读取。
测试代码
Node.js
函数
            
var fs = require("fs");
var content = fs.readFileSync("page.html", {
 encoding: "utf-8"
});
function chars(content){
 var length = content.length;
 var pos = 0;
 while(pos ++ < length){
  var chr = content[pos - 1];
 }
}
var start = Date.now();
chars(content);
var end = Date.now();
console.log(end - start);
          
        类
            
var fs = require("fs");
var content = fs.readFileSync("page.html", {
 encoding: "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(end - start);
          
        PHP
函数
          
        类
          
        Python
函数
            
import codecs
import time
def chars(content):
 length = len(content)
 pos = 0
 while(pos < length):
  char = content[pos]
  pos = pos + 1
f = codecs.open('page.html', encoding='utf-8')
content = f.read()
start = time.time()
chars(content)
end = time.time();
print end - start
          
        类
            
import codecs
import time
class 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 + 1
f = codecs.open('page.html', encoding='utf-8')
content = f.read()
start = time.time()
instance = Chars(content)
instance.run()
end = time.time();
print (end - start)
          
        其中 page.html 文件内容为一个长度为 的文本。
测试结果
            
语言 函数 类
Node.js 0.022s 0.026s
PHP 0.35s 1.02s
Python 0.58s 1.50s
          
        


 
					 
					