+1

And when new hardware comes out, taking advantage of the new architecture is a 
simple matter of updating ARCH() in your C/C++ compile and re-building. You 
probably don't have the appetite to re-work your carefully hand-tuned assembler.

I know whereof I speak. I wrote a commercial product in C++ that successfully 
handled millions of events per second, with CPU utilization that was considered 
satisfactory by customers. Non-trivial events: basically taking an SMF record, 
reformatting a hundred or more fields using a "report writer"* type 
architecture, translating it to UTF-8 (non-trivial) and pushing it out the TCP 
stack.

*By report writer type architecture, I mean it did not work the way you would 
write a hard-coded program, working its way through one SMF record section at a 
time. It went customer-specified-field by customer-specified-field, so for two 
adjacent fields in the same section, it had to decode the relevant triplet 
twice.

Charles


-----Original Message-----
From: IBM Mainframe Discussion List [mailto:[email protected]] On Behalf 
Of Andrew Rowley
Sent: Sunday, July 10, 2022 6:22 PM
To: [email protected]
Subject: Re: NOTSP The Latin of Software Code Is Thriving - The New York Times

On 9/07/2022 1:10 am, Colin Paice wrote:
> I was told
> If it executes
>
>     1. a million times a second - write in assembler
>     2. a thousand times a second write it in cobol or C
>     3. once a second - write it in Java
>     4. Else /bash/rexx/
Probably not an accurate picture these days.

It would have to be a very select piece of assembler to have any 
significant advantage over C / C++. C and C++ have the advantage that 
the compiler doesn't have to produce maintainable or comprehensible 
code, so it can do lots of optimizations, inlining, loop unrolling etc. 
- whatever the compiler writers found produces the fastest code. Of 
course you can do the same in assembler - it is just a question of 
whether it is practicable for larger pieces of code.

Java: that is probably reasonable if you are talking about starting a 
JVM from scratch every time e.g. like a z/OS batch job. If you are 
talking about a routine executed by a running program, I would expect 
Java to be close to C. (Certainly not 3 orders of magnitude different.)

-- 
Andrew Rowley
Black Hill Software

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to