You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are 2 modes at the moment. "Performance" crashes the system when all memory is consumed. "Low RAM" works well but is slower, because it does not seem to use all the available processors (thread). I suggest a "Low RAM - Max thread" mode (name is just a suggestion, pick up one that make more sense) where RAM used could be retrained to a certain amount (e.g. 16 GB) and threads number could be specified up to MAX-1.
Technical Details
I have no idea how you can implement this.
Existing Implementations
There is no such option at the moment.
The text was updated successfully, but these errors were encountered:
I have little control over the encoders because I'm not using the API. This makes the problem quite tricky to solve.
Limiting the maximum number of encoders is definitely an option.
Monitoring the RAM usage of each process would require a heavy rewrite. I'm not sure if that's worth it. I'm planning on eventually transitioning to the API anyway.
For now, I'll wait for the libjxl devs to get back to me. If that fails, I'll think of something else then.
The "Low RAM" mode may be slower, but I can assure you it does utilize all threads given to it. Thread saturation is a separate topic.
The solution you proposed of letting users choose the number of threads is something I've considered for some time. I don't think it will be that useful to most users, though.
For now, I've replaced the Multithreading options with an optimizer that will detect when to switch to a single-worker mode. This will fix the high RAM usage at a cost of some speed.
Unfortunately, the transition to API I mentioned before won't happen.
Feature Description
There are 2 modes at the moment. "Performance" crashes the system when all memory is consumed. "Low RAM" works well but is slower, because it does not seem to use all the available processors (thread). I suggest a "Low RAM - Max thread" mode (name is just a suggestion, pick up one that make more sense) where RAM used could be retrained to a certain amount (e.g. 16 GB) and threads number could be specified up to MAX-1.
Technical Details
I have no idea how you can implement this.
Existing Implementations
There is no such option at the moment.
The text was updated successfully, but these errors were encountered: