| 1 | [[PageOutline(1-3,,inline)]] |
| 2 | |
| 3 | = Current state of Deluge (v1.3) = |
| 4 | |
| 5 | Deluge v1.3 handles hundreds of torrents fairly well. The GTKUI uses a lot of CPU to render the torrent list, so to keep CPU usage at a minimum it is a good idea to run in deamon/client mode and only connect with to the daemon when you need. |
| 6 | |
| 7 | When the torrent list reaches 1000 torrents, the CPU usage gets more and more noticable, the more torrents the slower it gets. |
| 8 | |
| 9 | Improvements are needed for Deluge to handle thousands of torrents! |
| 10 | |
| 11 | = State of git-master (To be v1.4) = |
| 12 | |
| 13 | git-master has been tested and works well with 2-3000 torrents. Currently the biggest problem is that to make libtorrent v0.16.X handle that many active torrents, the settings ''active_dht_limit'', ''active_tracker_limit'', ''active_lsd_limit'' must be set. This is currently not implemented in git-master, but applying the patch proposed in #2257 should solve this. |
| 14 | |
| 15 | The following patches have already been applied which improves the speed of Deluge with many torrents greatly: |
| 16 | |
| 17 | * [http://dev.deluge-torrent.org/ticket/2255 Speed optimizations to the daemon (#2255)], [http://git.deluge-torrent.org/deluge/commit/?id=8c106ce8c4c0794ddd63e8e8f98b097221a56a52 master] (Daemon) |
| 18 | * [http://dev.deluge-torrent.org/ticket/2246 Speedup set_prioritize_first_last in torrent.py (#2246)], [http://git.deluge-torrent.org/deluge/commit/?id=6313ff19b322a2801c633324bb0d77dc4f59b9a1 master] (Daemon, mainly on startup) |
| 19 | * [http://dev.deluge-torrent.org/ticket/2184 Speed optimizations to the torrentview in GTKUI (#2184)], [http://git.deluge-torrent.org/deluge/commit/?id=b4f5e78a775503a5501e2eba7eee73dfa0e1955a master] (GTKUI) |
| 20 | * [http://dev.deluge-torrent.org/ticket/2248 Cache tracker icons in gtkui (#2248)] ([http://git.deluge-torrent.org/deluge/commit/?id=463ac0c07eda1b33b145e1b9be7edbc0981815a99 master]) ([http://git.deluge-torrent.org/deluge/commit/?h=1.3-stable&id=36a78d8f219f 1.3-stable)] (GTKUI) |
| 21 | * [http://dev.deluge-torrent.org/ticket/2259 Small (but significant) speed optimizations to the torrentview in GTKUI (#2259)], [http://git.deluge-torrent.org/deluge/commit/?h=1.3-stable&id=a0ae3ebfce826980d08f6e75ec62a48e39cd5b41 1.3-stable] (GTKUI, smaller version of #2184 for 1.3 branch) |
| 22 | * [http://dev.deluge-torrent.org/ticket/2116 Application layer protocol for transfering RPC messages + utf8 decoding error (#2116)], [http://git.deluge-torrent.org/deluge/commit/?id=8e7432e71c80a47c96bf48c07535ec1991efe1d9 master] (RPC communication between daemon and clients) |
| 23 | |
| 24 | Proposed patches: |
| 25 | * [http://dev.deluge-torrent.org/ticket/2285 Speed optimizations to sessionproxy (#2285)] (GTKUI) |
| 26 | * [http://dev.deluge-torrent.org/ticket/2250 Speedup removing multiple torrents from core (#2250)] (GTKUI) |
| 27 | * [http://dev.deluge-torrent.org/ticket/2257 Allow setting of active_dht_limit, active_tracker_limit and active_lsd_limit. Fix bugs. (#2257)] (Daemon) |
| 28 | |
| 29 | Other issues that need investigation: |
| 30 | * Adding multiple torrents is very slow. This is because when adding many torrents, one call is made to core.add_torrent_file for each torrent. |
| 31 | * Pausing/resuming multiple torrents is very slow. This is probably because when a torrent changes state, a lot of operations are done (event listeners in GUI presumable), so with hundreds of torrents changing state the result is too much work needing to be done. |
| 32 | * CPU usage on an idle daemon can still be around 5%. One possible cause for this is because each torrent class creates a LoopingCall which causes twisted to do a lot of checking when there are a lot of torrents in the session. |
| 33 | * Add caching to the data-funcs in torrentview.py/listview.py to reduce unecessary computation (Patch development: [https://github.com/bendikro/deluge/commits/master-torrentview-data-funcs-cache]) |