From: Hector Santos on 25 Mar 2010 08:18 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 25 Mar 2010 08:34 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 25 Mar 2010 08:49 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 25 Mar 2010 09:13 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 25 Mar 2010 10:10
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. |