2017-08-08 14 views
0

私はラボプロジェクトでStormをテストしています。 Storm boltを使用して計算タスクを実行すると、 Storm以外の計算を実行するのにかかった時間は、Storm bolt execute()メソッドの計算時間の約10倍です。ストーム - 計算時間in bolt execute()メソッド

私もボルトのexecute()メソッド内のスニペットのこの小片試み:のみ外部終了する約10ミリ秒を要しながら

Random rd = new Random(System.currentTimeMillis()); 
double count =rd.nextDouble(); 
for(int i=0;i <50000000;i++) { 
    count *= rd.nextDouble(); 
} 

コード上に、嵐の内側に終了する約1000ミリ秒を要しました嵐の環境の。

ストームボルトの場合、これは計算量が増えますか?

答えて

0

私はあなたがポイントを見逃していると思います。あなたは1つのノードでうまくいくtrivalテストを考え出すことができますか?確かに、あなたはそれを使うことはありません。あなたの計算が1つのノードでうまく動くならば、それは過度のストームだからStormを使わないでください。

ストームはリアルタイムコンピューティングシステムです。膨大な量のデータを、多数のマシンを使用してリアルタイムでスケーラブルでフォールトトレラントな方法で処理する必要がある場合は、Stormを使用してください。

+0

ご返信ありがとうございます。 私は1つのノードでテストを実行しましたが、同じ結果が得られました。 実際には大量のデータを処理する必要があり、各タプルについても処理には10ミリ秒必要です。 ストームは同じ処理をするのに100倍の時間がかかります。 –

0

ああ、これは愚かな間違いですが、execute()メソッドの実行時間は単純な計算では問題ありません。

しかし、execute()の内部で実際に処理しているのは、Stormの証拠の外側より数倍遅いです。この処理では、実際にJNIメソッドを呼び出しましたが、それが理由であれば理解できません。