|
It depends on your code and your processor. A hyperthreaded processor duplicates some of the processor internals, but not all of them so it doesn't provide the performance boost of dual processors or even dual core processors.
When you look at using multiple threads, the biggest consideration is how you share data between the threads and usually requires a change in algorithmic approach. Performance is usually best when you can break your calculation into completely separate operations of signifigant size. If you can't do that, then a single threaded approach might even be faster in most cases.
|
|
|
|
|
hi, when i run on on of my application in visual studio, it takes up to 100% of the usage sometime, does it mean the exe might just crashed?
|
|
|
|
|
No, that's normal. (Anonymous is, erm, wrong)
Please also see my other reply
Pandoras Gift #44: Hope. The one that keeps you on suffering. aber.. "Wie gesagt, der Scheiss is' Therapie" boost your code || Fold With Us! || sighist | doxygen
|
|
|
|
|
That is not right.
Even a low priority program will get 100% of CPU power when no other program is running.
Reasons why a program does not use 100% of CPU:
- it is waiting for user input
- it is waiting for external hardware (e.g. hard drive)
- It "gives up" CPU cycles (Sleep(), WaitFor* etc.) for one or another reason
The first two are the most common why on a modern system you rarely reach 100% CPU power e.g. with office.
Pandoras Gift #44: Hope. The one that keeps you on suffering. aber.. "Wie gesagt, der Scheiss is' Therapie" boost your code || Fold With Us! || sighist | doxygen
|
|
|
|
|
You are on a dual processor machine. The only way to use 100% would to have two threads RUNNING INDEPENDENTLY.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
Your CPU has hyper-threading which makes it show up as a dual processor system. In order to take full advantage of the CPU, you need to use mutiple threads in your app, which is usually much more difficult, unless approach is naturally parallelizable.
|
|
|
|
|
j_s_lacroix wrote:
I can see that there is 2 graphics
Pentium 4 processors have Hyperthreading (try google). The OS sees that as two CPUs.
Do you have 100% on one, 50% on one, or 50% on both?
100% on one:
The program is single threaded, and uses one CPU to the maximum. Only a multithreaded program can emplo more than one CPU.
50% one one (or both):
Two possibilities: (A) the task is regulary giving up CPU power (e.g. by Sleep(), or WaitFor*() for thread synchronization). (B) some other component such as File I/O is slowing you down.
if the simulation heavily works with external files, or does graphics, it is probably (B)
Pandoras Gift #44: Hope. The one that keeps you on suffering. aber.. "Wie gesagt, der Scheiss is' Therapie" boost your code || Fold With Us! || sighist | doxygen
|
|
|
|
|
the program will works fine on small set of data just fine......but in large data, the dialog window will come up and with just 0s then started processed after 5 minutes.
this only happened on release version, debug version works fine no matter what size of data.
could anyone tell me what to look? I have generated the debug info on release version, but it's really hard to tell where went wrong, because it didn't really crash, it's just slow....
if I turn off the optimazation, it will be even slower -- take 10 minutes to start!
any info will be greatly appreciated!
|
|
|
|
|
What is the program intended to do?
|
|
|
|
|
it supposed to check on the history of call record and create report for those duplicate record.....seems like it is in some infinite loop somewhere, but i can't find it.
thanks for your reply
|
|
|
|
|
Check ALL of your classes for uninitialized member variables.
Examine use of pointers to make sure they are all initialized.
Turn thecompiler warning up to 4 and pay attention to ANY warning like "use of varible 'x' before it is initialized".
These are typical scenarios when 'debug' works fine and 'release' does not. The debug sets up memory differently and masks illegal use of variables and pointers!
|
|
|
|
|
There is a good chance you have an O^x loop (where x > 1) in your code. For example, if you had a O^2 loop, 10 data elements would require 10^2 or 100 iterations of the loop. 20 data elements would require 400 iterations. A simple doubling of the data set size requires four times as long to run. So going from 10 -> 10000000 would make the program appear to take forever.
I've seen some programs with an O^4 loop that wasn't required.
Or you just have an infinite loop. Try writing to a log file to check for progress.
Tim Smith
I'm going to patent thought. I have yet to see any prior art.
|
|
|
|
|
How do I tell C++ to scan a specific drive and output the name of the files and folders that are on that drive?
|
|
|
|
|
By using the FindFirstFile() /FindNextFile() pair.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
currentIE = (UplinkMapIE*)malloc((uplinkMap->numberUL_MAP_IE + 2) * sizeof(UplinkMapIE));
Can anyone explain whats going on here at all? Thanks in advance
Ste
|
|
|
|
|
it's allocating (uplinkMap->numberUL_MAP_IE + 2) * sizeof(UplinkMapIE) bytes. sizeof(UplinkMapIE) is the size of the UplinkMapIE structure (or class). so, it's allocating room for (uplinkMap->numberUL_MAP_IE + 2) UplinkMapIE structs.
then it's assigning the return from malloc to a pointer to an UplinkMapIE.
Cleek | Image Toolkits | Thumbnail maker
|
|
|
|
|
As i told you that i have inserted media player in my application as an activex control. I allow user to select a media file using File open dialog. Then the selected file will be played in that media player. I do not want to open saparate media player to play file. Also play, as i know is not a valid verb for ShellExcute function.
We Believe in Excellence
|
|
|
|
|
i want the text to be formatted like.. value of x=5, for doing this,
CString msg ="value of x=";
int num =5;
Msg.Format(Msg,"%d", num); //i dont want like "value of x" here lke ("val of x"%d,num)
output should be --> "value of x=5"
but its printing only --> "value of x"
regards,
Rookie
|
|
|
|
|
Look here[^]
Marc Soleda.
... she said you are the perfect stranger she said baby let's keep it like this... Tunnel of Love, Dire Straits.
|
|
|
|
|
hi,
you schould do one of the following:
CString strMsg = "value of x = %d";<br />
int num =5;<br />
<br />
strMsg.Format(strMsg, num); <br />
<br />
CString strMsg = "value of x =";<br />
int num =5;<br />
<br />
<small></small><br />
strMsg.Format(strMsg + "%d", num);
The reason you ended up without the 5 is because the Format function didn't see any formating paramaters and therefore only placed "value of x=" in the object.
Hope this sets you on the way
Regards,
Kurt Pattyn
codito ergo sum
|
|
|
|
|
nice stuff frm u and marc... thanx guys..
its done
regards,
Rookie
|
|
|
|
|
And don't forget:
<br />
CString strMsg = "value of x =";<br />
int num =5;<br />
<br />
strMsg.AppendFormat("%d", num);<br />
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~<br />
Peter Weyzen<br />
Staff Engineer<br />
<A HREF="http://www.santacruznetworks.com">Santa Cruz Networks</A>
|
|
|
|
|
Hello
I have added windows media file in dialog based application as an activeX control. Now i want to play a file in it. Please tell me how can i do that?
Thanks
We Believe in Excellence
|
|
|
|
|
I am creating an MFC application with activeX document server support. The application runs perfectly fine when i run as a standalone application. But when i run the application in Internet explorer,
it opens however opening a form from the top menubar, it gives an error "access violation reading
location" having error code 0xC0000005 (Running in standalone mode does not give this error).
I have used global pointers to the objects I need.
In application class, i have declared a object as
TestClass* tm; //tm is a global pointer to TestClass
In application class, InitInstance() function i initialize the pointer as
tm = new TestClass();
AND i call the following code on Menu click as
{
tm->doModal();
}
I get the access violation error when i call DoModal().
I have to use tm as a global pointer to TestClass since using
local pointer has not worked. If you have any workaround, please help.
Thanks.
Bruce
|
|
|
|
|
Is there a more standard way from within MFC to get the current working directory? What I’m using is _getcwd(buff, 50). It does the job, but I’m wondering if I should be using something else (which I can’t as now find)?
Thanks,
Ilan
|
|
|
|