Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Speed up the startup speed when qBittorent client has several thousands of torrents #646

Closed
ximply opened this issue May 14, 2013 · 7 comments

Comments

@ximply
Copy link

ximply commented May 14, 2013

No description provided.

@sledgehammer999
Copy link
Member

I have been experimenting with this the last few days. I may come up with a patch next week.

@ximply
Copy link
Author

ximply commented May 24, 2013

I try this: I save all fastresume files into a file just call resume.fastresume.
when startup, i load the resume.fastresume file into memory, then get every torrent's fastresumedata from memory to resume every torrent, and when quit, in the saveFastResumeData i save ervery torrent's fastresumedata into memery then save all to resume.fastresume instead of saving fastresumedata for each torrent in one file, the resume.fastresume file is iniformat, just like your persistentdata file.

@ximply
Copy link
Author

ximply commented May 24, 2013

addtion, in the readAlerts() >> save_resume_data_alert, i also save the torrent fastresumedata into resume.fastresume file just like you.

@sledgehammer999
Copy link
Member

Since you are able to code, I will explain tomorrow a little more how things work in qbt code so you can understand more the code logic. Also I will share with you what I had in mind, for this issue. If you would like, you can implement it then.

My thoughts on your monolithic resume.fastresume approach: I don't think it is elegant and not very functional. I also don't like persistentdata file either so I have proposed this already: #583

@ximply
Copy link
Author

ximply commented May 25, 2013

Yeah, you are right, I find my solution works well only when qBittorent quit (It can quit very fast), but when it startups, it just like before.

@ximply
Copy link
Author

ximply commented Jun 15, 2013

These days I just did some work to speed up the startup speed, then i found that maybe the updateTorrentNumbers() -> transferList->getSourceModel()->getTorrentStatusReport()
affects the performance, because getTorrentStatusReport() will be call every time when dataChanged() signal
sent, and getTorrentStatusReport() traversals torrent list, this takes a long time. I just comment this:
connect(transferList->getSourceModel(), SIGNAL(dataChanged(QModelIndex,QModelIndex)), SLOT(updateTorrentNumbers())), so, qBittorent startups very fast. But the problem is what's time the code:
connect(transferList->getSourceModel(), SIGNAL(dataChanged(QModelIndex,QModelIndex)), SLOT(updateTorrentNumbers())) been set again. At last, i found that when all torrents checked,this code should be
set again, note this that skip checking and directly start seeding (libtorrent > 0.15), so only unfinished torrent
will be check, thatis to say, now, how can i know which torrent is the last one to be checked. All above just
some test in windows 8 x64, qBittorent is v3.0.9, libtorrent is 0.16.4.

@FranciscoPombal
Copy link
Member

Issue is too old. Many performance improvements have been made since. Submit a new issue if needed.

@qbittorrent qbittorrent locked and limited conversation to collaborators Feb 24, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

3 participants