orbitdb/benchmarks/browser/benchmark-add.html
haad 42885b20a4 Write permissions for databases
Use latest store modules from npm
Update README
Update docs
Update examples
Update benchmarks
Update dependencies
Add Getting Started guide
Add new a screenshot
Add a new live demo
Add persistency tests for snapshot saving/loading and events
Add network stress tests (but skip them by default as they're very heavy and lengthy)
Add browser benchmarks
Add log() alias for eventlog() database
Add possibility to create database if it doesn't exist yet
Add support for orbitdb addresses
Add a test for starting replication when peers connect
Add debug build
Use IPFS nodeID as default user id
Use ipfs-pubsub-room
Handle closing of databases properly
Handle cache errors
Clean up tests, re-organize code files
Clean up code style
Support for CLI
Remove obsolete scripts
2017-11-28 09:10:51 +01:00

79 lines
2.5 KiB
HTML

<html>
<head>
<meta charset="utf-8">
</head>
<body>
<h1>OrbitDB - Benchmark log.add()</h1>
<h2>Description</h2>
<div>Add an entry to a log database. Measure throughput in write operations per second.</div>
<h2>Results</h2>
<pre id="output"></pre>
<script type="text/javascript" src="../../dist/orbitdb.min.js" charset="utf-8"></script>
<script type="text/javascript" src="../../node_modules/ipfs/dist/index.min.js" charset="utf-8"></script>
<script type="text/javascript">
let ipfs
// Metrics
let totalQueries = 0
let seconds = 0
let queriesPerSecond = 0
let lastTenSeconds = 0
const queryLoop = async (db) => {
await db.add(totalQueries)
totalQueries ++
lastTenSeconds ++
queriesPerSecond ++
setImmediate(() => queryLoop(db))
}
let run = (() => {
ipfs = new Ipfs({
repo: '/orbitdb/benchmarks/browser/benchmark-add',
start: false,
EXPERIMENTAL: {
pubsub: true,
sharding: false,
dht: false,
},
})
ipfs.on('error', (err) => console.error(err))
ipfs.on('ready', async () => {
const outputElm = document.getElementById('output')
try {
const orbit = new OrbitDB(ipfs, './orbitdb/benchmarks/browser')
const db = await orbit.eventlog('orbit-db.benchmark.add', {
replicate: false,
})
// Metrics output
setInterval(() => {
seconds ++
if(seconds % 10 === 0) {
outputElm.innerHTML = `--> Average of ${lastTenSeconds/10} q/s in the last 10 seconds<br>` + outputElm.innerHTML
console.log(`--> Average of ${lastTenSeconds/10} q/s in the last 10 seconds`)
if(lastTenSeconds === 0)
throw new Error("Problems!")
lastTenSeconds = 0
}
outputElm.innerHTML = `${queriesPerSecond} queries per second, ${totalQueries} queries in ${seconds} seconds (Entries: ${db._oplog.length})<br>` + outputElm.innerHTML
// console.log(`${queriesPerSecond} queries per second, ${totalQueries} queries in ${seconds} seconds (Entries: ${db._oplog.length})`)
queriesPerSecond = 0
}, 1000)
// Start the main loop
queryLoop(db)
} catch (e) {
console.error(e)
}
})
})()
</script>
</body>
</html>