Results 1 to 17 of 17

Thread: TopWinPrio

  1. #1
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    926
    Thanks
    58
    Thanked 116 Times in 93 Posts

    TopWinPrio

    Uploading this gems since authors site has been down for months and it would be ashame for it to be lost in the internet void.

    TopWinPrio checks every now and then to see what window is active at the moment. When it finds the one, it gives it higher priority than the usual normal priority. Once this window loses focus, TopWinPrio gives the window its standard status back.

    Basically its really nice if you are running a lot of compression stuff in the background that are taxing your cpu 100% and suddenly wants to game.
    just install and forget and enjoy the smoothness it gives during heavy multitasking.
    Attached Files Attached Files

  2. Thanks (4):

    comp1 (12th March 2015),GOZARCK (13th March 2015),surfersat (16th March 2015),vladv (1st March 2020)

  3. #2
    Member just a worm's Avatar
    Join Date
    Aug 2013
    Location
    planet "earth"
    Posts
    96
    Thanks
    29
    Thanked 6 Times in 5 Posts
    Windows does something like this automatically but doesn't use the normal priority settings. If you have a console which outputs a lot of text constantly and then focus through different windows then you can see that as soon as the console looses it's focus the refreshing-rate of the scrolling text will drop noticable. Also minimizing a window triggers a swapping of pages to the page file.
    Last edited by just a worm; 12th March 2015 at 20:52.

  4. #3
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    926
    Thanks
    58
    Thanked 116 Times in 93 Posts
    #2 (just a worm)
    I've read this wasttrue for older NT windows but later windows (xp and newer) doesn't do that in the same degree.
    Never the less its nothing compared to this program. when I was quad boxing FFXI on my laptop and had huge lag on my main window it became a lot more playable with wintopprio
    same with running command line compression in the background.
    I do however wish it would adjust minimized program to below_normal

    This and the old program Copyfaster was the only 2 real performance booster software I've experienced giving measurable benefits and is not just snakeoil

    -- edit --
    Reading more into this when building my own program for it i think you are referring to the CPU slice priority boost windows does if you windows is set to optimize for foreground applications
    This is defiantly not the same and not near the same gains.

    I did do a quick benchmark with playing games with heavy (100%) cpu load in the background (7-zip benchmark)


    Code:
                       UT2004 	     Quake3
                       TDM     ONS	
    NO background
     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%
    Ass you can there is a huge boost in performance from having CPU priority boosted for foreground application. off cause background applications is going to suffer.
    Last edited by SvenBent; 10th April 2015 at 07:59.

  5. #4
    Member
    Join Date
    May 2013
    Location
    ARGENTINA
    Posts
    54
    Thanks
    62
    Thanked 13 Times in 10 Posts
    i see the difference of speed in my laptop and PC instantly. (thanks for share this tool)

  6. #5
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    926
    Thanks
    58
    Thanked 116 Times in 93 Posts
    I made my own alternative for it. it contains no configuration so far.

    mine give "Below normal" priority for a program after you minimize it. I find that very helpful for me. Also it has no memory leaks. topwin prio seems to leak a little bit
    its also contains a quick pause function and uses less memory so far

    http://162.248.14.188/Mercury.exe

  7. #6
    Member
    Join Date
    May 2008
    Location
    Germany
    Posts
    412
    Thanks
    38
    Thanked 64 Times in 38 Posts
    @svenbent: i can not download your mercury.exe ...

    can you please upload your tool as mercury.zip as an attachment to encode.su ?

    if i understand good - your program can give a programm-window a priority-level

    like

    START "Windows-01" /BELOWNORMAL program-01
    or
    START "Windows-02" /HIGH program-02

    best regards

  8. #7
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    926
    Thanks
    58
    Thanked 116 Times in 93 Posts
    my program does it automatically any program you have active/in focus gets "above normal" CPU priority.
    When you leave a program its automatically set back to "normal". If you leave it by minimizing it, it well get "below normal" CPU priority
    so:
    in focus/active = above normal
    not in focus = normal
    minimized = below normal

    It also now has the ability to change CPU slice mode between the normal "desktop" or "server" mode as well as my own "Multitasking" Mode
    Attached Files Attached Files

  9. #8
    Member
    Join Date
    May 2008
    Location
    Germany
    Posts
    412
    Thanks
    38
    Thanked 64 Times in 38 Posts
    @svenbent: Thank you for uploading this tool! Very nice!

    There is a little spelling mistake: "Dekstop" -- "Desktop".

    Can you please explain, what the "CPU slice mode" does, if we select "Desktop"/"Server"/"Multitasking".
    The standard mode after starting is "Desktop" ?

    best regards

  10. #9
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    926
    Thanks
    58
    Thanked 116 Times in 93 Posts
    I've fixed the spelling bug already. CPU slice mode changes how windows handles sharing of the CPU. Desktop and server er the two normal ones that Microsoft already gives the option to select. CPU slices are well.. basically a slice of CPU time

    Desktop mode aka "optimized for programs"
    it uses 60ms slices for foreground programs and 20ms slices for backgrounds programs. Smaller slices for background applications means they can steal less CPU time for the foreground application.
    foregrounds programs has a improve priority on cpu slices.
    This mode is all about making the foregrounds application feels more responsive

    Server mode aka "optimized for backgrounds programs
    uses 120ms CPU slices . bigger CPU slices means less time wasted switching between programs and thereby increases CPU efficiency slightly
    No boosted priority for foregrounds programs

    both of these modes can already be selected in windows right above where you select your page file size etc
    The next two are my own modes

    Multitasking
    Uses 120ms CPU slices just like sever mode for better CPU efficiency.
    foregrounds applications doe get boosted CPU slice priority.
    classically a tweaked server mode


    Gamers
    uses 120ms slices for foreground applications and 20ms slices for backgrounds applications. bigger CPU slices for foreground applications for a bit of enhance CPU efficiency. but keeping background applications slices small so they cant steal to much cpu time.
    Foreground applications is boosted
    basically a tweaked desktop mode with a bit better cpu efficiency


    As far i i understand these changes are live so you don't need to reboot. im considering an automatic mode. that would swith to multitasking if you kb/mouse are idle for sometime. and go to desktop or gamer when you are active/playing a game
    Last edited by SvenBent; 11th April 2015 at 17:51. Reason: Tons of typos

  11. #10
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    926
    Thanks
    58
    Thanked 116 Times in 93 Posts
    just a bit of info. the cpu slice now has an automatic mode. it will give you desktop mode when you are aktivity using your kb/mouse and after 6 minuts of no kb/mouse aktivity it will change to server mode. giving you benefits of both when you need it
    working on comp gives you the fast response time
    away from comp gives you the high cpu efficiency.


    in the future:
    I'm currently working on a *sigh* "Game Booster" mode. so far its giving a 1.5% boost in my test. (quake4, Unigine heaven). Not any big improvements but it IS there.
    i hate this terminology from all the snake oil out there promising 100-300% boost in FPS

    Also a FastReact mode mode. which is bassicaly just a tweak of some setting on the windows Gui to not do minimize/mazimize delay and menu fade in/out.
    I've always hated those small delay when working with multiple windows
    Last edited by SvenBent; 20th April 2015 at 01:40.

  12. #11
    Member
    Join Date
    May 2008
    Location
    Germany
    Posts
    412
    Thanks
    38
    Thanked 64 Times in 38 Posts
    @svenbent: Thank you for explaining

    Would it be possible to implement a feature based on systemtime

    to give special application (for example 7z.exe) "high" priority within the time from 0:00 to 6:00
    but set the priority to "below normal" if the program run longer , for example after 6:01 ..

    best regards

  13. #12
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    926
    Thanks
    58
    Thanked 116 Times in 93 Posts
    It would be possible but i don;t see it as a valuable feature for the goal of this utility.
    What are you trying to do and why?

  14. #13
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    926
    Thanks
    58
    Thanked 116 Times in 93 Posts
    My ISP gave me a new IP so now Project Mercury can be downloaded here:

    http://162.248.14.6/Mercury.exe

    Any feedback welcome

    Also game booster features got cancelled as i could not reproduce my performance improvement under real tests
    Quake 3, Quake 4, UT2004, FFXIV benchmark, Unigine Heaven, Unigine Valley all showed no improvements from the GameBooster
    Last edited by SvenBent; 24th April 2015 at 02:25.

  15. #14
    Member
    Join Date
    Jul 2014
    Location
    Mars
    Posts
    200
    Thanks
    136
    Thanked 13 Times in 12 Posts
    Hello Sven, why don`t you make option for say choosing realtime priority for foreground window like in 3delite process optimizer or boostnow utilities
    it would make far more responsive and fast processing imho, also options like automatically withdraw cpu time from agressive processes like if it takes 75% of cpu, autostart option, would be great alternative
    also i wonder in what situations should we use No multicore stutter (when programm begins to stutter?), No HT conflicts (how should i know if it happens?)
    Last edited by necros; 16th June 2015 at 13:44.

  16. #15
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    926
    Thanks
    58
    Thanked 116 Times in 93 Posts
    Hi Necroes. you have a very valid question.
    Much of my decisions are based on a core principle of making stuff easy simple and lean. Creating the extra option would increase code size a bit and I want to keep it as small as possible.
    The real issue is though, that realtime and high can give some pretty nasty side effects, if user tick them on and not knowing what they do.
    Realtime can easily make a CPU heavy programs freeze your windows since its eating up all CPU. A program in high mode can conflict with network drivers priority and make people experience more lag when playing online games.
    Also as far as i understand having several step higher CPU priority vs just one step higher does not accrue to more CPU process time reserved for the higher priority process. I might be totally wrong here, but that was what i gathered from Cblooms article on Windows CPU time handler.

    So in short. Chance for negative experience +bigger code size for having multiple options, with a possible no benefit was why i didn't do it.
    i Will however look into it with some benchmarks just in case I'm totally wrong (possible)
    If you need it though I can make a quick alternative compile that gives high or realtime priority instead of "just" above normal if you want it.


    Your automatic CPU withdraw is a great idea and its how process lasso works. Two reasons i haven't implanted it.
    1: It takes more CPU time to work that way, so overall system performance might drop lightly (probably not even measurable).
    2: I cant figure out to do it . I've wanted to implant this as an "excessive mode" but haven't found out how to do it.
    Instead i just did the decrease priority on minimized applications. It can however be combined with the automatic feature. Once i figure out how to do it.


    "No multi core stutter" is for old games that has a tiny 0.5 sec lag every 3-5 secs when running on multicore setups. I saw it mostly back with the AMD Athlon 64 X2 times when duel core was just getting into mainstream computer. It simply set the current active process to run with affinity on core 0. The only way to know when to use it, is by noticing that small lag every few seconds, and then try enabling it to see if it helps.

    No HT conflicts is mostly for multi-threaded programs that can't utilize all virtual cores on a CPU with hyper-threading. An example of this would be 7-zip running with 2 or 4 threads on an core I7 ( 8 virtual cores). Since windows see all the virtual cores as equal it might distribute 2 CPU heavy threads to the two virtual cores on the same physical core. Like core0 and core1 both of these are the same physical core.
    Not HT conflicts adjust the affinity on the program to ignore every other virtual core so instead o going to core0 and core1 as in the example above. It would now go to core0 and core2 which would be first and second physical core
    1st physical core = virtual core0 and core1
    2nd physical core = virtual core2 and core3
    3rd physical core = virtual core4 and core5
    4th physical core = virtual core6 and core7

    The increase can be 7zip seems to be around 25% speed boost depending on Windows version.
    However this only works for the active program. Its my goal once i can figure out how to do it to make a more intelligent scan mode where Project Mercury looks for any programs behaving as they are under HT conflicts and relieve them from it.
    Last edited by SvenBent; 12th July 2015 at 05:23.

  17. #16
    Member
    Join Date
    Sep 2007
    Location
    Denmark
    Posts
    926
    Thanks
    58
    Thanked 116 Times in 93 Posts
    Wow 3delite uses around 12mb of memory >.< thats a way to big memory footprint imho

  18. #17
    Member
    Join Date
    Jul 2014
    Location
    Mars
    Posts
    200
    Thanks
    136
    Thanked 13 Times in 12 Posts
    thanx for your detailed reply, yes i`d like to tst your realtime priority version,
    btw i think we can ignore 12mb memory footprint if our goal is performance don`t we?
    Last edited by necros; 13th July 2015 at 01:25.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •