を使用して配列から属性{「アレイ」:my_arrayで}はHamster.jsを使用している場合、我々は のparams =としてパラメータ配列を定義する必要があり、並列/ Hamsters.js Javascriptのlibがマルチスレッド
my_arrayでです多くの属性を持つ要素によって形成され、属性xとyを変更する必要があります。私はHamster.jsに渡す機能で
私が定義された:
function map_node_hamster() {
params.array.forEach(function (d) {
d.x = some_calculation_here;
d.y = other_calculation_here;
}
}
をしかしhamster.run()関数を呼び出した後、私の元の配列の要素はそのままご利用いただけます。 パフォーマンスが必要なので、私はハムスターズが私の配列が指している値を変更できると思った。私は実際にはJavascriptとそれがどのように配列を管理するかについてはあまり知らない。
私はこのような実行機能を呼んでいる。)
console.log("Before hamster:");
console.log(network.nodes);
p = {'array': network.nodes, "w": w, "h":h};
hamsters.run(p, map_node_hamster, function(output){console.log(output); return output;}, hamsters.maxThreads, true);
console.log("After hamster:");
console.log(network.nodes);
そしてnetwork.nodesの要素は、(hamsters.run後に無傷です。
実行機能内で配列の要素を変更するにはどうすればよいですか?または..どのように変更を行う正しい方法でしょうか?
ベクターノードが大きいほど、コピー、並べ替えなどの処理がパフォーマンスが低下し、シングルスレッド/非パラレルバージョンよりも悪くなる可能性があります。