-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Uploading files that are to large, or uploading files with high concurrency/redundancy values can tap-out computer resources. Letting the app monitor parameters such as memory usage, free disc space, cpu usage will guarantee a healthy operation of the app. Some devices used by future users will just not have enough computer resources to allow the uploading with certain parameters such as high concurrency values, which will cause the app to crash or grind to a halt. By putting a safeguard into place that monitors the computer resources used by the app, automatic throttling can be implemented to assure the best optimal utilization of computer resources. Even a options menu can be added that states: 'aggressive upload (max usage of computer resources), normal upload, passive upload (minimum resource utilization) that is calculated based on the computer capabilities. Which will automatically tweak the upload/download parameters to the user's preference. This also allows the app to have a safeguards if some parameters exceed the capabilities of the computer hardware of the user, that allows the return of a warning or error message. Adding a small section in the app that shows the used computer resources (bandwidth, cpu, ram, space used) by the app will also be a very good thing.
When a user wants to upload a large file that will exceed the size of the disk, the app has no safe-guard for this and will most likely crash. This can be solved by calculating the size of the free space on the disc and subtracting this by the size of the temporary stored files (encrypted file + shards). If the app calculates this it can return a warning or error message to the user that there is not enough space on the disk to be able to upload/download a specific file, and will ask the user to cancel the operation or change the temp directory ( feature: Let the user set a temporary directory that will contain the temporary encrypted files and shards).