iota-ternary
Version:
Fast utility functions for conversion between trytes, trits and bytes
97 lines (72 loc) • 2.54 kB
JavaScript
const Benchmark = require("benchmark")
const iotaLibTrytes = require("iota.lib.js/lib/crypto/converter/converter").trytes
const tritsToTrytes1 = require("../dist/trits-to-trytes/version-1").tritsToTrytes
const tritsToTrytes2 = require("../dist/trits-to-trytes/version-2").tritsToTrytes
const tritsToTrytes3 = require("../dist/trits-to-trytes/version-3").tritsToTrytes
const tritsToTrytes4 = require("../dist/trits-to-trytes/version-4").tritsToTrytes
const tritsToTrytes5 = require("../dist/trits-to-trytes/version-5").tritsToTrytes
const tritsToTrytes6 = require("../dist/trits-to-trytes/version-6").tritsToTrytes
const suite = new Benchmark.Suite()
const TRITS = [-1, 0, 1]
const TRITS_SIZE = 8250
const TIRTS_COUNT = 20
function generateTrits(size) {
const trits = new Array(size)
for (let i = 0; i < size; ++i) {
trits[i] = TRITS[Math.floor(Math.random()*3)]
}
return trits
}
const trits = new Array(TIRTS_COUNT)
let i = 0
suite.on("start", () => {
for (let j = 0; j < TIRTS_COUNT; ++j) {
trits[j] = generateTrits(TRITS_SIZE)
}
for (let j = 0; j < 10000; ++j) {
iotaLibTrytes(trits[j % TIRTS_COUNT])
tritsToTrytes1(trits[j % TIRTS_COUNT])
tritsToTrytes2(trits[j % TIRTS_COUNT])
tritsToTrytes3(trits[j % TIRTS_COUNT])
tritsToTrytes4(trits[j % TIRTS_COUNT])
tritsToTrytes5(trits[j % TIRTS_COUNT])
tritsToTrytes6(trits[j % TIRTS_COUNT])
}
})
suite.on("cycle", () => {
i = 0
})
suite.add("iota.lib.js: trytes()", () => {
const trytes = iotaLibTrytes(trits[++i % TIRTS_COUNT])
})
suite.add("trits-to-trytes-1", () => {
const trytes = tritsToTrytes1(trits[++i % TIRTS_COUNT])
})
suite.add("trits-to-trytes-2", () => {
const trytes = tritsToTrytes2(trits[++i % TIRTS_COUNT])
})
suite.add("trits-to-trytes-3", () => {
const trytes = tritsToTrytes3(trits[++i % TIRTS_COUNT])
})
suite.add("trits-to-trytes-4", () => {
const trytes = tritsToTrytes4(trits[++i % TIRTS_COUNT])
})
suite.add("trits-to-trytes-5", () => {
const trytes = tritsToTrytes5(trits[++i % TIRTS_COUNT])
})
suite.add("trits-to-trytes-6", () => {
const trytes = tritsToTrytes6(trits[++i % TIRTS_COUNT])
})
suite.on('complete', function () {
console.log(this[0].toString())
console.log(this[1].toString())
console.log(this[2].toString())
console.log(this[3].toString())
console.log(this[4].toString())
console.log(this[5].toString())
console.log('Fastest is ' + this.filter('fastest').map('name'));
})
suite.on("error", (...args) => {
console.log(args)
})
suite.run();