cytoscape.js で、329 ノードのネットワーク内の各ノードについて、2 つのノード属性の値を変更しようとしています。
これは機能しますが、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");
ネットワーク内のすべてのノードの属性を同じ値に設定すると、はるかに高速になります。これには約 0.5 秒かかります。
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");
しかし、各ノードに個別の値を与えようとしているので、これはできません。
パフォーマンスを向上させるためのアイデアはありますか?