Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: CIYAM on January 21, 2013, 03:30:37 AM



Title: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 21, 2013, 03:30:37 AM
Running bitcoin-qt on a not so powerful laptop running XP can be a pain as it consumes basically all CPU every time it validates a new block (so every 10 minutes or so my computer *freezes* for generally around 5 seconds which feels like a long time when you're trying to code).

Of course I know how to lower the priority of the bitcoin-qt process (and do this for now) but I think this makes for a pretty bad new user experience (especially if you are catching up blocks) and I would guess that many users may not even know how to adjust the process priority.

So maybe it would be a good idea to have a setting to "Run as low priority"?


Title: Re: Add a "low priority" setting for Windoze?
Post by: grue on January 21, 2013, 04:09:15 AM
Code:
#ifndef WIN32
#include <Windows.h>
#endif
[...]
SetPriorityClass(GetCurrentProcess(), BELOW_NORMAL_PRIORITY_CLASS);


Title: Re: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 21, 2013, 04:55:41 AM
Sure and I have coded SetPriorityClass before - but I was suggesting something that might be more usable for Gavin's Grandma than an API call - let's say a check box perhaps? :)

Hmm... just realised I posted this in the wrong sub-forum (should have been posted in Development & Technical Discussion) - any mod want to move this for me?


Title: Re: Add a "low priority" setting for Windoze?
Post by: dree12 on January 21, 2013, 05:27:57 AM
Any mod want to move this for me?
You can do so yourself.


Title: Re: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 21, 2013, 05:48:12 AM
You can do so yourself.

Oh - how?


Title: Re: Add a "low priority" setting for Windoze?
Post by: 2112 on January 21, 2013, 05:56:26 AM
Oh - how?
start /b /belownormal c:\program files\bitcoin\bitcoin-qt.exe

from the command line; or you can make a shortcut:

c:\windows\system32\cmd.exe /c start /b /belownormal c:\program files\bitcoin\bitcoin-qt.exe


Title: Re: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 21, 2013, 06:00:13 AM
I *know* how to do these things (changing the priority either from a shortcut or from the Task Manager or in code, etc.).

I posted in the wrong sub-forum and I thought that I was being told I can *move* my topic so that is what I want to know "how to do".

Can someone please explain "how do I move this topic"?

(actually maybe I'll just delete it as it looks as though it will take me more time to explain what the purpose of this topic is than I think I can be bothered with)


Title: Re: Add a "low priority" setting for Windoze?
Post by: 2112 on January 21, 2013, 06:06:36 AM
Can someone please explain "how do I move this topic"?

(actually maybe I'll just delete it as it looks as though it will take me more time to explain what the purpose of this topic is than I think I can be bothered with)

I'm sorry, I misunderstood your request.

The "move topic" is somewhere on the bottom of the page on the left, next to the "lock topic".


Title: Re: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 21, 2013, 06:08:48 AM
IIRC the "move thread" is somewhere on the bottom of the page on the left.

Thanks!

I had actually never noticed that link was there before (wasn't trying to be lazy).

Finally moved to where it should have been originally posted (must be a bit tired today).

:)


Title: Re: Add a "low priority" setting for Windoze?
Post by: Pieter Wuille on January 21, 2013, 10:36:52 PM
I'm quite sure your computer freezing up is not caused by the CPU needed for verifying signatures, but by the database I/O blocking your OS and other applications from accessing your hard disk. Scheduling the task at low priority will not help in that case.

The next release (0.8 ) should decrease I/O requirements a lot. If you're interested, feel free to try the test builds (https://bitcointalk.org/index.php?topic=129861.0)

BTW: I'm not saying that a checkbox to lower CPU priority (or even a default) is a bad idea - I just don't think it will help preventing freezes.


Title: Re: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 22, 2013, 12:24:06 AM
BTW: I'm not saying that a checkbox to lower CPU priority (or even a default) is a bad idea - I just don't think it will help preventing freezes.

When I switch the process to low priority I get *no* freezes at all so yes I *do* very much think that it is CPU.


Title: Re: Add a "low priority" setting for Windoze?
Post by: Diapolo on January 22, 2013, 01:02:22 PM
Can you plese stop using that "Windoze" slang ;), thanks.

Dia


Title: Re: Add a "low priority" setting for Windoze?
Post by: DarkHyudrA on January 22, 2013, 01:31:18 PM
Can you plese stop using that "Windoze" slang ;), thanks.

Dia
What a helpful post .-.

OP: Unless that in the coming years there will still exists slow laptops or even those crap netbooks, I don't believe that this is necessary.


Title: Re: Add a "low priority" setting for Windoze?
Post by: DeathAndTaxes on January 22, 2013, 01:42:13 PM
Unless that in the coming years there will still exists slow laptops or even those crap netbooks, I don't believe that this is necessary.

Um I would say that is an absolute GUARANTEE.  Either underpowered hardware sold to meet price points accepted by the general public or otherwise decent hardware slowed to a crawl by software bloat.  Ever seen the amount of services and background processed launched by third parties in the average user's (think your mom not anonymous hacker) computer after say 3-4 years.


Title: Re: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 22, 2013, 01:59:30 PM
Can you plese stop using that "Windoze" slang ;), thanks.

Oh sorry - didn't mean to offend - it's just that I'm not going to put a TM every time a type a bloody standard English word just because some American company things it has the right to *own* common English words and sue people who don't do this.

So let me know what I should call it (in a way the M$ is happy for me to with but with no TM or the like)?


Title: Re: Add a "low priority" setting for Windoze?
Post by: Diapolo on January 22, 2013, 02:37:15 PM
Can you plese stop using that "Windoze" slang ;), thanks.

Oh sorry - didn't mean to offend - it's just that I'm not going to put a TM every time a type a bloody standard English word just because some American company things it has the right to *own* common English words and sue people who don't do this.

So let me know what I should call it (in a way the M$ is happy for me to with but with no TM or the like)?


Just use Windows :D, I call Linux Linux and Mac Mac, so that should be rather straight forward ^^.

Thanks :),
Dia


Title: Re: Add a "low priority" setting for Windoze?
Post by: Diapolo on January 22, 2013, 02:40:04 PM
I'm quite sure your computer freezing up is not caused by the CPU needed for verifying signatures, but by the database I/O blocking your OS and other applications from accessing your hard disk. Scheduling the task at low priority will not help in that case.

The next release (0.8 ) should decrease I/O requirements a lot. If you're interested, feel free to try the test builds (https://bitcointalk.org/index.php?topic=129861.0)

BTW: I'm not saying that a checkbox to lower CPU priority (or even a default) is a bad idea - I just don't think it will help preventing freezes.

After reading this thread I took a look at the same idea, to use some lower than normal priority. Perhaps I'll create a pull for this.

Dia


Title: Re: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 22, 2013, 02:45:58 PM
BTW: I'm not saying that a checkbox to lower CPU priority (or even a default) is a bad idea - I just don't think it will help preventing freezes.

As I already stated I have tested this on my laptop many times I am certain that it must be CPU and not I/O (it does not *freeze* when the task has been set to low priority).

After reading this thread I took a look at the same idea, to use some lower than normal priority. Perhaps I'll create a pull for this.

That would be great and I'll happily use that on my old and dirty windows. :D


Title: Re: Add a "low priority" setting for Windoze?
Post by: Diapolo on January 22, 2013, 05:24:56 PM
You are free to take a look at my (untested and yet to be commented) pull-request.
It's perhaps just a starting point or could even be considered useless by other core devs, well see :).

https://github.com/bitcoin/bitcoin/pull/2199

Dia


Title: Re: Add a "low priority" setting for Windoze?
Post by: Pieter Wuille on January 22, 2013, 07:45:00 PM
BTW: I'm not saying that a checkbox to lower CPU priority (or even a default) is a bad idea - I just don't think it will help preventing freezes.

As I already stated I have tested this on my laptop many times I am certain that it must be CPU and not I/O (it does not *freeze* when the task has been set to low priority).

Interesting - thanks for reporting, in that case.


Title: Re: Add a "low priority" setting for Windoze?
Post by: Diapolo on January 22, 2013, 08:17:29 PM
That would be great and I'll happily use that on my old and dirty windows. :D

You are free to test http://jenkins.bluematt.me/pull-tester/02b9742d714dec4585f1291476896ea136d73f64/bitcoin/bitcoin-qt.exe and report if this build fixes your reported problem. As this build can contain bugs, please backup wallet before or use a testnet wallet :).

Dia


Title: Re: Add a "low priority" setting for Windoze?
Post by: Diapolo on January 23, 2013, 09:12:43 PM
We need some feedback if my pull fixes your observed problems, can you please report your findings :)?
Latest binary is this one: http://jenkins.bluematt.me/pull-tester/f2cb7f4d1220375bb340309c12f67689448f4e7f/bitcoin/bitcoin-qt.exe

Dia


Title: Re: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 24, 2013, 12:44:20 AM
Sorry - am not going to grab a binary - as stated I have manually lowered the priority and found that it freezes much less (although Pieter is correct that it doesn't stop the freezing altogether which I guess is more the I/O side of things).


Title: Re: Add a "low priority" setting for Windoze?
Post by: Diapolo on January 24, 2013, 07:19:37 AM
Sorry - am not going to grab a binary - as stated I have manually lowered the priority and found that it freezes much less (although Pieter is correct that it doesn't stop the freezing altogether which I guess is more the I/O side of things).


No tester - no patch, it's as easy as this ;).

Dia


Title: Re: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 24, 2013, 07:30:19 AM
Sorry - am working 12+ hours per day on CIYAM Open (and there is pretty no-one testing my software apart from myself either unfortunately - testers are in short supply around here).


Title: Re: Add a "low priority" setting for Windoze?
Post by: grue on January 25, 2013, 04:03:12 AM
BTW: I'm not saying that a checkbox to lower CPU priority (or even a default) is a bad idea - I just don't think it will help preventing freezes.

When I switch the process to low priority I get *no* freezes at all so yes I *do* very much think that it is CPU.

windows 7 also has IO priorities for processes

Sorry - am working 12+ hours per day on CIYAM Open (and there is pretty no-one testing my software apart from myself either unfortunately - testers are in short supply around here).

can i help?


Title: Re: Add a "low priority" setting for Windoze?
Post by: CIYAM on January 25, 2013, 04:40:13 AM
windows 7 also has IO priorities for processes

Interesting - I didn't know that (haven't used it).

Sorry - am working 12+ hours per day on CIYAM Open (and there is pretty no-one testing my software apart from myself either unfortunately - testers are in short supply around here).
can i help?

If you meant testing Dia's patch then he gave a link - if you meant with CIYAM Open then PM me to discuss.