私は関数型プログラミングと関数型リアクティブプログラミングの方が新しいです。RxJSは命令よりも高速ですか?
私は多くの時間を読む機能的な反応性プログラミングの大きな力。
Okey;副作用を避けることができます。
...しかし、機能的/反作用の方法でコードを改善して、命令的な方法より速く実行する方法はわかりません。 可能でしょうか?多分私は何かが恋しいですか?私の関数プログラミングのコードでは、すべてのタスクを反復処理しています:フィルタ、マップ、縮小...そしてこれは遅いです。 すべてのことを一度繰り返すことは可能ですか?おそらくcompose()
を使用していますか?
ありがとうございました。
性能試験:FP FRP
var array = [];
var i, l;
//INIT ARRAY
for (i = 0; i < 15000; i += 1) {
array[i] = i;
}
// WITH IMPERATIVE
console.time("IMPERATIVE");
var sum = 0;
var a;
var result = [];
for (i = 0, l = array.length; i < l; i += 1) {
a = array[i];
if (a % 2 === 0) {
result.push(a * 10);
sum += a * 10;
}
}
console.log(sum);
console.timeEnd("IMPERATIVE");
// WITH DECLARATIVE: FUNCTIONAL PROGRAMMING
console.time("FUNCTIONAL");
var r = array
.filter(function(x) {
return x % 2 === 0
})
.map(function(x) {
return x * 10
})
.reduce(function(x, y) {
return x + y
})
console.log(r);
console.timeEnd("FUNCTIONAL");
//WITH DELARATIVE: FUNCTIONAL REACTIVE PROGRAMMING
console.time("REACTIVE")
Rx.Observable
.fromArray(array)
.filter(function(x) {
return x % 2 === 0
})
.map(function(x) {
return x * 10
})
.reduce(function(x, y) {
return x + y
})
.subscribe(function(x) {
console.log(x)
});
console.timeEnd("REACTIVE");
<script src="https://cdnjs.cloudflare.com/ajax/libs/rxjs/4.1.0/rx.all.js"></script>
対出力対命令型:
任意のライブラリがオーバーヘッドが追加されますので、私は、パフォーマンス上の理由RxJsを選択しないだろう。ただし、正しく使用すると生産性が向上します。 –
あなたは**感知できない**正しいGUIアプリケーションでms'の10年代 'ことに気づきましたか?あなたは、エンドユーザーが経験できないことを心配する時間を無駄にしています。 –
@BryanChenさて、この場合には、私はフィルタを使用するよりもRxJSライブラリを使用してメリットを理解していない、... –