-
-
Notifications
You must be signed in to change notification settings - Fork 859
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
Asynchronous operation #157
Comments
As an example of inefficient bandwidth usage with multiple small files - here is a graph of traffic from my server. At first, several large files (1-15 Gb each) were uploaded, and almost all bandwidth was utilized. Then small files began uploading and onedrive used only a small portion of available bandwidth: (no other program used network significantly during the time of this graph) If several network operations were performed in parallel, upload would complete much earlier. |
As per #158 - much of this branch of the client is all about fixing the defects of the 'skilion' codebase. Yes this is a performance defect, but I have a feeling that re-writing the application to be more multi-threaded for many processes & operations is what is required here. |
The below is from the logs file, it is taking about this long to sync them. Most of them are 1KB.
|
Most likely this is solved via #419 Other aspects are still in plan to resolve |
This is an old comment indeed, many things have improved since then. CPU usage in particular is much less now and no such problems as before. |
@borouhin could you try out https://github.com/onedrivejs/onedrive ? |
@davidbarratt, thanks for the link, looks promising! I gave up attempts to achieve stable 2-way sync and switched to using rclone for 1-way sync only. Had to reorganize my files, but now it works like a charm without any manual interference. I'll give JS client a try when I have time for some experiments. |
This issue has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs. |
Is your feature request related to a problem? Please describe.
The program is sometimes extremely slow due to synchronous processing of all tasks. For example:
Describe the solution you'd like
The program should run CPU-consuming and network-dependent tasks in parallel whenever possible. For example, CRCs may be calculated by several threads/processes utilizing all CPU cores, whereas network upload may start as soon as at least some items are ready. Network operations themselves should be performed in several parallel threads/processes.
This should accelerate lengthy operations considerably.
Describe alternatives you've considered
Writing my own client from scratch :)
Additional context
I realize this may require an almost full rewrite, so not expecting immediate realization, just sharing my considerations.
The text was updated successfully, but these errors were encountered: