ptarmigan icon indicating copy to clipboard operation
ptarmigan copied to clipboard

routing: takes many calculation time

Open nayuta-ueno opened this issue 5 years ago • 3 comments

commit 2179522d3d5eb39af37cd1b534a4a0f6169d5d68

routingに使用するデータが4万件程度でln_routing_calculate()が20秒近くかかる。 再送のたびに行うため、送金全体が遅くなっている。

https://github.com/nayutaco/ptarmigan/blob/2179522d3d5eb39af37cd1b534a4a0f6169d5d68/ln/ln_routing.cpp#L469-L536 ここの部分に大半が費やされている。 ver_add()?

nayuta-ueno avatar Apr 29 '19 01:04 nayuta-ueno

graphをグローバル変数にし、ver_add()を分離して先に行うように試作した。 ver_add()によってgraphへvertexを先に登録することで高速化されることを期待したのだが、まったく効果が無かった(むしろ、先に登録する時間がかかることで増えている)。

nayuta-ueno avatar Apr 29 '19 15:04 nayuta-ueno

起動時にgraphを作成する方法を修正。 起動時間が長くなるが、支払いは速くなった。

しかし、RAM上に持つためコストが高い。 psのRSSが227,356KiBだったので、この方法は厳しい。 もっとRAMが少ないライブラリか、省RAMな検索方式があるとよいのだが。

nayuta-ueno avatar May 01 '19 09:05 nayuta-ueno

channel_updateを2週間くらいでpruneしてもよいような書き方をしているので、データを減らせないか。 あるいは、graphのデータを減らせないか。

nayuta-ueno avatar May 01 '19 09:05 nayuta-ueno