[Pkg-javascript-commits] [node-leveldown] 432/492: added batch() leak tester
Andrew Kelley
andrewrk-guest at moszumanska.debian.org
Sun Jul 6 17:14:26 UTC 2014
This is an automated email from the git hooks/post-receive script.
andrewrk-guest pushed a commit to annotated tag rocksdb-0.10.1
in repository node-leveldown.
commit 056009fe46d76822105c2e4e81243778bf22ea2f
Author: Rod Vagg <rod at vagg.org>
Date: Tue Nov 12 17:48:18 2013 +1100
added batch() leak tester
---
test/leak-tester-batch.js | 87 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 87 insertions(+)
diff --git a/test/leak-tester-batch.js b/test/leak-tester-batch.js
new file mode 100644
index 0000000..d5e32c1
--- /dev/null
+++ b/test/leak-tester-batch.js
@@ -0,0 +1,87 @@
+const BUFFERS = false
+ , CHAINED = false
+
+var leveldown = require('..')
+ , crypto = require('crypto')
+ , assert = require('assert')
+ , writeCount = 0
+ , rssBase
+ , db
+
+function print () {
+ if (writeCount % 100 === 0) {
+ if (typeof gc != 'undefined')
+ gc()
+
+ console.log(
+ 'writeCount ='
+ , writeCount
+ , ', rss ='
+ , Math.round(process.memoryUsage().rss / rssBase * 100) + '%'
+ , Math.round(process.memoryUsage().rss / 1024 / 1024) + 'M'
+ , JSON.stringify([0,1,2,3,4,5,6].map(function (l) {
+ return db.getProperty('leveldb.num-files-at-level' + l)
+ }))
+ )
+ }
+}
+
+var run = CHAINED
+ ? function () {
+ var batch = db.batch()
+ , i = 0
+ , key
+ , value
+
+ for (i = 0; i < 100; i++) {
+ key = 'long key to test memory usage ' + String(Math.floor(Math.random() * 10000000))
+ if (BUFFERS)
+ key = new Buffer(key)
+ value = crypto.randomBytes(1024)
+ if (!BUFFERS)
+ value = value.toString('hex')
+ batch.put(key, value)
+ }
+
+ batch.write(function (err) {
+ assert(!err)
+ process.nextTick(run)
+ })
+
+ writeCount++
+
+ print()
+ }
+ : function () {
+ var batch = []
+ , i
+ , key
+ , value
+
+ for (i = 0; i < 100; i++) {
+ key = 'long key to test memory usage ' + String(Math.floor(Math.random() * 10000000))
+ if (BUFFERS)
+ key = new Buffer(key)
+ value = crypto.randomBytes(1024)
+ if (!BUFFERS)
+ value = value.toString('hex')
+ batch.push({ type: 'put', key: key, value: value })
+ }
+
+ db.batch(batch, function (err) {
+ assert(!err)
+ process.nextTick(run)
+ })
+
+ writeCount++
+
+ print()
+ }
+
+leveldown.destroy('./leakydb', function () {
+ db = leveldown('./leakydb')
+ db.open({ xcacheSize: 0, xmaxOpenFiles: 10 }, function () {
+ rssBase = process.memoryUsage().rss
+ run()
+ })
+})
\ No newline at end of file
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-javascript/node-leveldown.git
More information about the Pkg-javascript-commits
mailing list