From: Hector Santos on
Joseph M. Newcomer wrote:

>> The #1 exploit hackers look for when overloading an input source
>> looking for the right size that would trigger maybe a:
>>
>> EXCEPTION_CONTINUE_EXECUTION
> ****
> This is a value which tells the stack unwinder what to do, it is itself, not an exception.
> Read about __try/__except to understand what this symbol means.

> ****



Right joe, it is the return value for the RTL exception handler. The
possible return values are:

EXCEPTION_CONTINUE_SEARCH
EXCEPTION_CONTINUE_EXECUTION
EXCEPTION_EXECUTE_HANDLER

The point was that hackers are looking for poorly programmed
applications who rely on TRY/EXCEPT exception and error trapping to
solve their run time problems with the attempt to recover.

I philosophically try to avoid it and try to avoid any library that
forces its usage. I prefer boolean functionality and logic flow over
using exception handling for normal logic flow. All errors MUST be
understood - thats the essence of black box interfacing and getting
high degree of quality assurance.

But when you have application server products where customers can
write their own p-code applications for this operations or allow 3rd
party applications to run, your RTE has to behave like an OS and trap
run time exceptions and try to keep their hosting server running,
producing your own little Dr. Watson report. We have yet to get the
cojoness to do "spy ware" to send reports to our HQ servers like MS
does. :)


--
HLS
From: Joseph M. Newcomer on
See below...
On Wed, 24 Mar 2010 21:44:28 -0500, "Peter Olcott" <NoSpam(a)OCR4Screen.com> wrote:

>
>"Hector Santos" <sant9442(a)nospam.gmail.com> wrote in message
>news:erPYzN8yKHA.1236(a)TK2MSFTNGP06.phx.gbl...
>> Peter once again you are looking into things that really
>> isn't help you in the long run.
>>
>
>Understanding the underlying performance details of memory
>will help me in the immediate term and the long run. Maybe
>this is a Joe question.
***
This is profoundly ridiculous. We already told you how to improve your performance: use
multiple threads. If it runs faster, you don't need to know the underlying performance
details of WHY it runs faster, you only need to know that it runs faster.

As already pointed out, you keep flailing about looking at pointless aspects of what your
hardware does instead of just WRITING THE DAMNED CODE and seeing what it does, which is
what I have been telling you for a week. Instead, you persist in trying to use some
theoretical model to predict what is going to happen, which I have told you is impossible;
even if you knew EVERY SINGLE PARAMETER of the hardware and operating system it would not
let you *predict* anything! What part of "there is no closed-form analytic solution" did
you fail to understand?

You've finally run an experiment and discovered WE WERE RIGHT ALL ALONG. There's a reason
we were right. We've been doing this a long time, and we KNOW what is likely to work and
not work. You asked for advice, which you proceeded to ignore, telling us we didn't have
a good theoretical model you could use, and we knew that this was a silly idea from the
start. And told you so, in exquisite detail, which you also ignored. You failed to pay
attention to the most elementary advice that would improve multiprocess performance
(shared data segment via memory-mapped file); instead telling us that it wouldn't work (we
know it will! And you insist that it cannot, for all the wrong reasons, which we also
recognize as you being persistently clueless). You make completely nonsensical
statements, and after we painstakingly correct your failed technical language, you come
back and make the same absurd statements again, proving you have not acknowledged the fact
that you are saying things that make no sense or even that you learned ANYTHING from our
discussions. "Turning off VM" is perhaps the single most absurd statement I have heard
anyone EVER make about running Windows, EVEN AFTER WE EXPLAINED THAT THIS IS NONSENSICAL.

You really have to start paying attention here. Or you are going to find yourself in
every MVP's "kill immediately" list. I've been sorely tempted.
****
>
>> You are looking at how the MACHINE performs when you FIRST
>> really need to see how your program is designed to run
>> under WINDOWS with virtual I/O and memory multi-threaded
>> considerations.
>
>Nope, not that. I am looking into how the essential process
>will run across varied machine platforms and architectures.
>To do this I must know the commonalities and variances.
***
No, you have not done the critical experiment: running it with N threads on an N-core
multiprocessor. This is the ONLY test that is meaningful. The rest of this is just
foolishness.
****
>
>>
>> If you are not going to explore your loading needs using
>> the threaded model even using the updated version of YOUR
>> CODE with the threading logic added to it, then thats it
>> for me here.
>>
>
>I have already addressed that issue. If four processes can
>run at essentially the same speed as one process, then there
>is no need to look at four threads. That would be redundant
>wouldn't it?
***
No, and I'm sorry to say that if you don't undertstand why, you are demonstrating more
cluelessness. It is very sad to see someone who is so obtuse. To the rest of us, it is
screamingly obvious why your experiments are flawed beyond redemption and are producing
nothing meaningful; and while we keep telling you why you are wrong, you stick your
fingers in your ears and go "Nyah, nyah, I'm not listening!" which we find seriously
annoying.
joe
****
>>
>> --
>> 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: Joseph M. Newcomer on
See below...
On Wed, 24 Mar 2010 22:27:33 -0500, "Peter Olcott" <NoSpam(a)OCR4Screen.com> wrote:
>
>Why is the RAM performance so much less than its capability
>when the loop below was intentionally made to stress test
>RAM performance?
****
I would not even ask this question, because it has nothing to do with getting an answer
about how to improve my performance! What would tell me about performance improvement
would be meaningful experiments on my actual code. If it ran faster, I win. If it
doesn't, I know that is not a valid approach.

I don't even know what 12MB/sec memory bandwidth means! Does that include cache
performance or not? You are quoting a meaningless number as if it is some Word of the
Deity of Hardware. It could be something as simple as bus width x memory speed, or
something-I-don't-know-what-else, and you take this as if it had meaning. Unless you know
the EXACT CODE and what it was measuring, it is meaningless to quote a figure like this.

Why don't you understand the most elementary aspects of scientific experimentation? This
is taught in sophomore physics! I even gave you rules for doing good measurment, one of
which is to know what you are measuring, and know if your tool is measuring what you think
it is measuring. You quote some silly number and don't even know how it is obtained or
what it actually means.

If I were reading this as a homework assignment, I'd assign an "F" grade and go to the
next student, because it is so completely absurd. I think it is a horrid fascination of
seeing how absurd this can get that keeps me reading your posts. I would have failed this
days ago in a real situation. If you worked for me, I'd suggest polishing your resume

You are going about this in the WORST POSSIBLE WAY, failing to conduct meaningful
experiments and failing to learn anything from the experienced senior people.

This is not a Receipe for Success.
joe

>
>I read the rest and its already been addressed.
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:

>> But in the today's world of super fast machines and bloated windows,
>> higher dependency on dlls, proxies and p-code RTL, and high code
>> generated sizes, the code vs speed ideas is, IMO, a thing of the past.
> ****
> "Code bloat" is one of those terms used by people who haven't written large systems.
> Generally, that code is there for a reason, and I've never encountered the idea that
> p-code (or MSIL) contributes to "code bloat" since it is far more compact than x86 machine
> code, and the JIT compiler compiles it into code that is really pretty good.
> ****
>> Cases in point:
>>
>> 1) .NET, reusability, higher stack overhead, but faster machines makes
>> it all feasible.
> ****
> Can you explain what "higher stack overhead" means, really? And why .NET has it and other
> code (such as C++) doesn't?
> ****


The point was you could not do this feasibly with efficacy without the
power of faster multi-core/processor machines and better caching
technology, larger cheaper storage devices, etc and you can do program
and develop at the higher layer much more feasibly with a 'perception'
that speed is not lost.

But in principle, you have overhead when you introduce or implement
middle-ware, proxy frameworks. .Net is very similar to our 14 years
old award winning Application Server framework, it has the name sake
of "Net Server"

Wildcat Interactive Net Server - WINSERVER

The "Wildcat.NET" SDK/API while it designed to appear to be a straight
forward WIN32 API, its internals is all RPC.

Our Wildcat! Basic p-code language is a layer above the SDK, most of
it isn intrinsic with p-code translations and other apis are
intrinsically imported. Some of the API language functions syntax
is extended to accommodate OOPS or VARIANT like programming needs, and
this is done even using more proxies or interfaces, etc.

One thing that concerns me, is that this centralization requires
ethical engineering because now, it opens the door to spying and
monitoring. ALl you need to do is load your EXE, even its not
programmed for .NET, under DEPENDS and WATCH all all the DLLs loaded
by Windows and all the optional hooks it looks for.

We have YET to hear this be known as fact, but in my mind, ONE day, if
not already, Microsoft will MONITOR every application thru their
centralized loading system, in fact, Microsoft, because APPLE opened
up the door here to the public, has followed SUIT with .NET for
mobiles. APPLE does NOT allow you to bypass its RTE. Microsoft has
now done the same.

I can touch base because we have always had the power to do the same
thing with Wildcat! But at this point, its mostly for debugging to
see track and monitor the APIes being used, what applications are
running etc.

Here is a quick snapshot of a finger dump of our context at our server
right now:

v:\wc5beta>finger contexts(a)ntbbs

[ntbbs]
Cid# Node Type Time Idle Calls Computer Program User
----- ---- -------- ----- ----- -------- -------- ------------ ----
2 0 None 312:39 312:39 774 NTBBS wcOnline None
6 0 None 312:39 00:00 164k NTBBS wcOnline System
7 0 None 312:39 01:14 26k NTBBS wcOnline System
9 0 None 312:39 00:00 2519k NTBBS wcmail System
10 0 None 312:39 00:02 256k NTBBS wcsmtp System
11 0 None 312:39 00:00 8959k NTBBS wclistserve System
12 0 None 312:39 312:39 13 NTBBS wcnntpServer System
19113 0 None 143:41 143:41 214 UPDATE wconline None
19116 0 None 143:41 143:41 3 UPDATE wconline None
19118 0 None 143:41 02:17 492 UPDATE wconline System
35422 0 None 01:21 01:09 913 NTBBS wcsmtp None
35597 4 HTTP 00:01 00:00 3182 NTBBS wcOnline DAVE GOURD
35602 5 HTTP 00:00 00:00 267 NTBBS wcOnline HECTOR
SANTOS

v:\wc5beta>finger channels(a)ntbbs

[ntbbs]
All Channels Count: 7

Channel Members Name
------- ------- -----------------------------------------
1 0 [System.Control] (Protected)
16469 1 [System.Control.4]
cid: 35597 (wcOnline) CallType: HTTP
16474 1 [System.Control.5]
cid: 35602 (wcOnline) CallType: HTTP
3 5 [System.Control.Server] (Protected)
cid: 2 (wcOnline) CallType: None
cid: 9 (wcmail) CallType: None
cid: 10 (wcsmtp) CallType: None
cid: 12 (wcnntpServer) CallType: None
cid: 19113 (wconline) CallType: None
4 6 [System.Event] (Protected)
cid: 2 (wcOnline) CallType: None
cid: 6 (wcOnline) CallType: None
cid: 9 (wcmail) CallType: None
cid: 10 (wcsmtp) CallType: None
cid: 19113 (wconline) CallType: None
cid: 19118 (wconline) CallType: None
5 2 [System.MailServer]
cid: 9 (wcmail) CallType: None
cid: 10 (wcsmtp) CallType: None
2 2 [System.Page] (Protected)
cid: 35597 (wcOnline) CallType: HTTP
cid: 35602 (wcOnline) CallType: HTTP


The operator can hook into any connection and MONITOR (see the
display) any USER connection with our WCVIEW.EXE tool. Very sensitive
stuff.

All that has overhead joe, specially when the monitor is activated
because it has to hook into one of the System.XXXXX channels above.

Finally to get a feel of what we have with all the middle ware and
where we are going, look at this illustration:

http://www.winserver.com/public/vimg.wct?src=wcrpcnet7.png

You can only do this today because of the advancement of hardware and
speeds to deal with all the overhead in virtual interfacing.

--
HLS
From: Peter Olcott on
That was a stupid mistake on my part to not catch an
uninitialized variable.

Sometimes people do make stupid mistakes.

"Goran" <goran.pusic(a)gmail.com> wrote in message
news:da7b2a0f-53b0-4f8e-96f5-4296a40ba4c4(a)q23g2000yqd.googlegroups.com...
On Mar 24, 11:45 pm, Hector Santos
<sant9...(a)nospam.gmail.com> wrote:
> Peter Olcott wrote:
> > void Process() {
> > clock_t finish;
> > clock_t start = clock();
> > double duration;
> > uint32 num;
> > for (uint32 N = 0; N < Max; N++)
> > num = Data[num];
> > finish = clock();
> > duration = (double)(finish - start) / CLOCKS_PER_SEC;
> > printf("%4.2f Seconds\n", duration);
> > }
>
> All I can see is that you have an uninitialized num
> variable. When
> not initialized it can be an random number including one
> that exceeds Max.
>
> So initialize it:
>
> uint32 num = 0;
> for (uint32 N = 0; N < Max; N++)
> num = Data[num];
>
> and see if that solved it for you.

I honestly think that everyone should just ignore this
Olcott guy. The
amount of incompetence he is showing is staggering (as shown
by you up
here - AGAIN), and yet, he acts like he knows something all
the time.

The guy is amazing! (Or, as someone said before "everything
is
limited, except ignorance" - or something like that).

Goran.