|
Please re-read what I wrote in the past. You seem to have some block of imagination between what you write in your file, and how it's used after being compiled. Please explain further why these timing issues are so important. As I Tried to explain before, but I'll now spel it out:-
The idea of writing in windows and MFC is, that whatever platform you write for, In Escence your Code will work. Believe it or not, if written prudently, your code will work on a MAC, on Windows 2000, or, Windows NT. Things work, because the type of question you ask here in how long does it take to perform a Core Operation, like a Compare, or the differerence therein by size of operant, does not come into the equasion, and is largely insignificant in most cases, because of the nature of the User Interface.
Please let me know WHY it is so important to know these timing differences.
Regards
Bram van Kampen
|
|
|
|
|
Thanks Bram,
It is my pure technical interest to learn how internal things work, like compare. I appreciate your help all the time.
regards,
George
|
|
|
|
|
George_George wrote: It is my pure technical interest to learn how internal things work, like compare. I appreciate your help all the time
I Thought that All Along, Otherwise I might have dismissed you with a smart remark. (not my style though)Hope my comments were helpful to yourself an the community. You ask many basic questions, an that's GOOD!
Bram van Kampen
|
|
|
|
|
Thanks for your encouragement, Bram van Kampen!
regards,
George
|
|
|
|
|
May the tread continue in virtual heaven, May those humans who contributed and have expired since the thread started, go to their respective heavens, Those that are still in the land of the living. for, all those who contributed, did not break new boundaries, but merely covered points which first year University Courses should have covered.
Claim Bonus Points for Your respective heavens, whatever their religion.
Bottom Line: Education should not concentrate only on the virtual experience of how a compiler compiles, It should keep the new bucks down a bit by also teaching programming in assy language and Basic principles and a basic understanding of how an I86, or whatever chip works!
Bram van Kampen
|
|
|
|
|
Hello everyone,
Two concepts about heap on Windows after reading MSDN document about heap functions.
1. Default heap. Each process has a default heap. But the default heap of different processes are different, right? Example, process 1 has default heap A and process 2 has default heap B, then A and B should be different heaps, right?
2. Why a process needs to allocate private heap, any practical use?
3. Are there any default global heap which different processes could share?
thanks in advance,
George
|
|
|
|
|
1. A and B should be different heaps - Yes.
2. Practical uses - Yes.
3. Global heap - No.
...cmk
The idea that I can be presented with a problem, set out to logically solve it with the tools at hand, and wind up with a program that could not be legally used because someone else followed the same logical steps some years ago and filed for a patent on it is horrifying.
- John Carmack
|
|
|
|
|
Thanks cmk,
Could you help to show some practical usage of creating private heap please?
regards,
George
|
|
|
|
|
2. A process needs a heap to allocate dynamic things (e.g. malloc function, and new keyword).
1. When a process exits, it must release its memory. How could it release memory that
contains its heap intertwined with some other processes heap?
3. no, see 1.
Luc Pattyn [Forum Guidelines] [My Articles]
this months tips:
- use PRE tags to preserve formatting when showing multi-line code snippets
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Thanks Luc,
Could you help to show some practical usage of creating private heap please?
regards,
George
|
|
|
|
|
Hi,
Having more than one heap may improve the memory situation (less fragmentation)
and the performance.
PERFORMANCE
You could take advantage of a private heap like this:
- create a private heap
- allocate a lot of objects on that heap
- when done, rather than freeing each of these objects, and then the heap itself,
you can free the heap directly without caring about the objects it contains; this of course
assumes you don't need the objects any longer.
FRAGMENTATION
Example: a program needs a lot of type1 objects for a long time and a lot of type2 objects
for a short time; these objects are created at the same time.
First scenario: using a single heap the objects would get interleaved somehow, so freeing the type2 objects would leave the one heap fragmented, effecively not yielding free memory pages
at all.
Second scenario: allocating type1 objects on heap1 and type2 objects on heap2, when done
with type2, heap2 can be freed, effectively freeing all its memory pages whereas heap1
continues to be used (with less, at best no, fragmentation).
Luc Pattyn [Forum Guidelines] [My Articles]
this months tips:
- use PRE tags to preserve formatting when showing multi-line code snippets
- before you ask a question here, search CodeProject, then Google
|
|
|
|
|
Thanks Luc,
Practical and excellenet!
regards,
George
|
|
|
|
|
hi all, i wanted to simulate pressing ALT by keybd_event() but i dont know the code , or if it is a virtual key. does any1 know code or virtual_key value?
thnx
|
|
|
|
|
WM_SYSKEYDOWN.If u use it in PreTranslateMessage:
BOOL CTest::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_SYSKEYDOWN && pMsg->wParam == VK_..something..)
{
// TO DO:....
}
return CDialog::PreTranslateMessage(pMsg);
}
|
|
|
|
|
lol,i wanted the something in "VK_something" , my question's answer is : the alt code is (for example) VK_ALT ! or something like that , i know how to get other keys like VK_Shift , but there is nothing about ALT key in my book
|
|
|
|
|
I answered WM_SYSKEYDOWN if you use it in PreTranslateMessage, not VK_something. But you want to simulate.
-- modified at 6:43 Saturday 10th November, 2007
|
|
|
|
|
i want to press the alt not to check if it is pressed or not .
thnx , V_shr
|
|
|
|
|
use this: keybd_event(VK_MENU,0xb8,0,0);
|
|
|
|
|
Don't forget to release the ALT key with :
keybd_event(VK_MENU,0xb8,KEYEVENTF_KEYUP,0);
|
|
|
|
|
thanks a LOT
|
|
|
|
|
Hello everyone,
I am just interested in the following sample, how compiler maps one dimensional int pointer array to two dimensional int array so perfect. E.g. p [3][3] maps to the 33th element and p [0][9] maps to the 9th element.
How does the compiler do the internal mapping of one dimensional int pointer array (variable p) and the two dimensional int array (variable buffer)?
<br />
int main (int argc, char** argv)<br />
{<br />
<br />
int (*p) [10];<br />
int buffer [10][10];<br />
int tmp;<br />
int i = 0;<br />
int j = 0;<br />
<br />
for (i = 0; i < 10; i++)<br />
{<br />
for (j = 0; j < 10; j++)<br />
{<br />
buffer [i][j] = i * 10 + j;<br />
}<br />
}<br />
<br />
p = &buffer;<br />
<br />
tmp = p [3][3];
<br />
tmp = p [0][9];
<br />
return 0;<br />
}<br />
thanks in advance,
George
|
|
|
|
|
sorry to say that, right now, i donot have any idea on this post,
but how about your algorithm to get 1000 largest values? any good news?
here i have implemented the algorithm as i suggested, using linked lists.
it took 30 seconds to sort 10 crore samples.
do you want me to share it?
or have you got a better idea to implement it.
|
|
|
|
|
|
how much time does your nth element logic take to sort the elements?
|
|
|
|
|
Hi chandu004,
chandu004 wrote: how much time
How much time you mean the elapsed time of one invocation of nth_element or how many times I invoke function nth_element?
regards,
George
|
|
|
|
|