在 cytoscape.js 中,我试图为 329 节点网络中的每个节点更改两个节点属性的值。
这有效,但需要 86 秒。我希望它会快得多。这是我的代码:
var data = // data of the form {lfc: {key1: 0.01, key2: 0.02, ...}, pval: {key1: 0.03, key2: 0.04, ...}};
var nodes = cy.nodes();
console.log('starting to update node data...');
var start = new Date().getTime();
for (var i = 0; i < nodes.length; i++)
{
var node = nodes[i];
var id = node.data("id");
var lfc = data['lfc'][id];
var pval = data['pval'][id];
node.data({lfc: lfc, pval: pval});
}
var end = new Date().getTime();
console.log("finished in " + (end - start) + "ms");
我知道如果我将网络中所有节点的属性设置为相同的值,它会快得多。这大约需要半秒钟:
var start = new Date().getTime();
cy.nodes().data({lfc: 1.0, pval: 1.0});
var end = new Date().getTime();
console.log("finished in " + (end - start) + "ms");
但由于我试图给每个节点单独的值,我不能这样做。
有什么提高性能的想法吗?