Project Mercury - CPU Priority Booster for heavy multitaskers

SvenBent

2[H]4U
Joined
Sep 13, 2008
Messages
3,323
Project Mercury is my little pet project.
It is a little utility that sits in your systrays and monitors which program/windows you have active/in focus. It will then give this program/window an "Above Normal" CPU priority to ensure a more smooth experience despite having CPU intensive load in the background.
Once you leave the you program Project Mercury will set the CPU priority back to normal, and if you minimized your program/window it will get set to "Below Normal" CPU priority.

This process itself does not magically give any performance boost on your PC, but it makes whatever program/game you are currently working on, be more responsive and faster at the cost of backgrounds programs performance.


Project Mercury also has a CPU slice mode changer:

Desktop:
The standard mode for windows desktop versions aka "Optimize for programs" settings

Server:
The standard mode for windows server versions aka " Optimized for backgrounds

Gamer:
Same as desktops except it uses longer time slices for the foreground application for better CPU efficiency and less CPU stealing from background programs

Multitasking:
My own Settings that's basically the same as sever for optimal CPU efficiency, but still gives a higher CPU slice priority to foreground applications


Project Memory has a fast Clear Memory feature.
I normal highly recommend against using memory cleaners as they are mostly snake oil.
This feature is only integrated into Project Mercury because i was already using the code to reduce the memory footprint of Project Mercury it self.
Many other Clear memory programs works by grabbing a lot of memory and forcing Windows to page out programs. This is a slow process and makes your system have memory issues for a couple of seconds and thereby reduced performance.
Project Mercury instead directly sends the windows command to the programs and ask them to page them out. WITHOUT reducing your available memory during the clearing process.
Again this is not recommend unless you have a specific reason for it. You don't want you data/programs in your slow pagefile, You want them in your fast RAM.

http://www.techcenter.dk
(Look to the right side)


Any feedback/suggestions/benchmarks/constructive criticism are welcome.



Benchmarks (7-zip benchmark, Firefox with flash add's and h.264/aac decoding in the background)
Code:
        UT2004         Quake3               
NO background    TDM    ONS   
 640x480    211.3    161.8    693.4
1024x768    209.2    160.9    692.6
1600x1200    211.3    160.7

Mercury off
 640x480    130.4    124.0    340.1
1024x768    127.3    110.6    322.9
1600x1200    134.1    113.0

Mercury on
 640x480    179.0    142.4    584.7
1024x768    178.9    142.2    471.5
1600x1200    181.9    143.3

Recovered FPS    60%    59%    54%
 
Last edited:
sounds similar to process lasso, maybe youve heard of it. i found out about it when learning about core parking.
 
I do know about process lasso but my inspiration actually came from topwinprio.. however topwinprio had a huge amount of memoryleaks and a lot of bells and whiles. I prefer more streamlined utility.

my utility uses less memory. has below priority for minimized programs. it reacts faster (500ms vs 1000ms) and best of all. this little gem has NO garbage effect on your system. its 100% portable. write no files or registry entries (except if you tell it to change the CPU slice method ).

So if you don't like it you simply delete the .exe file and move along with no dirt left behind in your system.


Also its very easy on the CPU. i did put down the reactions time to 1ms and i still couldn't measure any cpu usage. it can do 99.999,999 outer loops checks withing 8.4 secs on a core I7 [email protected] if its allowed to run on full speed. But it only does 2 per sec so its a farcry from even using 1% of the CPU
 
I'll have to give it a try. Not expecting any miracles, of course. But, any performance increase is great. Maybe get rid of any stuttering or lag due to something else with more priority... I'll try it this weekend with FSX.

Edit - tray icon, when changing CPU slice, Desktop is incorrectly spelled as Dekstop.
 
This sounds very interesting. But, I'm going to wait and see how others fare with it first.

I'm not about to download a random .exe from someone I don't know.

Nothin against you... better safe than sorry.
 
I was curious how it compared to process lasso so I ran a test with unigine heaven:
https://docs.google.com/spreadsheets/d/1OcBIcpaEIAgpyn8Y5ypnCzkeaQuWngB55mOzjU5zKzg

run #1 normal (without processlasso/mercury/cpu eater)
run #2 cpu eater 100% cpu & process lasso
run #3 cpu eater 100% cpu & mercury

For some reason, mercury seemed to stop optimizing around 90 seconds in. Near the end I had to stop cpu eater because it froze everything as the benchmark completed.

Probably not the most fair comparison since cpu eater is made by the same company as process lasso but it was repeatable with control.
 
This sounds very interesting. But, I'm going to wait and see how others fare with it first.

I'm not about to download a random .exe from someone I don't know.

Nothin against you... better safe than sorry.

Same thought exactly. It's playing russian roulette with only 1 chamber empty. I would only try this on VM and snapshot that VM before :)
 
Same thought exactly. It's playing russian roulette with only 1 chamber empty. I would only try this on VM and snapshot that VM before :)

I don't know if i should feel bad for for being treated suspicious or happy that people are having a sane Cautiousness :confused::p

@unstable one.
Thank you for the feedback. I'm about to download unigine heaven and see what is going on.
i quick theory is that in my limited knowledge of how process lasso works, is that it looks to see which process eats up a lot of CPU and then put its on lower priory. my program looks at the user focus and boost that one.
If unigine looses..loses... focus... gets its focus stolen during the test that might be the issue. Project mercury will give the boosted priority to the focus thief instead, while process lasso would keep reducing the priority of CPUeater.

I do prefer my method of looking at the users activity to distributed CPU resource rather than just lowering whatever uses a lot of CPU resources. As sometimes you want the heavy CPU process to actually be faster. (aka gaming).

Quick question did you try project mercury with CPU eater minimized ?

-- edit --
nvm minimizing CPUeater will not help Project Mercury as CPUeater launches a new process with no windows attached that does the actual CPU eating.
 
Last edited:
I don't know if i should feel bad for for being treated suspicious or happy that people are having a sane Cautiousness :confused::p

@unstable one.
Thank you for the feedback. I'm about to download unigine heaven and see what is going on.
i quick theory is that in my limited knowledge of how process lasso works, is that it looks to see which process eats up a lot of CPU and then put its on lower priory. my program looks at the user focus and boost that one.
If unigine looses..loses... focus... gets its focus stolen during the test that might be the issue. Project mercury will give the boosted priority to the focus thief instead, while process lasso would keep reducing the priority of CPUeater.

I do prefer my method of looking at the users activity to distributed CPU resource rather than just lowering whatever uses a lot of CPU resources. As sometimes you want the heavy CPU process to actually be faster. (aka gaming).

Quick question did you try project mercury with CPU eater minimized ?

-- edit --
nvm minimizing CPUeater will not help Project Mercury as CPUeater launches a new process with no windows attached that does the actual CPU eating.

It's quite problematic that if you want to enjoy the array of free software options you also place yourself into great risk. Kinda like saturday night pull without rubber. Sweet sensation with a nagging back thought...
 
I'll have to try this on my Gigabyte Brix GB-BXi7G3-760 with Far Cry 4

The only solution against the risk would be for the project to be open sourced :p

You could open source it but place restrictions on it to make it illegal to recompile, re-use code, etcetera for the sole purpose of allowing security auditing.

VirusTotal for Mercury.exe (SHA256 3929f2eddd26f5ad736ac4b1fe0076136645c5bbca6b10db426f3af0360acd9a)
https://www.virustotal.com/en/file/...ca6b10db426f3af0360acd9a/analysis/1428850442/

VirusTotal for http://162.248.14.188/Mercury.exe
https://www.virustotal.com/en/url/3...1e93b6b54d7069acf07dd55b/analysis/1428850452/
 
@Unstableone

I just made a fast look into and couldt not reproduce your results
Ungine heaven only
FPS: 19.7
Score: 495
Min FPS: 9.2
Max FPS: 46.8

Unigine heaven + cpueater
FPS: 2.8
Score: 71
Min FPS: 1.1
Max FPS: 41.9

Unigine Heaven + CPUeater + Project Mercury
FPS: 17.1
Score: 431
Min FPS: 8.8
Max FPS: 28.7

I did however only eyeball it but it seamed almost as fast with mercuy + cpueater as it did without any of them running through the run.
I think it might by something that stole focus. Did you run the test once or multiple times ?

-- edit --
I've uploaded a newer version which have the correction typo under "CPU slice mode"
It also now runs itself in above normal priority to better facility priority control under heavy CPU load.
Some subroutines optimized for speed. Among others the "CPU slice mode" changer

I am planning an automatic CPU slice mode. It will detect if user is idle and change to sever mode for CPU efficiency, And change back to desktop mode when not idle for better system responsiveness
 
Last edited:
Ran a new series of tests today. Used intelburntest in the background, instead of cpueater.

https://docs.google.com/spreadsheets/d/1LOkQ0r36sHy2kY4AigBqetAQFuj17rhFLS5DnDY8obo/

Avg/min/max fps numbers dont tell the whole story, check the graphs. Unfortunately it seems like mercury wanted to keep intelburntest a priority.

I ran heaven in windowed mode. Started intelburn test and switched windows back. Then quickly started the benchmark + fps log.
 
I'm aware max/min/avg doesn tell the full story. I did not have fps log utility at hand. so i had to go by eyeballing the fps rate. and I dint get the big difference as you are seeing in you heaven test. I ran mine in full screen mode i will retry in windowed mode.
If you could link me to your fps log utility i would try to use that as well

At my last message i didn't have much time to dig into things as i was on my way to bed after nightshift sinceim up now i will look into it again. as well as the intelburntest.
I was actually planning to make a test with Linpak myself.
Please note the intelbunrtest uses an old outdated linpak that does not support avx. Should have no impact on your testing but if you use it for general stability test i would suggest grabbing Linx og run Linpak yourself

-- edit --
I've just tried IBT + heaven and i can see in task manager that priority is properly set. heaven.exe gets above normal. however the effect seems to be very minimal. The CPU utilization increased up a bit on heaven ( about 3%) the performance is only minimal better. Im' still looking into this.
When you say that it looks like mercury is prioritizen IBT. Did you verify in taskmanager ?
Remember Project Mercury gives priority to active programs. so if you are running while you FPS log has focus .then that is the active program that gets higher priorty. since you are not really working with the benchmark.
Project Mercury is much based on user interaction.
 
Last edited:
I didnt check process priority at the time. I had heaven up and active in windowed mode until it was done. When the score popped up, I stopped fraps benchmark mode.

FPS was logged with fraps. All the goggle excel tabs have the full frame info.

I just checked the priorities. It set "above normal" to fraps at all times - only heaven when it was the active window. Intelburntest was at normal.
 
I didnt check process priority at the time. I had heaven up and active in windowed mode until it was done. When the score popped up, I stopped fraps benchmark mode.

FPS was logged with fraps. All the goggle excel tabs have the full frame info.

I just checked the priorities. It set "above normal" to fraps at all times - only heaven when it was the active window. Intelburntest was at normal.

TY for the feedback. Fraps is "above normal" on its own. its not Mercury's work.
I just downloaded fraps to better replicate you experience with mercury
If heaven was active you are indeed doing it correct.
I'm having issues getting a somehow identical sets of sample points with fraps.
when i run haven alone i get around 176 sample points.
heaven + IBT i get only around 56
With heavrn +IBT + mercury i get 70ish

but I can confirm that mercury does little for performance on heaven with IBT running in the background. I'm afraid it might just because of the tight coding in Linpack so that boosting heaven with "above normal" priority only recovers very little CPU resource

I will look into process lasso tomorrow.

if I can ask you for a favor to try the same test on your system but with a "lower" load but still 100% utilization CPU load. (7-zip benchmark or handbrake set to normal priority)

Thank you for all the feedback so far
 
I'm having issues getting a somehow identical sets of sample points with fraps.
when i run haven alone i get around 176 sample points.
heaven + IBT i get only around 56
With heavrn +IBT + mercury i get 70ish

Not sure why. If anything, loading up the cpu should make a longer frametime with enough lag.
Most of my runs were around 260 unless it hit mass lag. Not any settings to it in fraps but im running 3.5.9.

if I can ask you for a favor to try the same test on your system but with a "lower" load but still 100% utilization CPU load. (7-zip benchmark or handbrake set to normal priority)
I didn't even know 7zip had one, I can give it a try later.

I actually tried cpueater @ 7 threads on my 8 thread 4770k but there was almost no difference between it and a baseline run.

Thank you for all the feedback so far
Hope it helps. I like doing benchmark comparisons on things from time to time. Things don't always react how you'd expect.
 
If you put the source code on Github, I'm sure plenty of us would be happy to take a look for you.

+1

Either open source it or get a code signing key. Its too rough these days to install random freeware from untrusted parties.
 
I'll have to try this on my Gigabyte Brix GB-BXi7G3-760 with Far Cry 4

The only solution against the risk would be for the project to be open sourced :p

You could open source it but place restrictions on it to make it illegal to recompile, re-use code, etcetera for the sole purpose of allowing security auditing.

VirusTotal for Mercury.exe (SHA256 3929f2eddd26f5ad736ac4b1fe0076136645c5bbca6b10db426f3af0360acd9a)
https://www.virustotal.com/en/file/...ca6b10db426f3af0360acd9a/analysis/1428850442/

VirusTotal for http://162.248.14.188/Mercury.exe
https://www.virustotal.com/en/url/3...1e93b6b54d7069acf07dd55b/analysis/1428850452/

Yeah im fighting hard with virus total. I put up te link myself for transparency.
Kasperspy i the most slow adopting to fix false positives.
they where in the bunch of 4 AV enginesthat gave my site a malicious site warning. I sent a false positive submission to them all. 2of the fixed it within 24 hours. 1 fixed it but did not fix the url parts. Kaspersky still haven;t fixed it or giving me any response
after the fist round of submissions Sophos started to mark it as malicious.
i submitted a false positive with them and god a response withing 24 hours and should not mark my url or file as malicious anymore,
Kaspersky what the F#ck is going on with your slows labs.

Anyway the reason for getting marked is the usual lazy av coders that marks inside compressed .exe file instead of decoding it and scanning it proper.
pretty much like marking every zip file because there COULD be a virus inside but they where to lazy to make a decoder and look inside the .zip file/

https://www.virustotal.com/en/url/3...1e93b6b54d7069acf07dd55b/analysis/1428967672/

Well Kaspersky fixed half of it. Now it doesn't mark the.exe just the url *sigh* and avira and Sophos still haven't updated their engines going to write to them again
 
Last edited:
Either open source it or get a code signing key. Its too rough these days to install random freeware from untrusted parties.

Security isn't my main concern here. It's just much easier to give useful feedback when you have the source to look at.
 
I'm not sure i want to O/S it. But i do understand the attractiveness of O/S.

@unstable_one
I've just downloaded Process lasso and it works in a different way to obtain the same result. It take all process with a high CPU utilization that are not active and puts it in below.. I got a slight better score on quake3 (491fps vs 471)
but i did experience more mouse lockups switching back and forth with process lasso:confused:.

anyway i might implant an excessive mode that does the same as process lasso + Project Mercury's default mode so act programs will be above. and high CPU usage/not active will be set at below.

I want to avoid setting anything to high as it might give conflicts with networks drivers priority and introduce lag in online gaming.
 
Had time to run the 7zip tests
https://docs.google.com/spreadsheets/d/1parIhDixhU9PJGPE7I5tA6gxRfMjrFKVTn-2PfI0Xz0/

Wasn't much of a "gameplay" difference between running 7zip and either program, it was all full of giant freezing and stuttering. Graphs show a little difference but it ran pretty badly.

Not sure what to say about mouse lockups, I didnt move the cursor during any of my testing.

I've scanned mercury with Avira and malwarebytes antimalware. And scanned my system after with both + spybot. Seems clean to me, and it has not tried to use the internet.
 
Had time to run the 7zip tests
https://docs.google.com/spreadsheets/d/1parIhDixhU9PJGPE7I5tA6gxRfMjrFKVTn-2PfI0Xz0/

Wasn't much of a "gameplay" difference between running 7zip and either program, it was all full of giant freezing and stuttering. Graphs show a little difference but it ran pretty badly.

Not sure what to say about mouse lockups, I didnt move the cursor during any of my testing.

I've scanned mercury with Avira and malwarebytes antimalware. And scanned my system after with both + spybot. Seems clean to me, and it has not tried to use the internet.

TY for the feedback. it seems like mercury just edges out process lasso in this one.
better avg and max fps
process lasso hits below 5fps at 11 time

Mercury "only" 7

I'm still trying to figure out why you got the wietd behavior with heaven and cpu eater, Where Project Mercury seems to stop working. I'm still unable to reproduce it.
What gfxcard/drivers are you using ?
 
My 2 monitors just arrived today so i can finally see taskmanager as well as doing full screen testing..
Next release should have the automatic Desktop/Sever mode CPU slice method implanted.
I'm choosing not to involved multitasking and the game mode into the automode as they are still considered experimental to me. also gamer mode seemed to have a bad effect on performance according to the test done by "Unstableone"
 
TY for the feedback. it seems like mercury just edges out process lasso in this one.
better avg and max fps
process lasso hits below 5fps at 11 time

Mercury "only" 7

TBH they were with the degree of error with testing - the graphs look very very similar. Neither was really better than the other. You wouldn't be able to eyeball the difference if it were running side by side, and maybe not even from the 7zip only test.

I'm still trying to figure out why you got the wietd behavior with heaven and cpu eater, Where Project Mercury seems to stop working. I'm still unable to reproduce it.
What gfxcard/drivers are you using ?
I wouldn't say it's a problem with mercury? Windows was freaking out and apps running in the background on my other monitor were flickering. It couldn't decide what it wanted to do.
It's not uncommon for windows to freeze/lockup when running out of cpu or memory. I still remember the days of 1 and 2 core gaming before I upgraded.

I think maybe if I did the cpu eater (only) or intelburntest (only) it would be 0-1fps the whole way. Maybe it would completely lock up.

Using a gtx970 with 347.25 which has been the same each time. Overclock was 1450/8000 for every test.
 
I've been running a few more tests with Unigene heaven + CPU eater.
I'm still unable to reproduce your error. Task manager monitoring shows the Project Mercury keeps Heaven on "above normal" priority.

I\m still having no luck getting fraps to give a somehow similar number of sample points. but u did get the same amount of sample points with and without running cpu eater. as soon as Process Lasso or Project Mercury is thrown into the mix. The number of sample points just go way down.
Code:
Heaven alone      Score: 4999   Avg FPS: 198.5   min FPS: 38.2   max FPS: 351.7
Heaven + CPUeater Score:   34   Avg FPS:   1.3   min FPS:  1.1   max FPS:  25.0

Heaven +cpueater +
Process lasso     Score:  123   Avg FPS:   4.9   min FPS:  3.7   Max fps    8.2
Process Mercury   Score:  121   Avg FPS:   4.9   min FPS:  3.9   Max FPS    6.1
Process Lasso and Project Mercury seems to be on par with each other.
Both are having a hard time recovering from the impact of CPU eater.
Both are improving fps performance with 250-300%
Both made it possible for Heaven to run without audio stutter, without any of the multitasking enhancers audio would stutter and have drops outs.

I'm putting the issue about Project Mercury suddenly stop working on the back burners until i can verify it or see if others can verify it.
I'm going back to focus on the CPU slice automode and the excessive CPU priory mode.
Hopefully the last can push Project Mercury to beat Process Lasso.
 
Last edited:
Sorry for the spam posting i just wanted to drop an update.
The automatic CPU slice mode is working currently in my test version. it will be implanted in next release.
Furthermore i managed to make Project Mercury use even less CPU when the user is not working at the computer. Quick estimate is that it will drop down to 1/10th of the already unmeasurable small CPU usage. however this comes at a delayed response time of Project Mercury when the user resumes work, so i still have to weight cons and pros on this.

I'm still looking forward for other feedback/suggestions/benchmarks
 
New versions

V1.0.1.0
- Automatic CPU slice mode implanted

This features check if the keyboard/mouse has been idle for 6 or more minutes. If so it changes the CPU slice mode to "Server" for enhanced CPU efficiency. When keyboard/mouse activity resumes, the CPU slice mode will be set "Desktop"


Upcoming planes are still excessive mode and a features to block computer sleep if there is high CPU activity
 
Just a quick update.
There are two new feature in the brewing

A "GameBooster" feature that so far have giving me a repeatedly 1.5% boost in quake4. trial runs error margens where below 0.15% so it not just an error margen
Newer games should see a bigger boost. I'm hoping for up to 5% but 3% would satisfy me.

A "ReactFast" feature to set windows to react faster on input and navigation.

I'm keeping a sharp eye on CPU utilization of Project Mercury. so far its unmeasurable by task manager and even task manager uses more cpu time than project mercury.
 
You need a hardware-based CPU load monitor :\ Not sure if that's even possible or if one exists
 
You need a hardware-based CPU load monitor :\ Not sure if that's even possible or if one exists

and if one did it would probably not be cheap :p

What I'm doing currently is compiling a different version what no waits or pauses that tries to work as fast as possible. monitor how many times it can do certain functions and loops running at full sped, and then dived back to 2 loops a second and see how low number is.
 
Last edited:
and if one did it would probably not be cheap :p

What I'm doing currently is compiling a different version what no waits or pauses that tries to work as fast as possible. monitor how many times it can do certain functions and loops running at full sped, and then dived back to 2 loops a second and see how low number is.

All you need to do is to solder a lead to your CPUs primary cache and keep a keen eye on the voltage changes with a multimeter. :D
 
My ISP changed my IP
Project Mercury can now be downloaded from
http://162.248.14.6/Mercury.exe

Today i could finally sit down and further test my GameBooster. But sadly my previous findings was nowhere to find so its not going into Project Mercury.
i tested : Quake3, Quake4, Unreal Tournament 2005. FFXIV benchmark. Unigine Valley. Unigine Heaven but the slight 1.5 fps boost was gone.

Quick test of Cpu slice mode seems indicate that server mode has roughly 1% more CPU efficiency than desktop mode. I'm looking into further test of that.

Excessive mode is still giving med difficulties. So nothing really new in Project Mercury.
 
Small update

V1.0.2.0
- Added settings to enabled/disable baloon tip.
- Info box added

Memory usage is still below 1.4mb

no big news sadly
 
Updated again again

V1.0.3.0
- Implanted "No multicore stutter" feature. Active program only runs on Core0

This is for old games that has issues running in multicore setup. usually these games would give a 0.5 sec stutter every few seconds.

This is going to be tweaked late so it only affect fullscreen programs.
and also an "Avoid Hyper Threading conflicts" feature is planned. This will boost programs that have heavy CPU usage but equal or fewer threads than max physical cores
 
In addition to Samsung Magician RAPID Mode (for select Samsung SSDs only), I find that this software improves my experience working with a Microsoft Word 2013 (64-bit) document that consumes a minimum of 7GB of RAM when opened and actively working in.
 
Is there really any reason to install this on a system with hexacore at 4200mhz? My system hardly ever gets 100% cpu/core usage
 
@ Primetime.

The main featues of this programs ill only help you if you are multitasking Heavy CPU intensive programs. So you need to be close to 100% cpu utilization to see any benefits

The secondary features are for specific cases where games sometimes does not run optimal under new cpu's


@Cerulean
Thank you for your feedback. I never would guess it could help on word.


new update:

V1.0.4.0
- Implanted "No HT conflicts" feature, Active program has HT disabled

Apparently this can give a boost for GTA5 if you CPU has hyper threading. I Can't confirm this since i don't have a CPU with Hyperthreading or the game.
This should be a better solution than to disable HT entirely since you backgrounds programs can still utilize HT

Feedback is welcome especially on GTA 5
 
Back
Top