
In commit b50d733 TorrentModel moved from a periodic refresh, to using postStatusUpdate(). In this transition I forgot to remove emition of dataChanged() signal for the entire table. According to my measurements this commit reduce CPU usage of qbittorrent by a factor of 3: Before: Total wall clock: 97.07s CPU time: 21.77s - Time spent in TransferListDelegate::paint(): 14.60s - Time spent in TorrentModel::forceModelRefresh(): 1.44s - Time spent in TorrentModel::stateUpdated(): 0.02s After: Total wall clock: 96.13s CPU time: 6.68s - Time spent in TransferListDelegate::paint(): 2.63s - Time spent in TorrentModel::forceModelRefresh(): <0.01s - Time spent in TorrentModel::stateUpdated(): 1.73s As it is seen the time spent in painting is reduced by a factor of 6 (14.60->2.63) at the cost of slightly increased time of notifications that model is changed (1.44->1.73). The next commits attempt to address this issue.
qBittorrent - A BitTorrent client in Qt
###Description: qBittorrent is a bittorrent client programmed in C++ / Qt that uses libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.
It aims to be a good alternative to all other bittorrent clients out there. qBittorrent is fast, stable and provides unicode support as well as many features.
This product includes GeoLite data created by MaxMind, available from http://maxmind.com/
Installation:
For installation, follow the instructions from INSTALL file, but simple:
./configure
make && make install
qbittorrent
will install and execute qBittorrent hopefully without any problem.
For more information please visit: http://www.qbittorrent.org
or our wiki here: http://wiki.qbittorrent.org
Please report any bug (or feature request) to: http://bugs.qbittorrent.org
You can also meet me (sledgehammer_999) on IRC:
#qbittorrent on irc.freenode.net
sledgehammer999 sledgehammer999@qbittorrent.org