ATi's CCC: Not the greatest but not that bad either.

Page 9 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: Matthias99
Originally posted by: beggerking
umm... what you said has nothing to do with what he said... oh well..

Other than that he was agreeing with me and you're still trying to say something else (though what, I'm not quite sure).

and performance is impacted....

Not really. If it's in physical RAM, it's there because the space isn't needed by anything else right now. In this case, there would be no performance difference whether or not you had it running.

If the pages for CCC have been forced out to the swapfile, then whatever forced them out is now using that space in physical RAM. In that case, you'll have a performance penalty the next time you go to access CCC, but your other applications won't be affected by it having allocated space in memory. There would be a small performance hit while the data is being paged out, but that's pretty minor, and a one-time occurence unless you keep accessing CCC all the time.

Performance hit comes in when you try to page-back-in data from swapfile to physical memory, and that is because accessing harddrive is so slow compare to accessing physical memory.

once you page-in CCC, most likely(by the size of it) it will pretty much fill up most of your physical memory. so as soon as you are done with CCC and use another program, your system will have to

1. page out CCC
2. page backin the other program

both require seeking/reading/writing harddrive, hence the performance hit.
less page-in/page-out, the faster your system would be. CCC being such a large program in memory, its going to slow down your system performance everytime you access it.

xtknight only commented on using virtual memory allocation table on physical memory and I agree with him, since when no swap file is allocated, the allocation table points to physical memory hence is what I said that physical memory is being search first before allocation table.

Lets ask xtknight to see what he's take on performance..

and I don't see how xtknight's comment is anything relate to what you said.....
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: beggerking
Performance hit comes in when you try to page-back-in data from swapfile to physical memory, and that is because accessing harddrive is so slow compare to accessing physical memory.

Okay. Now we're actually getting somewhere.

once you page-in CCC, most likely(by the size of it) it will pretty much fill up most of your physical memory.

How is a ~50-80MB program going to 'pretty much fill up most of your physical memory'?

so as soon as you are done with CCC and use another program, your system will have to

1. page out CCC
2. page backin the other program

both require seeking/reading/writing harddrive, hence the performance hit.

Yes, although the paging only has to happen if there isn't enough physical RAM to keep everything in memory at once.

less page-in/page-out, the faster your system would be.

Of course.

CCC being such a large program in memory, its going to slow down your system performance everytime you access it.

Yes, but only if you don't have enough RAM to keep it in physical memory all the time, and not very much unless you are accessing it very very frequently. Even if you assume it's been removed from physical RAM, it only needs to be swapped in when you want to access CCC, and it can only be swapped out once -- after that, it's already out of your physical RAM. What really kills performance is having things swapping in and out constantly.

xtknight only commented on using virtual memory allocation table on physical memory and I agree with him, since when no swap file is allocated, the allocation table points to physical memory hence is what I said that physical memory is being search first before allocation table.

I'm not sure why you're agreeing with him but not me, since we're saying the same thing in slightly different ways. You're still stuck on this 'searching physical memory, THEN the allocation table' thing. This is not how it works.

There is nothing to search BUT the 'allocation table' -- ALL the memory (whether or not you even have a swapfile) is allocated and accessed through the virtual memory system. It's just that only some of it is mapped to physical RAM at any given time.
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
beggerking:--------------------------------------------------------------------------------
I see most part of the CCC is allocated in VM, therefore most of the time when you use CCC, it will have to go look for the information in harddrive, hence, slow system performance...
--------------------------------------------------------------------------------
Matthias99:

Makes absolutely no sense. The pages for CCC may, in fact, be in the swapfile if it has not been used in a while and you have a lot of programs open. But its pages will be brought back into physical RAM when you access them, and will stay there until they are forced out by something else. It is no different than any other application in this regard.
I agree with him on memory allocation map.
I disagree with you on your argument that CCC (50-80mb) won't hurt performance..
that is 50-80mb extra page-in/out everytime you reference to CCC and I just don't see how that would not degrade performance. .
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: beggerking
I disagree with you on your argument that CCC (50-80mb) won't hurt performance..
that is 50-80mb extra page-in/out everytime you reference to CCC and I just don't see how that would not degrade performance. .

How often are you going to use CCC while you're running a game or other 3D application? Especially considering that most of the setting changes require restarting the application for them to take effect.

In practice, any performance loss is going to be minimal, since it's not like CCC is going to keep coming back into RAM once it is swapped out to disk.
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: Matthias99
Originally posted by: beggerking
I disagree with you on your argument that CCC (50-80mb) won't hurt performance..
that is 50-80mb extra page-in/out everytime you reference to CCC and I just don't see how that would not degrade performance. .

How often are you going to use CCC while you're running a game or other 3D application? Especially considering that most of the setting changes require restarting the application for them to take effect.

In practice, any performance loss is going to be minimal, since it's not like CCC is going to keep coming back into RAM once it is swapped out to disk.

The reason why CCC stays in resident is because app/games needs its settings. Everytime an app/game needs CCC's service, CCC is brought back into memory, and probably paged out again. When you consider all the time CCC is brought in and out, there will be a performance hit. This would be worse on systems with small amount of memory, which more processes/system resources will have to be paged out to accomedate CCC.
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: beggerking
Originally posted by: Matthias99
Originally posted by: beggerking
I disagree with you on your argument that CCC (50-80mb) won't hurt performance..
that is 50-80mb extra page-in/out everytime you reference to CCC and I just don't see how that would not degrade performance. .

How often are you going to use CCC while you're running a game or other 3D application? Especially considering that most of the setting changes require restarting the application for them to take effect.

In practice, any performance loss is going to be minimal, since it's not like CCC is going to keep coming back into RAM once it is swapped out to disk.

The reason why CCC stays in resident is because app/games needs its settings. Everytime an app/game needs CCC's service, CCC is brought back into memory, and probably paged out again. When you consider all the time CCC is brought in and out, there will be a performance hit. This would be worse on systems with small amount of memory, which more processes/system resources will have to be paged out to accomedate CCC.

Why on Earth would the program need to bring the control panel applet into memory to get at the settings themselves (which are kept as part of the registry, and probably just accessed through a driver call)? That makes absolutely no sense from a programming standpoint.
 

xtknight

Elite Member
Oct 15, 2004
12,974
0
71
This is basically how it works: http://xtknight.atothosting.com/ntvm.png

(Again, the virtual memory manager "unites" the page file and physical memory and returns the data from whereever it may have been located. "Virtual memory" is not a storage facility. It's the moniker for the memory management system that happens to be in Windows XP that maps the codes to actual locations, and nothing more than that.)

This is a good complementary diagram as well: http://allan.ultra.nyu.edu/~gottlieb/co...s/1999-00-fall/arch/virtual-memory.png
 

xtknight

Elite Member
Oct 15, 2004
12,974
0
71
Originally posted by: beggerking
The reason why CCC stays in resident is because app/games needs its settings. Everytime an app/game needs CCC's service, CCC is brought back into memory, and probably paged out again. When you consider all the time CCC is brought in and out, there will be a performance hit. This would be worse on systems with small amount of memory, which more processes/system resources will have to be paged out to accomedate CCC.

ATI CCC is just a front-end GUI for modifying registry settings that can already be retrieved or written to otherwise. The app doesn't need the actual user control panel to get settings. The game just creates a Direct3D device, then that queries the graphics card driver for AA/AF settings, etc, or something like that. At the end of the day, all settings are stored in the registry. The driver then has immediate access to them.
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: xtknight
This is basically how it works: http://xtknight.atothosting.com/ntvm.png

(Again, the virtual memory manager "unites" the page file and physical memory and returns the data from whereever it may have been located. "Virtual memory" is not a storage facility. It's the moniker for the memory management system that happens to be in Windows XP that maps the codes to actual locations, and nothing more than that.)

This is a good complementary diagram as well: http://allan.ultra.nyu.edu/~gottlieb/co...s/1999-00-fall/arch/virtual-memory.png

umm.. according to your diagram, it does check in physical memory before it seek the page file.. Perhaps I was right.
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: Matthias99
Originally posted by: beggerking
Originally posted by: Matthias99
Originally posted by: beggerking
I disagree with you on your argument that CCC (50-80mb) won't hurt performance..
that is 50-80mb extra page-in/out everytime you reference to CCC and I just don't see how that would not degrade performance. .

How often are you going to use CCC while you're running a game or other 3D application? Especially considering that most of the setting changes require restarting the application for them to take effect.

In practice, any performance loss is going to be minimal, since it's not like CCC is going to keep coming back into RAM once it is swapped out to disk.

The reason why CCC stays in resident is because app/games needs its settings. Everytime an app/game needs CCC's service, CCC is brought back into memory, and probably paged out again. When you consider all the time CCC is brought in and out, there will be a performance hit. This would be worse on systems with small amount of memory, which more processes/system resources will have to be paged out to accomedate CCC.

Why on Earth would the program need to bring the control panel applet into memory to get at the settings themselves (which are kept as part of the registry, and probably just accessed through a driver call)? That makes absolutely no sense from a programming standpoint.

from Text
If your machine is reduced to a slow crawl while the disk access LED is incessantly active, then the cause is clearly due to swapping, because you are trying to use more memory than you have. Memory unused at this instant in time has to be saved to disk swap file to make room for the bytes needed NOW in real memory. In only a few milliseconds however, your software may need the first bytes again, and so new bytes must be written to disk file to make room to read the first bytes back into memory from disk file again. This may be repeated jillions of times. In excess, this swapping is painfully slow.

exactly what I said. also
here
Windows will always try to find some use for all of RAM ? even a trivial one. If nothing else it will retain code of programs in RAM after they exit, in case they are needed again. Anything left over will be used to cache further files ? just in case they are needed. But these uses will be dropped instantly should some other use come along. Thus there should rarely be any significant amount of RAM ?free?.

that proves to you most part of CCC will be placed in swap file, hence every read requires swapping, which is very slow according to previous quote.

ANY function you lose when you turn off CCC imply that CCC is NOT ONLY a frontend GUI to manipulate the windows registry. I think Crossfire requires CCC to be on to work, as well as profiling of games, and video out at Max function.

so your conclusion that CCC won't hurt performance is absurd. Any memory usage by an program (especially one this big) hurts performance.
 

xtknight

Elite Member
Oct 15, 2004
12,974
0
71
Well I'm not sure where the virtual memory 'mapping table' is stored, but my guess would be the physical memory. In that case it would have to go to the physical memory to get the mappings no matter what. (Or maybe there's just some kind of algorithm.) But the general idea is, the virtual memory manager is always in use. The physical memory is also always in use (for all intents and purposes anyway). The page file is not always in use.
 

Ackmed

Diamond Member
Oct 1, 2003
8,499
560
126
To put the matter to rest, why doesnt someone just run a game with CCC in the tray, and then without. I doubt there will be any performance difference. Perhaps in a few days when I get my XT, Ill try it.
 

nRollo

Banned
Jan 11, 2002
10,460
0
0
Originally posted by: Ackmed
To put the matter to rest, why doesnt someone just run a game with CCC in the tray, and then without. I doubt there will be any performance difference. Perhaps in a few days when I get my XT, Ill try it.

What the? Ackmed is going from a 7800GTX KO SLI rig to a single X1900XT?!

Where's BFG10K to talk about the downgrade?

Ackmeds 7800GTX SLI owns in benches, runs cooler and quieter, and he's going to trade down to get slightly better AF, and HDR+ AA in two more games?

:confused:

Ackmed must just like to play with cards like me, I can see no good reason for this change. :(
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: beggerking
that proves to you most part of CCC will be placed in swap file, hence every read requires swapping, which is very slow according to previous quote.

The things you quoted don't "prove" anything. I have no doubts that part or all of the memory allocated by the CCC will be paged out if you don't have room for it and are not accessing it, and indeed your swapfile is extremely slow.

ANY function you lose when you turn off CCC imply that CCC is NOT ONLY a frontend GUI to manipulate the windows registry. I think Crossfire requires CCC to be on to work, as well as profiling of games

I'm not sure about Crossfire (having not used it myself), but you can certainly run a single-card configuration without CCC loaded at all. I know you need to use CCC to enable/disable Crossfire, but I still can't see why it would be accessing it constantly, and it certainly wouldn't be touching every bit of memory it had allocated just to read some settings or profiles. Even if it was reading some part of CCC's memory space to get at the profile data, that part would stay in physical RAM while the rest of it was swapped out, minimizing any performance penalty.

and video out at Max function.

'video out at Max function' ... do you mean Theater mode? I'm almost certain this works as well without CCC loaded.

so your conclusion that CCC won't hurt performance is absurd. Any memory usage by an program (especially one this big) hurts performance.

If you have enough memory that nothing gets swapped out, the performance hit is essentially zero.

As long as your working set (the set of memory pages your program actually needs to access) will fit in physical RAM, the performance hit is going to be VERY small, since at most it is a one-time penalty while the pages are swapped out to make room for something else.

Your entire argument is based the absurd assumption that CCC is being constantly accessed by other programs, and thus some or all of it will always be kept in physical RAM (or result in it being swapped in and out all the time). I can see no reason that this would be the case, and unless you have some sort of evidence to prove otherwise, you're simply not going to convince anyone of it.
 

John Reynolds

Member
Dec 6, 2005
119
0
0
And even if a 15 MB progie is kept in memory compared to another that uses only, say, 3-5 MB, do you even think this is going to impact a game's frame rate on a modern or fairly modern system? It's not. This havering over CCC is FUD, pure and simple.

That said, I haven't been a big fan of CCC mainly for aesthetic reasons. It was too slow to load in its earlier versions and its interface is still less than as user friendly as it could or should be.
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: xtknight
Well I'm not sure where the virtual memory 'mapping table' is stored, but my guess would be the physical memory. In that case it would have to go to the physical memory to get the mappings no matter what. (Or maybe there's just some kind of algorithm.) But the general idea is, the virtual memory manager is always in use. The physical memory is also always in use (for all intents and purposes anyway). The page file is not always in use.

Yes. And I was right on searching physical memory before search the "mapping table" as was also illustrated by your graph. :) good that I still havn't forget from my schooling days.. :)
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: Matthias99
Originally posted by: beggerking
that proves to you most part of CCC will be placed in swap file, hence every read requires swapping, which is very slow according to previous quote.

The things you quoted don't "prove" anything. I have no doubts that part or all of the memory allocated by the CCC will be paged out if you don't have room for it and are not accessing it, and indeed your swapfile is extremely slow.

ANY function you lose when you turn off CCC imply that CCC is NOT ONLY a frontend GUI to manipulate the windows registry. I think Crossfire requires CCC to be on to work, as well as profiling of games

I'm not sure about Crossfire (having not used it myself), but you can certainly run a single-card configuration without CCC loaded at all. I know you need to use CCC to enable/disable Crossfire, but I still can't see why it would be accessing it constantly, and it certainly wouldn't be touching every bit of memory it had allocated just to read some settings or profiles. Even if it was reading some part of CCC's memory space to get at the profile data, that part would stay in physical RAM while the rest of it was swapped out, minimizing any performance penalty.

and video out at Max function.

'video out at Max function' ... do you mean Theater mode? I'm almost certain this works as well without CCC loaded.

so your conclusion that CCC won't hurt performance is absurd. Any memory usage by an program (especially one this big) hurts performance.

If you have enough memory that nothing gets swapped out, the performance hit is essentially zero.

As long as your working set (the set of memory pages your program actually needs to access) will fit in physical RAM, the performance hit is going to be VERY small, since at most it is a one-time penalty while the pages are swapped out to make room for something else.

Your entire argument is based the absurd assumption that CCC is being constantly accessed by other programs, and thus some or all of it will always be kept in physical RAM (or result in it being swapped in and out all the time). I can see no reason that this would be the case, and unless you have some sort of evidence to prove otherwise, you're simply not going to convince anyone of it.

"As long as your working set (the set of memory pages your program actually needs to access) will fit in physical RAM, the performance hit is going to be VERY small, since at most it is a one-time penalty while the pages are swapped out to make room for something else.

swapping means : moving existing data out ( data 1),
pull in new data ( data 2), use it
move data 2 out
move data 1 in

actually 4 hd accesses...

"Windows will always try to find some use for all of RAM ? even a trivial one. If nothing else it will retain code of programs in RAM after they exit, in case they are needed again. Anything left over will be used to cache further files ? just in case they are needed. But these uses will be dropped instantly should some other use come along. Thus there should rarely be any significant amount of RAM ?free?."


in windows system, any physical presence affects performance. I'm not sure how much CCC will be used, but if it is used , most likely the swapping will occur. If CCC has no use other than modify registry settings, then it'd still be better to shut it down to save some memory for other use and there'd be little value in keeping it in memory.
 

Ackmed

Diamond Member
Oct 1, 2003
8,499
560
126
The simple fact that you think the HD will swap because of CCC is laughable, really. Its pretty obvioous you dont have an ATi card, and havent used CCC before.

Are you willing to put money down that using CCC will cause a performance loss in games?
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Originally posted by: Ackmed
The simple fact that you think the HD will swap because of CCC is laughable, really. Its pretty obvioous you dont have an ATi card, and havent used CCC before.

Are you willing to put money down that using CCC will cause a performance loss in games?

I have 9600xt and I am using CCC, though I rarely play any game on it so I don't know if its a simple GUI or is it a true running program staying in resident. When I'm actually using CCC, my system does slow down. Now I'm not sure if CCC has anything to do when running games etc. I'm just saying if it does run operations other than being a simple GUI, it will use up some physical memory which otherwise could be reserved for better gaming experience.
 

JonathanYoung

Senior member
Aug 15, 2003
379
0
71
Although I don't have anything to add to this discussion, I just want to say thank you to the people who've participated in this thread. After reading it, I uninstalled CCC and went with ATI Tray Tools instead, and I'm much happier with it. Thanks people!
 

Matthias99

Diamond Member
Oct 7, 2003
8,808
0
0
Originally posted by: beggerking
swapping means : moving existing data out ( data 1),
pull in new data ( data 2), use it
move data 2 out
move data 1 in

actually 4 hd accesses...

Except that the last two steps will only occur if something actually wants to access 'data 1' again. What I'm saying is that, since CCC will just be sitting there in the background, nothing will want to access any meaningful amount of its memory until the user re-opens it.

in windows system, any physical presence affects performance.

If you have enough physical RAM that the working set fits in memory, any performance hits are going to be small, since they will occur one time at most and then everything you need will be in physical RAM already. If you don't have enough memory to hold the whole working set, then you'll swap regardless of anything else running in the background.

You are asserting that CCC not only eats up physical RAM, but actually increases the size of the working set of other programs by a sizable amount. This is, frankly, ludicrous, and you have presented absolutely zilch to show that this is the case.

I'm not sure how much CCC will be used, but if it is used , most likely the swapping will occur. If CCC has no use other than modify registry settings, then it'd still be better to shut it down to save some memory for other use and there'd be little value in keeping it in memory.

...but Windows won't keep it in physical memory if it is needed for something else.

Forget it. You're either unwilling to listen, unable to comprehend how it works, or purposefully being difficult. I have better things to do with my time than try to explain it again.

I would hope anyone who actually looks at the thread and reads my posts can figure out that any performance impacts from CCC (or any other inactive program sitting in the background, regardless of its memory footprint) are going to be one-time hits, and probably not huge ones at that.
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Everything you said you assumed CCC don't work in the background. You are the one unwilling to admit the possible cost of having CCC in memory. Let me explain to you again:
1. Data1 can be game data,which is swapped out (assuming CCC needs to do some work with it)
2. Load Data 2(CCC) into memory
3. Data 2(CCC) completes and swap out
4. Data 1(game) swaps back in, game starts.

Matthias99:
You are asserting that CCC not only eats up physical RAM, but actually increases the size of the working set of other programs by a sizable amount. This is, frankly, ludicrous, and you have presented absolutely zilch to show that this is the case.
I never asserted anything. I said: assuming CCC itself does do operations rather than being just a frontEnd. Obviously this is the worst case scenerio, assuming CCC is not just a frontEnd. Stop putting words into my mouth.

Matthias99:
Forget it. You're either unwilling to listen, unable to comprehend how it works, or purposefully being difficult. I have better things to do with my time than try to explain it again.

I would hope anyone who actually looks at the thread and reads my posts can figure out that any performance impacts from CCC (or any other inactive program sitting in the background, regardless of its memory footprint) are going to be one-time hits, and probably not huge ones at that.

obviously you are asserting CCC is only a frontEnd, yet you are not willing to admit the possibility of the use of CCC being in resident may actually do some monitoring. I don't have to explain to you again, as obviously I have helped JonathanYoung to a more effecient use of memory space.
 

xtknight

Elite Member
Oct 15, 2004
12,974
0
71
ATI's CCC won't contribute to [any remotely major] performance degradation. When another more "recent"/important/foreground program needs the memory currently allocated by CCC, the virtual memory manager will page out ATI CCC to the hard disk (which will likely yield less than 5 seconds of a hit if that.) After it's out of the physical memory, then the game can use the physical memory instead, and everything is fast again with no further degradations. The only point where it would cause anything noticeable is when your whole system completely overflows all available RAM+page file. Then the 60 MB (or however much) of ATI CCC is left sitting there taking up space that could potentially be used by the game file. Otherwise, the game is not affected. The 60 MB of CCC is just ignored and the game writes to other available sectors in the page file instead (or other chips of RAM). ATI CCC is not part of the driver, it is just a front-end for dynamic library calls (reset display/change resolution) and registry keys. (It does however happen to be bundled with the driver for convenience.) At no point does an application need ATI CCC for any reason (I am sure of this). Download the ATI driver with no control panel and games will still work, but you'll have to use 3rd party utils as a front-end (such as ATI Tray Tools).
 

beggerking

Golden Member
Jan 15, 2006
1,703
0
0
Yes. I'm talking about the performance degradation of paging in / out CCC, then paging in game.

If CCC doesn't do anything in the background, then we don't need it stay in resident. Save on paging.

Performance degradation depends on how much physical memory you have, the size of the game, and if there is anything else actively running in the background.