mongo/jstests/perf/compact_speed_test.js

61 lines
1.3 KiB
JavaScript

if (1) {
t = db.compactspeedtest;
t.drop();
var obj = {
x: 1,
y: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
z: [1, 2]
};
var start = new Date();
function timed() {
db.getLastError();
var dt = (new Date()) - start;
// print("time: " + dt);
start = new Date();
return dt;
}
// print("adding data");
var N = 100000;
if (db.adminCommand("buildInfo").debug)
N = 10000;
for (var i = 0; i < N; i++) {
obj.x = i;
obj.z[1] = i;
t.insert(obj);
}
var a = timed();
// print("index");
t.ensureIndex({x: 1});
// print("index");
t.ensureIndex({y: 1});
// print("index");
t.ensureIndex({z: 1});
a += timed();
// print("count:" + t.count());
timed();
{
// print("compact");
var res = db.runCommand({compact: 'compactspeedtest', dev: true});
b = timed();
// printjson(res);
assert(res.ok);
// print("validate");
var v = t.validate({full: true});
assert(v.ok);
assert(t.getIndexes().length == 4);
print("inserting records and adding indexes took " + a);
print("compact took " + b);
assert(b < a, "compact was slower than it should be");
}
}