From: Peter Olcott on

"Joseph M. Newcomer" <newcomer(a)flounder.com> wrote in
message news:4u0gq5t7htjkq7paen7d8hvf8nl6pm82f8(a)4ax.com...
> See below...
> On Mon, 22 Mar 2010 16:27:48 -0500, "Peter Olcott"
> <NoSpam(a)OCR4Screen.com> wrote:
>
>>
>>"Pete Delgado" <Peter.Delgado(a)NoSpam.com> wrote in message
>>news:OIehRQgyKHA.4752(a)TK2MSFTNGP04.phx.gbl...
>>>
>>> "Peter Olcott" <NoSpam(a)OCR4Screen.com> wrote in message
>>> news:osWdnaGZ3q06RTrWnZ2dnUVZ_uudnZ2d(a)giganews.com...
>>>>
>>>> "Joseph M. Newcomer" <newcomer(a)flounder.com> wrote in
>>>> message
>>>> news:ecdfq5lb57qrou47d1ppaupsi6t2guu7nv(a)4ax.com...
>>>>> ****
>>>>> He has NO CLUE as to what a "memory-mapped file"
>>>>> actually is. This last comment indicates
>>>>
>>>> http://en.wikipedia.org/wiki/Memory-mapped_file
>>>> Apparently I do.
>>>
>>> I think you would be far better served by looking at
>>> Windows specific information on memory mapped files such
>>> as that which Joe suggested to you some time ago:
>>> Richter's Programming Applications for Microsoft Windows
>>> 4th.
>>>
>>> -Pete
>>>
>>>
>>
>>Joe kept insisting and continues to insist that my data is
>>not resident in memory.
> ***
> I do not recall asserting that; I pointed out that Windows
> pre-outpages unused pages and
> marks the slots for reuse, but that is not what you claim
> I stated.
> ****
>>
>>After loading my data and waiting twelve hours the process
>>monitor reports zero page faults, when I execute my
>>process
>>and run it to completion.
> ***
> That is useful data, but has nothing to do with the
> multithreading question. IT only
> demonstrates that a tiny number of pages had been moved
> out (my recollection is you said 5
> page faults, not zero).
>
> ****
>>
>>How does this not prove Joe is wrong (At least in the
>>specific instance of one execution of my process)?
>>(1) The process monitor is lying.
>>(2) Page faults do not measure virtual memory usage.
>>
> ****
> It says nothing about one execution; it says that under
> certain conditions, paging is not
> an issue. It does not say anything about using multiple
> threads on multiple cores within
> a single process.

This is the earlier issue where you claimed that my thinking
that I needed to have my data resident in RAM was absurd and
based on ignorance. I do need to have my data resident in
RAM and indeed my data is resident in RAM for extended
periods, and there is no ignorance associated with this
thinking.

>
> You seem to think it does.
> joe
> ****
> Joseph M. Newcomer [MVP]
> email: newcomer(a)flounder.com
> Web: http://www.flounder.com
> MVP Tips: http://www.flounder.com/mvp_tips.htm


From: Hector Santos on
Peter Olcott wrote:

> "Hector Santos" <sant9442(a)nospam.gmail.com> wrote in message
> news:exGTQtgyKHA.3884(a)TK2MSFTNGP06.phx.gbl...
>> Peter Olcott wrote:


>> No. If its zero or not changing and I know your process is
>> not, it means that your process working set is not
>> demanding more than it can handle or OTHER processes have
>> not chewed up memory, limiting your available memory.
>
> OK so zero page faults does not mean that virtual memory is
> not being used?
> (1) YES zero page faults means that virtual memory is not
> active on this process
> (2) Not (YES zero page faults means that virtual memory is
> not active on this process)
>
> Which is it (1) or (2) ??? Any hem hawing will be taken
> as intentional deceit


None of the above:

Your process AT THAT MOMENT does not need PAGE anything because
it was already in your WORKING SET.

Look, YOU SIMPLE PROGRAM IS ALWAYS USING VIRTUALIZE MEMORY! ALWAYS!

Please answer these questions:


Did you try the memory load program?


// File: V:\bin\memload.cpp

#include <stdio.h>
#include <windows.h>

void main(char argc, char *argv[])
{
MEMORYSTATUS ms;
ms.dwLength = sizeof(ms);
GlobalMemoryStatus(&ms);
printf("Memory Load: %d%%",ms.dwMemoryLoad);
}

Did you compile your application to use 64BIT? Did you convert all
your 32 BIT variables to 64BIT?

Did you read the expert Mark R?

Pushing the Limits of Windows: Physical Memory
http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx

Pushing the Limits of Windows: Virtual Memory
http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx

Pushing the Limits of Windows: Paged and Nonpaged Pool
http://blogs.technet.com/markrussinovich/archive/2009/03/26/3211216.aspx

--
HLS
From: Hector Santos on
Peter Olcott wrote:

>> And I suggested waaaaaaaay back in the beginning of this
>> thread. :) I even gave him a link for a sweet
>> CMemoryMapFile class at MSDN!
>
> I have proven that this is moot, and this proof continues to
> be ignored.


What proof? You provided no proof of anything whatsoever, not even
the existence of your OCR program.

--
HLS
From: Joseph M. Newcomer on
See below...
On Mon, 22 Mar 2010 18:46:24 -0500, "Peter Olcott" <NoSpam(a)OCR4Screen.com> wrote:

>
>"Hector Santos" <sant9442(a)nospam.gmail.com> wrote in message
>news:exGTQtgyKHA.3884(a)TK2MSFTNGP06.phx.gbl...
>> Peter Olcott wrote:
>>
>>> You tell me all about pages faults, yet the process
>>> monitor
>>> reports zero page faults, and you continue to claim that
>>> its
>>> all about page faults, and virtual memory.
>>
>>
>> Its not a claim - its a fact.
>>
>>> Pages faults indicate victual memory usage right?
>>
>>
>> It shows when your PROCESS is asking too much the can
>> provide to you all in memory - it has to virtualize it.
>>
>>> A lack of page faults indicates a lack of virtual memory
>>> usage right?
>>
>>
>> No. If its zero or not changing and I know your process is
>> not, it means that your process working set is not
>> demanding more than it can handle or OTHER processes have
>> not chewed up memory, limiting your available memory.
>
>OK so zero page faults does not mean that virtual memory is
>not being used?
***
OF COURSE virtiual memory is being used; there is NO OTHER KIND OF MEMORY for a process.
What it means is that all of the virtual memory has remained resident, something that
before you published this results was not something that was demonstrable. You have
demonstrated that it is not being paged out and the pages reused, at least under your test
scenario.
***
>(1) YES zero page faults means that virtual memory is not
>active on this process
****
But given that there is only virtual memory, you cannot assert that zero page faults mean
it is not being used, only that the virtual pages have remained in memory, a useful piece
of knowledge. And if you had a clue about memory-mapped files, this would tell you that
using a named, shared segment would improver performance of multiple processes using MMF
to get the data in, and it might also mean you wouldn't see the several-minute startup
transient. You certainly wouldn't see it on the second or higher processes.

Perhaps you can explain whay you man by "virtual memory is not active". Alas, for your
way of forming the question, virtual memory is ALWAYS active, and that implies the
potential for TLB thrashing. Do you know what a TLB is, the role it serves, and how it is
managed? Of what TLB thrashing might be? To simplify the task, I will tell you that TLB
stands for Translation Lookaside Buffer. The rest is up to you. If you didn't know what
at TLB is when you asked the question, it proves that you had no clue about why the
question as stated is nonsense.
****
>(2) Not (YES zero page faults means that virtual memory is
>not active on this process)
****
Virtual memory HAS To be "active" because there isn't any other kind of memory available
to a process. This is inherent in every operating system.
****
>
>Which is it (1) or (2) ??? Any hem hawing will be taken
>as intentional deceit
****
THe question is ill-formed because the terms are being used incorrectly and in some cases
in ways that suggest that the answer could be "there is no virtual memory being used"
which is a nonsensical statement. There is ONLY virtual memory being used, it just
happens that it is not paged out or the pageouts retain their in-memory images so any page
faults are "soft" (meaning the data does not have to be read off the disk, because it can
be found already in memory, in an un-reused page).

You can't hem or haw an ill-formed question, whether the goal is or is not to be
deceitful. he question makes no sense as stated and the two alternative answers are both
nonsensical. It is almost but not quite as bad as the "have you stopped beating your
wife?" style questions, for which any answer that is "yes" or "no" is damning. So I will
state that the question is ill-formed and the two options presented as answers are
nonsensical, and that is the complete TRUTH. There is no reason to be deceitful here, you
asked a question for which the correct answer is:

"This demonstrates that Windows retains pages in memory when there is no need to page them
out and reuse the page frames" and that is the ONLY truthful and correct answer.

Unfortunately, it is not either of the nonsensical alteratives you allow. if you don't
undetstand why the question is nonsensical as stated and both alternative answers are
nonsensical, you are demonstrating that you really, truly are clueless about how operating
systems work.
****
>
>>
>> You have NO control over this UNLESS you explicitly told
>> windows to use NO-CACHING, NO BUFFER I/O memory.
>>
>> Why do you refuse to believe this? Every Windows
>> programmer has to know this to some degree.
>>
>>> How does this not prove that my data is in memory and
>>> thus you are wrong when you say that my data is not
>>> resident in memory?
>>
>>
>> It doesn't.
>>
>> Allow a Technical Fellow Engineer at Microsoft explain it
>> all to you:
>>
>> Pushing the Limits of Windows: Physical Memory
>> http://blogs.technet.com/markrussinovich/archive/2008/07/21/3092070.aspx
>>
>> Pushing the Limits of Windows: Virtual Memory
>> http://blogs.technet.com/markrussinovich/archive/2008/11/17/3155406.aspx
>>
>> Pushing the Limits of Windows: Paged and Nonpaged Pool
>> http://blogs.technet.com/markrussinovich/archive/2009/03/26/3211216.aspx
>>
>> Are you going to argue with Mark too?
>>
>> --
>> HLS
>
Joseph M. Newcomer [MVP]
email: newcomer(a)flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
From: Hector Santos on
Joseph M. Newcomer wrote:

> See below...
> On Mon, 22 Mar 2010 16:27:48 -0500, "Peter Olcott" <NoSpam(a)OCR4Screen.com> wrote:
>
>> "Pete Delgado" <Peter.Delgado(a)NoSpam.com> wrote in message
>> news:OIehRQgyKHA.4752(a)TK2MSFTNGP04.phx.gbl...
>>> "Peter Olcott" <NoSpam(a)OCR4Screen.com> wrote in message
>>> news:osWdnaGZ3q06RTrWnZ2dnUVZ_uudnZ2d(a)giganews.com...
>>>> "Joseph M. Newcomer" <newcomer(a)flounder.com> wrote in
>>>> message
>>>> news:ecdfq5lb57qrou47d1ppaupsi6t2guu7nv(a)4ax.com...
>>>>> ****
>>>>> He has NO CLUE as to what a "memory-mapped file"
>>>>> actually is. This last comment indicates
>>>> http://en.wikipedia.org/wiki/Memory-mapped_file
>>>> Apparently I do.
>>> I think you would be far better served by looking at
>>> Windows specific information on memory mapped files such
>>> as that which Joe suggested to you some time ago:
>>> Richter's Programming Applications for Microsoft Windows
>>> 4th.
>>>
>>> -Pete
>>>
>>>
>> Joe kept insisting and continues to insist that my data is
>> not resident in memory.
> ***
> I do not recall asserting that; I pointed out that Windows pre-outpages unused pages and
> marks the slots for reuse, but that is not what you claim I stated.
> ****
>> After loading my data and waiting twelve hours the process
>> monitor reports zero page faults, when I execute my process
>> and run it to completion.
> ***
> That is useful data, but has nothing to do with the multithreading question. IT only
> demonstrates that a tiny number of pages had been moved out (my recollection is you said 5
> page faults, not zero).
>
> ****
>> How does this not prove Joe is wrong (At least in the
>> specific instance of one execution of my process)?
>> (1) The process monitor is lying.
>> (2) Page faults do not measure virtual memory usage.
>>
> ****
> It says nothing about one execution; it says that under certain conditions, paging is not
> an issue. It does not say anything about using multiple threads on multiple cores within
> a single process.
>
> You seem to think it does.
> joe


Joe, he changes his statements to suit whatever it is he is trying to
prove but can not. I honestly don't think he knows anything Microsoft
C/C++, MFC, WIN32 and what he has a OCR compiled code was probably
taken from open source and it COMPILED the first time. He has not
product, no demo, nothing to show he has anything and even if he does
have software copied from a DFA C example code book, he doesn't know
anything about optimizing it.

All he knows he need 4GB and thought that getting 8GB would be good
enough to run at least two instances each with redundant 4GB memory
allocations with no lost in speed.

But he is finding out otherwise, that is how all this started.

So he is wondering and found out the Lx Chip caching didn't help. He
concluded that he has an special patented OCR application that
exhausted the physical capabilities of the computer, so special, its
only possible to run once.

Yet, he refuses, and I can only presume its because he doesn't know
how, to explore the simulator and doesn't grasp any of the technical
writeups and links provided regarding virtual memory and multi-threads
operations.

It defies logic.

--
HLS