字符处理性能Node.js和PHP和Python的比较

测试用例分为函数和类,依次读取大字符串的字符。

测试代码

Node.js

功能


var =要求(FS );

无功量= fs.readfilesync(页面。html),{
编码:UTF-8
});

函数字符(内容){
VaR的长度= content.length;
var = 0;
而(POS + +长度)
VaR chr = { 1 } POS -内容;
}
}
var启动= Date.now();
字符(内容);
var = Date.now();
console.log(端开始);






var =要求(FS );

无功量= fs.readfilesync(页面。html),{
编码:UTF-8
});

var =函数(STR){
this.str = str;
this.length = str.length
this.pos = 0;
}
chars.prototype.run =函数(){
而(this.pos < { +这。长度)
Var Chr =这this.pos STR { 1 };
}
}
var启动= Date.now();
var实例=新字符(内容);
Instance.run();
var = Date.now();
console.log(端开始);



PHP

功能


< PHP
函数字符($内容){
$长度= strlen(内容);
$ = 0;
当($ $ + $ $长度)
美元=内容$ { - 1 };
}
}
$content = file_get_contents(页面。html);
美元开始=瞬时(真);
字符($内容);
美元=瞬时(真的);
回声($结束- $开始)。;
>






< PHP
类字符{
公共功能__construct($str){
$;
美元->长度= strlen(str);
$ = 0;
}
公共函数运行(){
当($ + + +长度){
$ = $,这是一个1;
}
}
}
$content = file_get_contents(页面。html);
美元开始=瞬时(真);
$实例=新字符($内容);
$实例>运行();
美元=瞬时(真的);
回声($结束- $开始)。;
>



蟒蛇

功能


进口解码器
进口时间

字符(内容):
长度=长度(内容)
POS = 0
同时(POS <长度):
char =内容{ } }
POS + POS + 1

F = codecs.open(页。HTML,编码= 'utf-8)

内容= f.read()

开始= time.time()
字符(内容)
结束= time.time();

打印结束开始






进口解码器
进口时间

类字符():
DEF __init__(自我,STR):
self.str = str
self.length = len(str)
self.pos = 0

运行(自):
而(self.pos <自我。长度):
char
self.pos = self.pos + 1

F = codecs.open(页。HTML,编码= 'utf-8)

内容= f.read()

开始= time.time()
实例=字符(内容)
Instance.run()
结束= time.time();

打印(结束)



page.html文件的内容是一个长度的文本。

测试结果


语言功能类
0.022s 0.026s Node.js
PHP 0.35s 1.02s
Python 0.58s 1.50s