2016-04-10 9 views
1

DRYアプローチを使用し、あるルートで複数の異なるタスクを処理できる場所を動的に設定すると、レイテンシの問題が発生する可能性がありますか?パフォーマンス/レイテンシの違い - Node.jsのダイナミックvsスタティックルート

これは私の最初のNode.jsプロジェクトであり、エンドユーザーが要求するデータがかなり大きいRESTfulアーキテクチャを使用して要求を処理するバックエンドとしてのみ使用しています。

node.jsでダイナミックvsスタティックルートを使用するかどうかを決める際にパフォーマンスの違いはありますか?私はそこに約10の異なる資源を得ることができます。

app.get('/resource1', .... 
app.get('/resource2', .... 
app.get('/resource3', .... 
app.get('/resource4', .... 
.... 

約半数がparamsやqueryを渡すでしょう。私はそれが動的に設定されるように設定されているので、ロジックをソートしているので、そのようにリクエストを処理します。

app.get('/:resource* ', .... 

[sorting logic for every case] 

[handle request] 

これは、遅延が大きくなると想定しています。この場合のトレードオフとベストプラクティスは何ですか?

+0

は、可能な最も明確かつ最も簡単な方法は、あなたのコードを記述します。シナリオの違いはごくわずかであり、最適化するものではありません。そのレベルに最適化したい場合は(これを行う必要はありません)、フレームワークを使用せずにネイティブhttpハンドラを作成してください。 – jfriend00

+0

入力をありがとう私は非同期モジュールも発見しました – garrettmac

+0

非同期モジュールがルート解析と何をしているのか分かりません。あなたのルート解析はおそらくすべて同期的であるため、そのために非同期ライブラリを使用する点はありません。 – jfriend00

答えて

1

ほとんどのルート処理ロジックは、検出できないほど処理に時間がかかります。それにかかわらず、最も明快な方法で書くことが最善です。したがって、静的ルートは意味を成しています。ネットワーキングの待ち時間は、ルートをソートする少量の処理以上のことに影響を与えます。

は、パフォーマンスとレイテンシについては、それをオフ以下、便利なリンクを参照してください。https://gist.github.com/jboner/2841832

+0

ありがとうございましたこれは私が "現実の世界"で何の仕事もしていないので、私のプロジェクトは "現実世界"の誰かによって初めてレビューされているので、無意識のうちにいくつかの「専門的でない」習慣を発達させた – garrettmac

関連する問題