Mind sharing your Process Lasso settings?

Started by Coldblackice, October 24, 2023, 01:58:26 AM

Previous topic - Next topic

Coldblackice

Any chance you'd mind posting your personal Process Lasso settings?

I'm curious how you, the developer, set and utilize Process Lasso, and I would use it as a reference comparison with my own settings (and/or others'/the default settings).

I get everyone's needs are different and one's settings won't automatically be the best for all. Just curious how you specifically set/tweak your PL for day-to-day use, as it could reveal settings or features I'm not yet utilizing, or under-utilizing, or perhaps set suboptimally.

It'd provide a jumping off point for me researching these settings, differences, and features further via the forum.

Jeremy Collake

I'm not in the same cohort as our users. I don't game, have performance sensitive tasks running, or need additional automation or control. I do make use of ProBalance, Performance Mode automation, and sometimes IdleSaver. Otherwise, at any given time, my personal configuration is just some set of tests to ensure proper functionality.
Software Engineer. Bitsum LLC.

Coldblackice

Ah okay, makes sense.

Do you have any general thoughts/advisement on features such as

  • I/O Priorities
  • Memory priorities
  • Smart Trim/Purge Standby
  • CPU Affinity (i.e. benefit of choosing lesser-used cores, benefit of using physical cores only, etc.)

Namely what sort of software/scenarios these might be worth utilizing, and what sort of performance impacts one might stand to gain from such (of course roughly/estimated/on average)?

Jeremy Collake

#3
Here we go:

CPU Affinity:

The Windows scheduler sometimes makes poor choices, and if you know before-hand the ideal CPU cores for your application to run on, then it makes sense to assign it up-front. CPU affinities are also useful to restrict other processes from using select CPU cores, essentially reserving them for your performance critical applications. Finally, it can serve as an easy means of rate limiting a process's CPU use by constraining it to a subset of available CPU cores.

Applications can be scheduled to physical cores only by staggering the CPU affinity. This can help improve performance in some cases since, on Hyper-Threaded/SMT processors, each pair of cores share some compute units and contention can occur if two threads on a physical processor simultaneously need access to the same resource.

Memory Priority:

These are useful in RAM constrained situations, where you'd want to set a lower memory priority for background processes. MSDN says:

Quote... should lower the default memory priority of threads that perform background operations or access files and data that are not expected to be accessed again soon. For example, a file indexing application might set a lower default priority for the process that performs the indexing task.

Memory priority helps to determine how long pages remain in the working set of a process before they are trimmed. A process's memory priority determines the default priority of the physical pages that are added to the process working set by the threads of that process. When the memory manager trims the working set, it trims lower priority pages before higher priority pages. This improves overall system performance because higher priority pages are less likely to be trimmed from the working set and then trigger a page fault when they are accessed again.
Ref: https://learn.microsoft.com/en-us/windows/win32/api/processthreadsapi/nf-processthreadsapi-setprocessinformation

I/O Priority:

I/O priority is similar to memory priority. You would use it to lower the I/O priority of background tasks in case there is contention.

SmartTrim and Standby List Purge:

This isn't my favorite feature, which is why I downplay it a lot. It trims the working sets of processes, selectively. It, at least, is more precise and conservative than some other tools on the market.

Usually, it is best to let the virtual memory manager do its thing. When you page out a process's memory, if that memory is actively being referenced, it'll simply get paged right back in. Thus, it doesn't reduce RAM footprint for long, and any pages that weren't being used would have eventually been paged out by the virtual memory manger.

The Standby List (cache) Purge was added due to a widely reported issue where the cache becomes inefficient in some way, causing performance problems with some games. However, it's not clear to me that issue still exists, or with what games, and there is a penalty every time you purge this list, so you don't generally want to do it. That said, the rate of purge was limited, as was SmartTrim's working set clear, so it, at least, is unlikely to have a negative impact.
Software Engineer. Bitsum LLC.

Coldblackice

Forgot to say thanks for this, very helpful info! Much appreciated.