【发布时间】:2016-07-17 06:32:30
【问题描述】:
结果:
true
base64: 35.758ms
true
string: 12.811ms
true
buffer: 127.691ms
代码:
let n = 1000000;
let uuid = require("node-uuid");
let uuidaString = uuid.v4(),
uuidbString = uuidaString.slice(0),
uuidaBuffer = uuid.parse(uuidaString, new Buffer(16)),
uuidbBuffer = uuid.parse(uuidbString, new Buffer(16)),
uuidaBase64 = uuidaBuffer.toString("base64"),
uuidbBase64 = uuidbBuffer.toString("base64");
console.log(uuidaBase64 === uuidbBase64);
console.time("base64");
for (let i = 0; i < n && uuidaBase64 === uuidbBase64; i++) {
}
console.timeEnd("base64");
console.log(uuidaString === uuidbString);
console.time("string");
for (let i = 0; i < n && uuidaString === uuidbString; i++) {
}
console.timeEnd("string");
console.log(Buffer.compare(uuidaBuffer, uuidbBuffer) === 0);
console.time("buffer");
for (let i = 0; i < n && Buffer.compare(uuidaBuffer, uuidbBuffer) === 0; i++) {
}
console.timeEnd("buffer");
有人解释结果吗?我希望正常的字符串比较会是最慢的,但它显示最快。除此之外,我希望 base64 字符串比较会比普通字符串比较快,因为 base64 字符串比普通字符串短。是bug吗?
【问题讨论】:
标签: node.js string base64 buffer