|
I would guess that the load times are increased because the drive is having to jump back and forth on the disk to find un-cached data.
Depending on the size of the data, if it is the same data or different data for each process, and the type of reading going on (sequential vs. random), some of the following might work:
1: Use a memory mapped file (MMF) - this eliminates the secondary memory buffer (and possibly "chunking") normally used to read data from disk. Internally, file data is also paged-in in the most efficient manner. Multiple processes can even use the same memory mapped object (if it is named), reducing the overhead of creating and destroying the file object within each object.
2: You can also use a MMF to create a private cache for the file data. You can create a pagefile-based MMF, which is basically a shared memory implementation, copy the file-based data into the MMF's memory, and then share it across all of the processes. While there will be some paging taking place, it should still be much less than that involved for hitting the disk for the pagefile and the on-disk data each time.
3: Regardless of going the MMF route or not, if reading sequentially use the appropriate flags when calling ::CreateFile(...) to improve read performance.
4: If not using a MMF solution, having each process read that file one-at-a-time sequentially from beginning to end, should offer a performance benefit as well.
Peace!
-=- James Please rate this message - let me know if I helped or not!<HR> If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! See DeleteFXPFiles
|
|
|
|
|
how to write program "Auto View CD"
|
|
|
|
|
First think about the logic and what your requirement really is and then ask specific questions that relate to some problem...
It's already mentioned in Forum rules:
2. Be specific! Don't ask "can someone send me the code to create an application that does 'X'. Pinpoint exactly what it is you need help with.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
Do you wan to show autocad files?
|
|
|
|
|
hoa_nguyen wrote: how to write program "Auto View CD"
Very carefully.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
DavidCrow wrote: > how to write program "Auto View CD"
Very carefully.
Bah! I say extreme programming! Type what springs to your mind and then refactor!
"We trained hard, but it seemed that every time we were beginning to form up into teams we would be reorganised. I was to learn later in life that we tend to meet any new situation by reorganising: and a wonderful method it can be for creating the illusion of progress, while producing confusion, inefficiency and demoralisation."
-- Caius Petronius, Roman Consul, 66 A.D.
|
|
|
|
|
|
are you talking about "autorun" ?
|
|
|
|
|
Hello,
i like to set my own cursor during selection in grid, something like hourglass or other,
what i have to do?
For that i make my own as "mycursor.gif" file and included it in my project as resource!
What function is to use, LoadCursorFromFile() or something else?
thanks
break;
|
|
|
|
|
See SetCursor():
SetCursor(AfxGetApp()->LoadStandardCursor(IDC_WAIT));
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
|
You can use of Add Resource for insert or import your cursor and use of LoadImage or LoadCursor for load it or also you can use of CreateCursor to create a cursor and in the end use of SetCursor
|
|
|
|
|
I am a relative newbie to Visual Studio and C++. I have a C++/MFC/SDI application that is about 1/2 finished and so far so good. Ultimately I wish to statically link any required DLL's and distribute a single stand-alone application (without also distributing separate DLL files). I am having trouble with that.
In fact, I can't create a new project (C++/MFC/SDI) skeleton with static linking using the App Wizard that will compile without also setting the /MDd (debug version) option in the Properties/C++/CodeGeneration section. When I do that, it will compile fine, but the resulting executable requires the DLL's. It doesn't seem to make any difference whether the configuration is for a Debug or a Release build, the DLL's are still required.
Is this simply not possible?
I feel that I must be missing something, because I believe that I did something similar several years ago and it worked fine.
Thanks, Stan
|
|
|
|
|
Which version of visual C++?
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Visual Studio 2005
Version 8.0.50727.42
(RTM.050727-4200)
I'm assuming that this is Release To Manufacturing 07/27/05 ?
Could a re-install solve the problem?
Stan
|
|
|
|
|
Is it VS2005 Express, Standard, or Pro?
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
It is the Professional Edition of VS2005.
Stan
|
|
|
|
|
I am making an ActiveX application, in that i need to identify when a user presses enter button. I am doing something like--->
char ch;//the current character being pressed....
/*Some Code*/
if(ch==0x0A || ch==0x0D)
{
///Some Code
}
now the if condition is not being met(0x0A-->Ascii code for Line Feed, 0x0D-->Carriage Return). If i give the value in decimal also, its not working. Any suggestions in this regard...Thanks in advance...
|
|
|
|
|
ch will be 0D, assuming that this code is catching all key presses. Where are you handling the event ?
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
i am doing something like--->
BOOL CHTSL_ScintillaCtrl::OnNotify(WPARAM wParam, LPARAM lParam, LRESULT* pResult)
{
char ch;
SCNotification *scn_notify; //stores notification message...
switch (scn_notify->nmhdr.code)//The event which happened.
{
case SCN_CHARADDED: //if a new character is added.
//Some code which extracts the currently typed character. Working fine..
//value stored in ch.
if(ch==0x0A || ch==0x0D)
{
///Some operations
}
The above if condition is not working for Enter key. All other characters i am able to identify. Is there any other value assigned to NewLine?
|
|
|
|
|
I believe you need to set up a text box to accept the enter key, it generally doesn't.
Christian Graus - C++ MVP
'Why don't we jump on a fad that hasn't already been widely discredited ?' - Dilbert
|
|
|
|
|
I am developing an editor using Scintilla. If i am doing the same thing in VB, by comparing the character with vbCr, it is working fine. Another thing...
If i am doing, (ch== -52), it is detecting the Enter key with that code..I dont understand the logic.
|
|
|
|
|
You can do something like:
BOOL CYourCtrl::PreTranslateMessage(MSG* pMsg)
{
switch (pMsg->message)
{
case WM_KEYDOWN:
switch (pMsg->wParam)
{
case VK_RETURN:
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
cast all values to int and use ( (ch==0x0A) || (ch==0x0D) ) ..it sometimes helps.
Greetings from Germany
|
|
|
|
|
vikram.vit wrote: if(ch==0x0A || ch==0x0D)
Have you put a breakpoint on this line to check the value of ch when the Enter key is pressed? Knowing why the condition is failing will go a long way towards solving the problem.
"Approved Workmen Are Not Ashamed" - 2 Timothy 2:15
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|