For Programmers: Free Programming Magazines  


Home > Archive > Cobol > September 2007 > Re: COBOL "non-myth" confirmed - Index and subscripts (MF on Windows)









You are viewing an archived Text-only version of the thread. To view this thread in it's original format and/or if you want to reply to this thread please [click here]

 

Pages:
Pages: 1 [2]
Author Re: COBOL "non-myth" confirmed - Index and subscripts (MF on Windows)

2007-09-26, 7:55 am

In article <5lu49rFa5hnvU1@mid.individual.net>,
Pete Dashwood <dashwood@removethis.enternet.co.nz> wrote:

[snip]

>A few days ago I
>was running a test on a P4 notebook that had to create a couple of million
>rows on an ACCESS database.


Why, Mr Dashwood... how interesting! Keep at it, you'll be up to sixty
million and change in no time!

DD
Judson McClendon

2007-09-26, 7:55 am

"Pete Dashwood" <dashwood@removethis.enternet.co.nz> wrote:
>
> It is things like this that make me wonder why we even bother about performance and have heated discussions about things like
> indexes and subscripts, when the technology is advancing rapidly enough to simply
> take care of it.


Consider this. If Microsoft had put performance at a premium, Windows
would boot in 1 second, you could start any Office application and it
would be ready for input in the blink of an eye, and your Access test would
have run in a few seconds. How many thousand man-years have been spent
cumulatively all over the planet waiting on these things? :-)
--
Judson McClendon judmc@sunvaley0.com (remove zero)
Sun Valley Systems http://sunvaley.com
"For God so loved the world that He gave His only begotten Son, that
whoever believes in Him should not perish but have everlasting life."


Roger While

2007-09-26, 7:55 am

I really, really tried to keep away from this subject but ...
One of the problems with the speed2 prog is the
attempt to deduce the perform cost.
Now OC produces exactly the C code that reflects
the statements eg.
/* speed2.cob:63: PERFORM */
{
for (n0 = ((int)COB_BSWAP_32(*(int *)(b_18 + 30))); n0 > 0; n0--)
{
{
/* speed2.cob:64: EXIT */
{
goto l_5;
}
}

/* EXIT PERFORM CYCLE 5: */
l_5:;
}
}

BUT gcc (in current versions) is far more
clever and deletes the whole thing :-)

Revised test prog -
(This should be compatible with most compilers)

identification division.
program-id. speed5.
data division.
working-storage section.
01 comp5-number comp-5 pic s9(09).
01 s-subscript binary pic s9(09).
01 repeat-factor value 900000000 comp-5 pic s9(09).
01 test-byte pic x(01).

01 misaligned-area.
05 array-element occurs 4096 indexed x-index.
10 misaligned-number comp-5 pic s9(09).
10 to-cause-misalignment pic x(01).
05 byte-element occurs 4096 indexed x-index-1 pic x.

procedure division.

initialize misaligned-area

display "Start prog " function current-date
set x-index to 1000
display "Index start " function current-date
perform repeat-factor times
if x-index = 1000
set x-index up by 1
else
set x-index down by 1
end-if
move array-element (x-index) to test-byte
end-perform
display "Index end " function current-date

move 1000 to s-subscript
display "COMP start " function current-date
perform repeat-factor times
if s-subscript = 1000
add 1 to s-subscript
else
subtract 1 from s-subscript
end-if
move array-element (s-subscript) to test-byte
end-perform
display "COMP end " function current-date

move 1000 to comp5-number
display "COMP-5 start " function current-date
perform repeat-factor times
if comp5-number = 1000
add 1 to comp5-number
else
subtract 1 from comp5-number
end-if
move array-element (comp5-number) to test-byte
end-perform
display "COMP-5 end " function current-date

set x-index-1 to 1000
display "Index start " function current-date
perform repeat-factor times
if x-index-1 = 1000
set x-index-1 up by 1
else
set x-index-1 down by 1
end-if
move byte-element (x-index-1) to test-byte
end-perform
display "Index end " function current-date

move 1000 to s-subscript
display "COMP start " function current-date
perform repeat-factor times
if s-subscript = 1000
add 1 to s-subscript
else
subtract 1 from s-subscript
end-if
move byte-element (s-subscript) to test-byte
end-perform
display "COMP end " function current-date

move 1000 to comp5-number
display "COMP-5 start " function current-date
perform repeat-factor times
if comp5-number = 1000
add 1 to comp5-number
else
subtract 1 from comp5-number
end-if
move byte-element (comp5-number) to test-byte
end-perform
display "COMP-5 end " function current-date

stop run.

Note that the repeat count is pushed up, otherwise the results are
statistically meaningless.Tests repeated 5 times with +- 1/100 second
difference.

Results from Linux boxen (in single-user mode)
(As all benchmarks should be done on 'nix systems)
(32 bit is P4 prescott with 3.2GhZ)
(64 bit is P4

MF SE 2.2 (Linux x86 32 bit)
cob -u -O -C notrunc -C sourceformat=free speed5.cob
cobrun speed5
Start prog 2007092612363397+0200
Index start 2007092612363397+0200
Index end 2007092612363681+0200
COMP start 2007092612363681+0200
COMP end 2007092612364047+0200
COMP-5 start 2007092612364047+0200
COMP-5 end 2007092612364361+0200
Index start 2007092612364361+0200
Index end 2007092612364672+0200
COMP start 2007092612364672+0200
COMP end 2007092612365034+0200
COMP-5 start 2007092612365034+0200
COMP-5 end 2007092612365357+0200

OC 0.33 current -
cobc -x -O2 -std=mf -free speed5.cob
../speed5
Start prog 2007092612311407+0200
Index start 2007092612311407+0200
Index end 2007092612311690+0200
COMP start 2007092612311690+0200
COMP end 2007092612312044+0200
COMP-5 start 2007092612312044+0200
COMP-5 end 2007092612312326+0200
Index start 2007092612312326+0200
Index end 2007092612312609+0200
COMP start 2007092612312609+0200
COMP end 2007092612312963+0200
COMP-5 start 2007092612312963+0200
COMP-5 end 2007092612313246+0200

OC 0.33 current on Linux x86_64 (64 bit)
cobc -x -O2 -std=mf -free speed5.cob
../speed5
Start prog 2007092612285455+0200
Index start 2007092612285455+0200
Index end 2007092612285602+0200
COMP start 2007092612285602+0200
COMP end 2007092612285855+0200
COMP-5 start 2007092612285855+0200
COMP-5 end 2007092612290004+0200
Index start 2007092612290004+0200
Index end 2007092612290135+0200
COMP start 2007092612290135+0200
COMP end 2007092612290366+0200
COMP-5 start 2007092612290366+0200
COMP-5 end 2007092612290497+0200

Now as to what has all been said in this thread, then I have the
following comments -
COMP (aka BINARY) is stored as big-endian by all
compilers these days.
Therefore there is a penalty on little-endian machines
(or better the OS/firmware for eg. bi-endian) to
byte-swap, operate and re-byteswap results.
This, of course, affects eg. x86(_64).
However, see below

Alignment -
There are in fact not that many alignment tolerant machines there.
Intel x86(_64) and Power PC are known. (The Itanium is not)
This means that any reference to a COMP/COMP-5 item must
be moved to an intermediate area unless it can be proved at compile
time that it is appropiately aligned. (eg. at 01 level)

So we have to look at a bisection of the above two attributes.
Generally speaking, for performance, (other than INDEX)
one should use COMP-5 (aka BINARY-LONG SIGNED/UNSIGNED)
for subscripts/counters etc. and define them at the 01 level.

Not only that, a particular compiler implementation has it's
own INDEX definition which is somewhat difficult to ascertain.
(And which is not necessarily a C-5 item)

Roger



Pete Dashwood

2007-09-26, 6:55 pm



"Arnold Trembley" <arnold.trembley@worldnet.att.net> wrote in message
news:zjmKi.137851$ax1.11998@bgtnsc05-news.ops.worldnet.att.net...
> Pete Dashwood wrote:
>
> Here are the results of "Speed2" using a 2.60 GHz Pentium 4 with 512 MB of
> main memory, running under Windows XP with SP2 applied, using Robert's
> code with EXIT PERFORM CYCLE commented out, compiled with a 1990 education
> version of Realia COBOL (equivalent to Realia 3):
>
> Null test 5
> Index 2
> Subscript 8
> Subscript comp-5 8
> Index 1 2
> Subscript 1 7
> Subscript 1 comp-5 7


That is SOOO !

Obviously, generated code makes all the difference. Here's code from 2
compilers running in the same OS Environment, yet look at the figures for
subscripts; the P4 creams the Core 2, although the Core 2 is theoretically
faster. In fact, the P4 is faster on everything except the null test :-) And
both systems are way faster than IBM mainframes. (That still hasn't quite
sunk in yet; after working on mainframes for decades it is hard for me to
realize that a notebook costing < .01% of what a mainframe costs, could be
orders of magnitude faster...)

Again, to me at least, this just completely confirms that it is not possible
to make meaningful statements about performance unless you run actual tests.

Pete.
--
"I used to write COBOL...now I can do anything."


Charles Hottel

2007-09-26, 6:55 pm


"Pete Dashwood" <dashwood@removethis.enternet.co.nz> wrote in message
news:5lu49rFa5hnvU1@mid.individual.net...
>
>
> "Robert" <no@e.mail> wrote in message
> news:uq8jf3pd3rq48eqio0hdtqo172nv2c16is@
4ax.com...
>
> Well, Robert, I don't want to shake your confidence, and I deliberately
> refrained from posting these results (I felt you were getting enough
> flak...), but reconsidered when I saw your statement above :-)
>
> Here are the results of "Speed2" from a genuine Intel Celeron Core 2 Duo
> Vaio AR250G notebook with 2 GB of main memory, running under Windows XP
> with SP2 applied, using your code (with the following amendments: all
> asterisks and comments removed, exit perform cycle removed), compiled with
> no options other than the defaults (which includes "Optimize"), with the
> Fujitsu NetCOBOL version 6 compiler, compiled to .EXE:
>
> Null test 1
> Index 3
> Subscript 25
> Subscript comp-5 3
> Index 1 3
> Subscript 1 22
> Subscript 1 comp-5 3
>
> As you can see, indexing is between 7 and 8 times more efficient than
> subscripting, unless you use optimized subscripts, in this environment.
>
> (I was surprised that the figures are 3 times faster than the z/OS
> mainframe figures posted by Charlie...:-)


<snip>

I was in somewhat of a hurry when I converted Roberts program to use my
mainframe timer routine. Looking at the TIMER-OFF:

TIMER-OFF.
PERFORM READ-THE-TIME
COMPUTE ELAPSED-TIME ROUNDED =
((TIME-NOW - TIME-START) - TIMER-OVERHEAD) /1000000

IF ELAPSED-TIME NOT GREATER THAN ZERO
MOVE 'ERROR' TO ELAPSED-TIME-DISPLAY
ELSE
COMPUTE ELAPSED-TIME-EDITED ROUNDED = ELAPSED-TIME * 10
END-IF
DISPLAY TEST-NAME ELAPSED-TIME-DISPLAY

My timing routine computes the time in microseconds since the task started.

The ELAPSED-TIME-EDITED is ELAPSED-TIME multiplied by 10, so I think all of
the times I published may be 10 times higher than the actual elasped time. I
am somewhat skeptical of measuring actual times on a mainframe without
repeating the tests six to ten times and computing an average, variance
and/or standard deviation. I did not spend much time thinking about whether
to remove that COMPUTE because to me it was the relative speeds that were
important. Also I did not analyze Roberts timing method or the rationale for
this COMPUTE because my past experience using his timing method showed it
was grossly inaccurate on a mainframe (the task gets swapped out, put into a
wait state, but the time of day clock keeps on ticking). Sorry I guess I was
lazy, and my only excuse is that I am still far from being 100% of my old
self lately.
Charles Hottel

2007-09-26, 6:55 pm


"Judson McClendon" <judmc@sunvaley0.com> wrote in message
news:KlrKi.80086$Lu.64000@bignews8.bellsouth.net...
> "Pete Dashwood" <dashwood@removethis.enternet.co.nz> wrote:
>
> Consider this. If Microsoft had put performance at a premium, Windows
> would boot in 1 second, you could start any Office application and it
> would be ready for input in the blink of an eye, and your Access test
> would
> have run in a few seconds. How many thousand man-years have been spent
> cumulatively all over the planet waiting on these things? :-)
> --
> Judson McClendon judmc@sunvaley0.com (remove zero)
> Sun Valley Systems http://sunvaley.com
> "For God so loved the world that He gave His only begotten Son, that
> whoever believes in Him should not perish but have everlasting life."
>


I always play a game of free cell while waiting for everything to start.
Norton anti-virus is particularly slow.


Pete Dashwood

2007-09-26, 6:55 pm



<docdwarf@panix.com> wrote in message news:fdd9bf$pps$1@reader1.panix.com...
> In article <5lu49rFa5hnvU1@mid.individual.net>,
> Pete Dashwood <dashwood@removethis.enternet.co.nz> wrote:
>
> [snip]
>
>
> Why, Mr Dashwood... how interesting! Keep at it, you'll be up to sixty
> million and change in no time!


Yes, that thought occurred to me at the time :-)

As soon as I get a chance I'll try doing it with a Query Expression in C#
instead of SQL... that should be very interesting as it will allow both of
the processors on my machine to run in parallel...

It wrote the millions of rows due to an oversight on my part. <blushes and
shuffles feet>

I wrote a tool that analyses COBOL source code for VSAM/ KSDS and ISAM data
sets (The SELECTS and the FD/01s) and generates corresponding tables on a
Relational Database. Because Repeating Groups (OCCURS) must be removed as
part of normalization, my tool creates a separate table when it encounters
an OCCURS in the source code, and links it back to the base table with a
Referential Integrity constraint. (There's much more to it than that, it
handles multi level tables and REDEFINES as well, but you get the general
idea...) Having done this, it then generates Host Variables (DECLGEN) for
the new DB structure and also generates a Load Module in COBOL (using
embedded SQL and the Host Variables) that can read the ISAM file and load
the new database tables.

I had a situation where the source definition had a table embedded in a
record definition, with an OCCURS 99.

At load time the generated load module created a base row then attached 99
linked rows on an attached table to it. I didn't realise the test data I
had been given (ISAM file) had around 20,000 records on it :-). Of course,
most of the rows were empty and it was very simple to run an SQL query that
dropped them. It isn't so simple to generate a check for empty rows into the
Load Module, because a table may comprise any number of different fields of
different types and lengths. (There are around 200 ISAM files in the
existing system and many of them have multiple OCCURS clauses in them, and
some are multi-level tables.)

I thought about several approaches and opted for one that is relatively easy
to generate into the Load Module source. I tested it today and it worked
properly with no empty rows loaded. (The total was around 70,000 rows; big
difference :-)

I was pretty pleased, as it is getting close to delivery time and I was able
to load a set of database tables which were generated 100% from COBOL source
(no manual tweaking), using a COBOL program 100% generated from a C#
program, with no manual tweaking. The idea is to be able to analyse the
existing COBOL source and create and load a normalized Relational DB from
it, without manual intervention. It is pretty much there.

Pete.
--
"I used to write COBOL...now I can do anything."


Pete Dashwood

2007-09-26, 6:55 pm



"Judson McClendon" <judmc@sunvaley0.com> wrote in message
news:KlrKi.80086$Lu.64000@bignews8.bellsouth.net...
> "Pete Dashwood" <dashwood@removethis.enternet.co.nz> wrote:
>
> Consider this. If Microsoft had put performance at a premium, Windows
> would boot in 1 second, you could start any Office application and it
> would be ready for input in the blink of an eye, and your Access test
> would
> have run in a few seconds. How many thousand man-years have been spent
> cumulatively all over the planet waiting on these things? :-)


Apparently Bill Gates showed a Windows machine that did a cold boot in 14
seconds. He claims it is not Windows that slows the boot down.

Certainly mine comes out of hibernation (warm start) in about 10 seconds. I
had occasion to remove Norton the other day before re-installing it, and
noted that without it my machine boots in 1 minute 40 seconds. With it, 3
minutes.

My Office Applications do start very quickly (Word is immediate, Access is
under 2 seconds, Project is around 5 seconds, Excel is immediate, PowerPoint
1 second, Outlook between 2 and 5 seconds, depending on the profile. I'd be
interested as to how this compares with other users)

The latest ACCESS test does run in a few seconds :-) (70,000 records = 41
seconds, using embedded SQL from COBOL).

Overall, I'm happy with it; if I weren't, I'd change... :-)

Pete.
--
"I used to write COBOL...now I can do anything."


Howard Brazee

2007-09-26, 6:55 pm

On Thu, 27 Sep 2007 01:04:49 +1200, "Pete Dashwood"
<dashwood@removethis.enternet.co.nz> wrote:

>Again, to me at least, this just completely confirms that it is not possible
>to make meaningful statements about performance unless you run actual tests.


Another thing it shows is that you shouldn't expect those efficiencies
that one needed to determine via testing to stay the most efficient as
compilers and platforms change.
Howard Brazee

2007-09-26, 6:55 pm

On Thu, 27 Sep 2007 02:09:36 +1200, "Pete Dashwood"
<dashwood@removethis.enternet.co.nz> wrote:

>Apparently Bill Gates showed a Windows machine that did a cold boot in 14
>seconds. He claims it is not Windows that slows the boot down.


My wife's Mac boots that fast. But part of Windows is checking
drivers for all of the different options that a Windows machine has.
Part of Windows is the cost of having the flexibility to run diverse
hardware.

I'd like to know what would make a Windows machine with the power of
my wife's Mac - to give it that kind of cold boot time. Is this
something that manufacturers have available to them? Is it something
I have available to me?

Just knowing that someone with Bill Gates' resources can do it, does
me no good.
Judson McClendon

2007-09-26, 6:55 pm

"Pete Dashwood" <dashwood@removethis.enternet.co.nz> wrote:
> "Judson McClendon" <judmc@sunvaley0.com> wrote:
>
> Apparently Bill Gates showed a Windows machine that did a cold boot in 14 seconds. He claims it is not Windows that slows the boot
> down.


Windows often takes a *long* time to shut down, too.

> My Office Applications do start very quickly (Word is immediate, Access is under 2 seconds, Project is around 5 seconds, Excel is
> immediate, PowerPoint 1 second, Outlook between 2 and 5 seconds, depending on the profile. I'd be interested as to how this
> compares with other users)


To know how long it *really* takes, you have to run each program right
after a fresh boot, because many of the DLLs are loaded and stay in
memory, making the load faster the next time you run that, or another
Office, app. Not saying *that* is a bad thing, just that it distorts the time
one of those applications actually takes to load from scratch.


I just rebooted my PC, and once the disk quieted down, started Word
2003, and it took about 4 seconds. My PC is an Athlon 64 X2 4800+,
2GB RAM, an Athlon A8N-SLI Premium system board and boots
from two striped Western Digital 10,000RPM Raptor drives.

Norton Antivirus does slow it down a lot. But, considering what a virus
scan entails, I/O and CPU wise, it's probably not excessive.
--
Judson McClendon judmc@sunvaley0.com (remove zero)
Sun Valley Systems http://sunvaley.com
"For God so loved the world that He gave His only begotten Son, that
whoever believes in Him should not perish but have everlasting life."



Pete Dashwood

2007-09-26, 6:55 pm



"Howard Brazee" <howard@brazee.net> wrote in message
news:q4skf3pc9r7f3ci0tke32218blaf56avfl@
4ax.com...
> On Thu, 27 Sep 2007 01:04:49 +1200, "Pete Dashwood"
> <dashwood@removethis.enternet.co.nz> wrote:
>
>
> Another thing it shows is that you shouldn't expect those efficiencies
> that one needed to determine via testing to stay the most efficient as
> compilers and platforms change.


I agree. That is probably the single most important thing to be learned
here.

Pete.
--
"I used to write COBOL...now I can do anything."


Robert

2007-09-26, 6:55 pm

On Wed, 26 Sep 2007 05:48:34 GMT, "William M. Klein" <wmklein@nospam.netcom.com> wrote:

>"Robert" <no@e.mail> wrote in message
> news:1eljf358c4bph284c6md1oorfos07q76q0@
4ax.com...
><snip>
>
>Robert,
> Please post your LISTING (with SETING(COL3)) as being rquired to change COMP-5
>and GOBACK means that SOMETHING you did wasn't right.
>
>NOMF DIALECT(ENTCOBOL) FLAGAS(S) (ro example) should accept both of those.
>
>If you did NOT use the "dialect" directive, then you need to use
> NOMF ENTCOBOL FLAG(ENTCOBOL) FLAGAS(S)
>
>(using SETTING(COL3) and LIST() will show which directives you actually have
>on.>


* Micro Focus COBOL for UNIX V4.1 revision 040
Page 1
* speed2a.cbl
$SET SOURCEFORMAT"FREE"
$SET NOBOUND
$SET OPT"2"
$SET NOTRUNC
$SET IBMCOMP
$SET NOCHECK
$SET ALIGN"8"
$SET NOMF
$SET FLAGAS(S)
$SET ARITHMETIC(ENTCOBOL)
$SET DIALECT(ENTCOBOL)
$SET SETTING(COL3)

* Setting: NO01SHUFFLE NOACCEPTREFRESH NOADV
* ALIGN"8" ALPHASTART"1" ALTER
* NOAMODE NOANALYZE NOANIM
* ANS85 NOAPOST NOAREACHECK
* ARITHMETIC"MF" ASSIGN"DYNAMIC"
NOASSIGN-PRINTER
* NOAUTOLOCK NOBELL NOBOUND
* NOBRIEF NOBROWSE NOBYTEMODEMOVE
* NOCALL-RECOVERY CALLFH"EXTFH" NOCALLMCS
* NOCALLSORT CANCELLBR NOCHANGEMESSAGE
* CHARSET"ASCII" CHECKDIV"ANSI" CHIP"16"
* NOCICS CICS-CPY NOCICSOPTIMIZE
* NOCMPR2 COBCPY($COBCPY) NOCOBFSTATCONV
* NOCOBIDY NOCOBOL370 COBOLDIR
* NOCOMP COMP-5"2" COMP-6"2"
* NOCOMS85 NOCONFIRM NOCONVERTPTR
* NOCONVERTRET CONVSPACE
COPYEXT",cbl,cpy"
* NOCOPYLBR COPYLIST NOCSI
* CURRENCY-SIGN"36" CURRENT-DATE"MMDDYY"
DATACOMPRESS"0"
* DATE DBCHECK DBCS"3"
* NODBCSSOSI DBSPACE DE-EDIT"2"
* DEFAULTBYTE"32" NODEFAULTCALLS DETECTLOCK
* NODG DIRECTIVES-IN-COMMENTS
* NODOSVS DYNAM EANIM"0"
* NOEARLY-RELEASE ECHO NOECHOALL
* NOEDITOR ENSUITE"0"
ERRLIST"EMBED"
* NOERRQ NOEXTINDEX FASTSORT
* NOFCDREG NOFDCLEAR NOFILESHARE
* FILETYPE"0" NOFLAG NOFLAG-CHIP
* FLAGAS"S" NOFLAGCD NOFLAGMIG
* NOFLAGQ FLAGSINEDIT NOFLAGSTD
* FLASH"ZOOM" NOFOLDCALLNAME NOFOLDCOPYNAME
* FORM"60" NOFP-ROUNDING NOGNTANLZ
* NOHOST-NUMCOMPARE NOIBM-MS IBMCOMP
* IDXFORMAT"0" NOINCLUDE-FILLER NOINDD
* INFORETURN"0" NOINITCALL
INT"speed2a.int"
* INTLEVEL"2" IOCONV KEEP-INT
* KEYCHECK KEYCOMPRESS"0" NOLIBRARIAN
* NOLINE-COUNT LINKCOUNT"64" LIST
* LISTPATH"" LISTWIDTH"80"
LITVAL-SIZE"4"
* LOCKTYPE"0" NOMAPNAME NOMAXERROR
* NOMF NOMF-OO NOMFCOMMENT
* speed2a.cbl
* NOMS NATIVE"ASCII" NONCHAR
* NONESTCALL NONLS NOODOOSVS
* NOODOSLIDE NOOLDBLANKLINE NOOLDCOPY
* NOOLDINDEX NOOLDNEXTSENTENCE NOOLDREADINTO
* NOOLDSTRMIX NOOLDSTRSUB OOCTRL...
* ..."-B-C-E-G-N-P+Q+R-S+V-W-8" OPTIONAL-FILE
* OSEXT"" NOOSVS NOOUTDD
* NOPANVALET PERFORM-TYPE"MF" NOPREPLIST
* NOPREPROCESS NOPRINT-EXT NOPROFILE
* NOPROGID-COMMENT NOPROTECT-LINKAGE QUAL
* QUALPROC NOQUERY QUOTE
* NORAWLIST NORDW RECMODE"F"
* NOREF NOREFNO
REPORT-LINE"256"
* NORESEQ NORETRYLOCK REWRITE-LS
* NORM NORNIM
RTNCODE-SIZE"2"
* NOSAA SEG NOSEQCHK
* SEQUENTIAL"RECORD" SETTING"COL3" NOSHOW-DIR
* NOSHOWSHUFFLE SIGN"ASCII"
SOURCEFORMAT"FREE"
* NOSPZERO NOSQL NOSSRANGE
* STDERR NOSTICKY-LINKAGE
NOSTICKY-PERFORM
* NOSTRUCT SUPFF SYMBSTART"1"
* NOSYSIN TERMPAGE TIME
* NOTRACE NOTRUNC NOTRUNCCALLNAME
* NOTRUNCCOPY NOVERBOSE NOVSC2
* WARNING"1" NOWB NOWB2
* NOWB3 NOWRITELOCK NOWRITETHRU
* NOXNIM NOXOPEN NOXREF
* NOZEROLENGTHFALSE NOZEROSEQ NOZWB
*
identification division.
program-id. Speed2a.
author. Robert Wxagner.

data division.
working-storage section.
01 test-data.
05 comp5-number binary pic s9(09) sync.
05 binary-number binary pic s9(09) sync.
05 display-number pic 9(09).
05 s-subscript binary pic s9(09) sync.
05 test-byte pic x(01).

01 misaligned-area.
05 array-element occurs 4096 indexed x-index.
10 misaligned-number binary pic s9(09).
10 to-cause-misalignment pic x(01).
05 byte-element occurs 4096 indexed x-index-1 pic x.

01 timer-variables.
05 test-name pic x(30).
05 repeat-factor value 100000000 binary pic s9(09).
05 current-date-structure.
10 pic x(08).
10 time-now-hhmmsshh.
15 hours pic 9(02).
15 minutes pic 9(02).
15 secs pic 9(02).
15 hundredths pic v9(02).
10 pic x(05).
05 time-now pic 9(06)v99.
05 time-start pic 9(06)v99.
05 timer-overhead value zero pic 9(06)v99.
05 elapsed-time pic s9(06)v99.
05 elapsed-time-display.
10 elapsed-time-edited pic z(05).


procedure division.

initialize test-data, misaligned-area

move 'Null test' to test-name
perform timer-on
perform timer-on
perform repeat-factor times
continue
end-perform
perform timer-off
compute timer-overhead = (time-now - time-start)

move 'Index' to test-name
set x-index to 1000
perform timer-on
perform repeat-factor times
if x-index = 1000
set x-index up by 1
else
set x-index down by 1
end-if
move array-element (x-index) to test-byte
continue
end-perform
perform timer-off

move 'Subscript' to test-name
move 1000 to s-subscript
perform timer-on
perform repeat-factor times
if s-subscript = 1000
add 1 to s-subscript
else
subtract 1 from s-subscript
end-if
move array-element (s-subscript) to test-byte
continue
end-perform
perform timer-off

move 'Subscript comp-5' to test-name
move 1000 to comp5-number
perform timer-on
perform repeat-factor times
if comp5-number = 1000
add 1 to comp5-number
else
subtract 1 from comp5-number
end-if
move array-element (comp5-number) to test-byte
continue
end-perform
perform timer-off

move 'Index 1' to test-name
set x-index-1 to 1000
perform timer-on
perform repeat-factor times
if x-index-1 = 1000
set x-index-1 up by 1
else
set x-index-1 down by 1
end-if
move byte-element (x-index-1) to test-byte
continue
end-perform
perform timer-off

move 'Subscript 1' to test-name
move 1000 to s-subscript
perform timer-on
perform repeat-factor times
if s-subscript = 1000
add 1 to s-subscript
else
subtract 1 from s-subscript
end-if
move byte-element (s-subscript) to test-byte
continue
end-perform
perform timer-off

move 'Subscript 1 comp-5' to test-name
move 1000 to comp5-number
perform timer-on
perform repeat-factor times
if comp5-number = 1000
add 1 to comp5-number
else
subtract 1 from comp5-number
end-if
move byte-element (comp5-number) to test-byte
continue
end-perform
perform timer-off

stop run

. dummy section
. timer-on.
perform read-the-time
move time-now to time-start
. timer-off.
perform read-the-time
compute elapsed-time rounded = ((time-now - time-start)
* 100000000 / repeat-factor) - timer-overhead
if elapsed-time not greater than zero
move 'error' to elapsed-time-display
else
compute elapsed-time-edited rounded = elapsed-time * 10
end-if
display test-name elapsed-time-display
. read-the-time.
accept time-now-hhmmsshh from time
*> move function current-date to current-date-structure
compute time-now =
((((hours * 60) +
minutes) * 60) +
secs) +
hundredths
Robert

2007-09-26, 9:55 pm

On Wed, 26 Sep 2007 09:36:42 -0400, "Charles Hottel" <chottel@earthlink.net> wrote:

>I was in somewhat of a hurry when I converted Roberts program to use my
>mainframe timer routine. Looking at the TIMER-OFF:
>
> TIMER-OFF.
> PERFORM READ-THE-TIME
> COMPUTE ELAPSED-TIME ROUNDED =
> ((TIME-NOW - TIME-START) - TIMER-OVERHEAD) /1000000
>
> IF ELAPSED-TIME NOT GREATER THAN ZERO
> MOVE 'ERROR' TO ELAPSED-TIME-DISPLAY
> ELSE
> COMPUTE ELAPSED-TIME-EDITED ROUNDED = ELAPSED-TIME * 10
> END-IF
> DISPLAY TEST-NAME ELAPSED-TIME-DISPLAY
>
>My timing routine computes the time in microseconds since the task started.
>
>The ELAPSED-TIME-EDITED is ELAPSED-TIME multiplied by 10, so I think all of
>the times I published may be 10 times higher than the actual elasped time. I
>am somewhat skeptical of measuring actual times on a mainframe without
>repeating the tests six to ten times and computing an average, variance
>and/or standard deviation. I did not spend much time thinking about whether
>to remove that COMPUTE because to me it was the relative speeds that were
>important. Also I did not analyze Roberts timing method or the rationale for
>this COMPUTE because my past experience using his timing method showed it
>was grossly inaccurate on a mainframe (the task gets swapped out, put into a
>wait state, but the time of day clock keeps on ticking). Sorry I guess I was
>lazy, and my only excuse is that I am still far from being 100% of my old
>self lately.


My objective was to express duration as a two digit number, for easy comprehension.
The numbers displayed are wall clock seconds times 10.

There is no way to measure process-active time in Cobol. If I had done it with operating
system calls, the program wouldn't be portable.
Jeff Campbell

2007-09-26, 9:55 pm

Roger While wrote:
> I really, really tried to keep away from this subject but ...
> One of the problems with the speed2 prog is the
> attempt to deduce the perform cost.
> Now OC produces exactly the C code that reflects
> the statements eg.
> /* speed2.cob:63: PERFORM */
> {
> for (n0 = ((int)COB_BSWAP_32(*(int *)(b_18 + 30))); n0 > 0; n0--)
> {
> {
> /* speed2.cob:64: EXIT */
> {
> goto l_5;
> }
> }
>
> /* EXIT PERFORM CYCLE 5: */
> l_5:;
> }
> }
>
> BUT gcc (in current versions) is far more
> clever and deletes the whole thing :-)
>
> Revised test prog -
> (This should be compatible with most compilers)
>
> identification division.
> program-id. speed5.
> data division.
> working-storage section.
> 01 comp5-number comp-5 pic s9(09).
> 01 s-subscript binary pic s9(09).
> 01 repeat-factor value 900000000 comp-5 pic s9(09).
> 01 test-byte pic x(01).
>
> 01 misaligned-area.
> 05 array-element occurs 4096 indexed x-index.
> 10 misaligned-number comp-5 pic s9(09).
> 10 to-cause-misalignment pic x(01).
> 05 byte-element occurs 4096 indexed x-index-1 pic x.
>
> procedure division.
>
> initialize misaligned-area
>
> display "Start prog " function current-date
> set x-index to 1000
> display "Index start " function current-date
> perform repeat-factor times
> if x-index = 1000
> set x-index up by 1
> else
> set x-index down by 1
> end-if
> move array-element (x-index) to test-byte
> end-perform
> display "Index end " function current-date
>
> move 1000 to s-subscript
> display "COMP start " function current-date
> perform repeat-factor times
> if s-subscript = 1000
> add 1 to s-subscript
> else
> subtract 1 from s-subscript
> end-if
> move array-element (s-subscript) to test-byte
> end-perform
> display "COMP end " function current-date
>
> move 1000 to comp5-number
> display "COMP-5 start " function current-date
> perform repeat-factor times
> if comp5-number = 1000
> add 1 to comp5-number
> else
> subtract 1 from comp5-number
> end-if
> move array-element (comp5-number) to test-byte
> end-perform
> display "COMP-5 end " function current-date
>
> set x-index-1 to 1000
> display "Index start " function current-date
> perform repeat-factor times
> if x-index-1 = 1000
> set x-index-1 up by 1
> else
> set x-index-1 down by 1
> end-if
> move byte-element (x-index-1) to test-byte
> end-perform
> display "Index end " function current-date
>
> move 1000 to s-subscript
> display "COMP start " function current-date
> perform repeat-factor times
> if s-subscript = 1000
> add 1 to s-subscript
> else
> subtract 1 from s-subscript
> end-if
> move byte-element (s-subscript) to test-byte
> end-perform
> display "COMP end " function current-date
>
> move 1000 to comp5-number
> display "COMP-5 start " function current-date
> perform repeat-factor times
> if comp5-number = 1000
> add 1 to comp5-number
> else
> subtract 1 from comp5-number
> end-if
> move byte-element (comp5-number) to test-byte
> end-perform
> display "COMP-5 end " function current-date
>
> stop run.
>
> Note that the repeat count is pushed up, otherwise the results are
> statistically meaningless.Tests repeated 5 times with +- 1/100 second
> difference.
>
> Results from Linux boxen (in single-user mode)
> (As all benchmarks should be done on 'nix systems)
> (32 bit is P4 prescott with 3.2GhZ)
> (64 bit is P4
>
> MF SE 2.2 (Linux x86 32 bit)
> cob -u -O -C notrunc -C sourceformat=free speed5.cob
> cobrun speed5
> Start prog 2007092612363397+0200
> Index start 2007092612363397+0200
> Index end 2007092612363681+0200
> COMP start 2007092612363681+0200
> COMP end 2007092612364047+0200
> COMP-5 start 2007092612364047+0200
> COMP-5 end 2007092612364361+0200
> Index start 2007092612364361+0200
> Index end 2007092612364672+0200
> COMP start 2007092612364672+0200
> COMP end 2007092612365034+0200
> COMP-5 start 2007092612365034+0200
> COMP-5 end 2007092612365357+0200
>
> OC 0.33 current -
> cobc -x -O2 -std=mf -free speed5.cob
> ./speed5
> Start prog 2007092612311407+0200
> Index start 2007092612311407+0200
> Index end 2007092612311690+0200
> COMP start 2007092612311690+0200
> COMP end 2007092612312044+0200
> COMP-5 start 2007092612312044+0200
> COMP-5 end 2007092612312326+0200
> Index start 2007092612312326+0200
> Index end 2007092612312609+0200
> COMP start 2007092612312609+0200
> COMP end 2007092612312963+0200
> COMP-5 start 2007092612312963+0200
> COMP-5 end 2007092612313246+0200
>
> OC 0.33 current on Linux x86_64 (64 bit)
> cobc -x -O2 -std=mf -free speed5.cob
> ./speed5
> Start prog 2007092612285455+0200
> Index start 2007092612285455+0200
> Index end 2007092612285602+0200
> COMP start 2007092612285602+0200
> COMP end 2007092612285855+0200
> COMP-5 start 2007092612285855+0200
> COMP-5 end 2007092612290004+0200
> Index start 2007092612290004+0200
> Index end 2007092612290135+0200
> COMP start 2007092612290135+0200
> COMP end 2007092612290366+0200
> COMP-5 start 2007092612290366+0200
> COMP-5 end 2007092612290497+0200
>
> Now as to what has all been said in this thread, then I have the
> following comments -
> COMP (aka BINARY) is stored as big-endian by all
> compilers these days.
> Therefore there is a penalty on little-endian machines
> (or better the OS/firmware for eg. bi-endian) to
> byte-swap, operate and re-byteswap results.
> This, of course, affects eg. x86(_64).
> However, see below
>
> Alignment -
> There are in fact not that many alignment tolerant machines there.
> Intel x86(_64) and Power PC are known. (The Itanium is not)
> This means that any reference to a COMP/COMP-5 item must
> be moved to an intermediate area unless it can be proved at compile
> time that it is appropiately aligned. (eg. at 01 level)
>
> So we have to look at a bisection of the above two attributes.
> Generally speaking, for performance, (other than INDEX)
> one should use COMP-5 (aka BINARY-LONG SIGNED/UNSIGNED)
> for subscripts/counters etc. and define them at the 01 level.
>
> Not only that, a particular compiler implementation has it's
> own INDEX definition which is somewhat difficult to ascertain.
> (And which is not necessarily a C-5 item)
>
> Roger
>


The only change I had to make was to add a paragraph label. 8-)

Alpha Personal Workstation 600au running OpenVMS 7.3-1:

$ cobo/list:speed5/noansi/notrun/opti speed5
$ link speed5
$ run speed5
Start prog 200709270036324700000
Index start 200709270036324700000
Index end 200709270036355100000
COMP start 200709270036355100000
COMP end 200709270036385500000
COMP-5 start 200709270036385500000
COMP-5 end 200709270036415900000
Index start 200709270036415900000
Index end 200709270036446200000
COMP start 200709270036446200000
COMP end 200709270036476600000
COMP-5 start 200709270036476600000
COMP-5 end 200709270036507000000
$

Jeff

----== Posted via Newsfeeds.Com - Unlimited-Unrestricted-Secure Usenet News==----
http://www.newsfeeds.com The #1 Newsgroup Service in the World! 120,000+ Newsgroups
----= East and West-Coast Server Farms - Total Privacy via Encryption =----
Pete Dashwood

2007-09-26, 9:55 pm



"Robert" <no@e.mail> wrote in message
news:b7tlf3hifb1qfde4trikpetrel84gs08ro@
4ax.com...
> On Wed, 26 Sep 2007 09:36:42 -0400, "Charles Hottel"
> <chottel@earthlink.net> wrote:
>
>
> My objective was to express duration as a two digit number, for easy
> comprehension.
> The numbers displayed are wall clock seconds times 10.


While I'm all in favour of a simple display (I haven't checked Roger's
version because it is too much hassle combing through the output, it cannot
be easily compared to other runs, and I have neither time nor inclination to
amend the code to do the calculations in the program), I question whether
the numbers displayed are wall clock seconds times 10, Robert. As my run
gave a result of 22 or so for subscripts, that would mean the job ran for at
least 220 seconds. It didn't run anything like that. I didn't actually time
it, but it was not more than a few seconds of elapsed time. If I get a
chance later today, I'll run it again and time it.

Pete.
--
"I used to write COBOL...now I can do anything."


Robert

2007-09-26, 9:55 pm

On Wed, 26 Sep 2007 09:33:16 +0000 (UTC), docdwarf@panix.com () wrote:

>In article <uq8jf3pd3rq48eqio0hdtqo172nv2c16is@4ax.com>,
>Robert <no@e.mail> wrote:
>
>I can barely speak for myself, Mr Wagner, let alone some 'we'... but I
>recall seeing post after post were you indicated, rather pointedly, that
>the speed superiority of indices over subscripts was something maintained
>by mainframers and was, according to your test, an obsolete belief.
>
>Results were then posted, purporting to be from a mainframe run, which
>appeared to verify this obsolete belief.
>
>
>A wonderful world it is, Mr Wagner... and perhaps this inconsistency of
>performance might work itsself into your own consistency of performance.
>It might be an interesting exercise, saying, in the future, 'this-and-that
>is quite obviously the case... but remember, when I said that-and-this was
>the case I was, quite soundly and publicly, shown an example to the
>contrary.'
>
>
>That's to be be hoped for... and even more so that it will be shaped by
>one's previous ideas, both proven right *and* proven wrong.


As a classics scholar, you know ad hominem means 'against the person', not 'insult' as
commonly thought. What's wrong with ad hominem is not that it's unmannerly; what's wrong
is that it is a logical ERROR OF IRRELEVANCE.

When someone says we should believe him because he is an expert and knows more than we do,
he is making an argument from authority. In that case, and ONLY that case, an attack on
his veracity is relevant, because he used it as a premise of his argument. Legitimate
experts (such as Bill Klien) seldom argue from authority, except as expert witnesses in
court or as TV commentators. In hard science circles, the 'authority' would be advised to
take his expertise plus an additional $3 to the nearest Starbucks.

When someone makes NO claim to authority, posits an argument that uses verifiable facts as
premises, rebuttal pointing out his prior errors is logically invalid .. because it
doesn't deal with anything he said.

Why is ad hominem such a common informal fallacy? Why are politicians and TV spokesmen
judged on their believability? Because the most common decision processes are based on
emotion rather than logic. I won't go into the reasons why because this isn't a psychology
forum. I only wanted to point out why attacking credibility is an invalid response.
Robert

2007-09-26, 9:55 pm

On Thu, 27 Sep 2007 13:03:39 +1200, "Pete Dashwood" <dashwood@removethis.enternet.co.nz>
wrote:

>
>
>"Robert" <no@e.mail> wrote in message
> news:b7tlf3hifb1qfde4trikpetrel84gs08ro@
4ax.com...
>
>While I'm all in favour of a simple display (I haven't checked Roger's
>version because it is too much hassle combing through the output, it cannot
>be easily compared to other runs, and I have neither time nor inclination to
>amend the code to do the calculations in the program), I question whether
>the numbers displayed are wall clock seconds times 10, Robert. As my run
>gave a result of 22 or so for subscripts, that would mean the job ran for at
>least 220 seconds. It didn't run anything like that. I didn't actually time
>it, but it was not more than a few seconds of elapsed time. If I get a
>chance later today, I'll run it again and time it.


Ah, innumeracy. I said TIMES 10, not divided by 10. Run time of 2.2 seconds times 10
equals 22.
Pete Dashwood

2007-09-26, 9:55 pm



"Robert" <no@e.mail> wrote in message
news:se4mf3tgn2dgovc7dke6t2a1t97i4s1ovi@
4ax.com...
> On Thu, 27 Sep 2007 13:03:39 +1200, "Pete Dashwood"
> <dashwood@removethis.enternet.co.nz>
> wrote:
>
>
> Ah, innumeracy. I said TIMES 10, not divided by 10. Run time of 2.2
> seconds times 10
> equals 22.


Thanks. I misinterpreted what you wrote. Sorry.

Pete.
--
"I used to write COBOL...now I can do anything."


LX-i

2007-09-27, 3:55 am

Pete Dashwood wrote:
> Obviously, generated code makes all the difference. Here's code from 2
> compilers running in the same OS Environment, yet look at the figures for
> subscripts; the P4 creams the Core 2, although the Core 2 is theoretically
> faster. In fact, the P4 is faster on everything except the null test :-) And
> both systems are way faster than IBM mainframes. (That still hasn't quite
> sunk in yet; after working on mainframes for decades it is hard for me to
> realize that a notebook costing < .01% of what a mainframe costs, could be
> orders of magnitude faster...)


I determined that, at our office, when someone posted that KJV
parse-and-count coding challenge. It ran on my PC (using Fujitsu 5) in
about 37 seconds. It took over 20 minutes to run on our development
mainframe!

I pointed that out to the "powers that be" but they didn't find it
nearly as interesting. I guess *they* weren't the ones waiting 20+
minutes for a compile (for a few of the larger programs)...

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ / \/ _ o ~ Live from Albuquerque, NM! ~
~ _ /\ | ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ Business E-mail ~ daniel @ "Business Website" below ~
~ Business Website ~ http://www.djs-consulting.com ~
~ Tech Blog ~ http://www.djs-consulting.com/linux/blog ~
~ Personal E-mail ~ "Personal Blog" as e-mail address ~
~ Personal Blog ~ http://daniel.summershome.org ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~

GEEKCODE 3.12 GCS/IT d s-:+ a C++ L++ E--- W++ N++ o? K- w$ !O M--
V PS+ PE++ Y? !PGP t+ 5? X+ R* tv b+ DI++ D+ G- e h---- r+++ z++++

"Who is more irrational? A man who believes in a God he doesn't see,
or a man who's offended by a God he doesn't believe in?" - Brad Stine
LX-i

2007-09-27, 3:55 am

Howard Brazee wrote:
> On Thu, 27 Sep 2007 02:09:36 +1200, "Pete Dashwood"
> <dashwood@removethis.enternet.co.nz> wrote:
>
>
> My wife's Mac boots that fast. But part of Windows is checking
> drivers for all of the different options that a Windows machine has.
> Part of Windows is the cost of having the flexibility to run diverse
> hardware.


My laptop is running Ubuntu Linux, and before that I had Windows Vista
64-bit. Both OS's took about the same time to display a login screen
(just under a minute, unless it's the 21st time I've booted Linux and it
forces a fsck on my main hard drive). However, when I enter my user
name and password, it's about 10 seconds before I can do something with
Ubuntu - with Vista, it was 3-4 minutes!

(Granted, I'm sure I didn't have the hardware that Vista wanted - there
wasn't a video driver for my system, which is what drove me to replace
it in the first place. More RAM would probably help too - I've got 1.25GB.)

In Gates's defense, when I was running XP, it would boot pretty quickly
- much more quickly than my computer at work, which had equivalent
hardware. I didn't have a virus scanner, I wasn't applying group
policies, etc...

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ / \/ _ o ~ Live from Albuquerque, NM! ~
~ _ /\ | ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ Business E-mail ~ daniel @ "Business Website" below ~
~ Business Website ~ http://www.djs-consulting.com ~
~ Tech Blog ~ http://www.djs-consulting.com/linux/blog ~
~ Personal E-mail ~ "Personal Blog" as e-mail address ~
~ Personal Blog ~ http://daniel.summershome.org ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~

GEEKCODE 3.12 GCS/IT d s-:+ a C++ L++ E--- W++ N++ o? K- w$ !O M--
V PS+ PE++ Y? !PGP t+ 5? X+ R* tv b+ DI++ D+ G- e h---- r+++ z++++

"Who is more irrational? A man who believes in a God he doesn't see,
or a man who's offended by a God he doesn't believe in?" - Brad Stine

2007-09-27, 7:55 am

In article <1u1mf314bahp475dd8jps22lja4ahelm8u@4ax.com>,
Robert <no@e.mail> wrote:

[snip]

>Because the most common decision
>processes are based on
>emotion rather than logic.


If this is the case, Mr Wagner, and if it is your desire to have an effect
on a decision process you believe to be among the 'most common' then it
would appear that you might conclude an appeal to emotion might be the
most effective manner to accomplish this.

DD

Judson McClendon

2007-09-27, 7:55 am

"LX-i" <lxi0007@netscape.net> wrote:
>
> My laptop is running Ubuntu Linux, and before that I had Windows Vista 64-bit. Both OS's took about the same time to display a
> login screen (just under a minute, unless it's the 21st time I've booted Linux and it forces a fsck on my main hard drive).
> However, when I enter my user name and password, it's about 10 seconds before I can do something with Ubuntu - with Vista, it was
> 3-4 minutes!


I've downloaded Ubuntu, but haven't done more than play with it a bit.
Is it really a viable alternative for those currently doing serious work in
Windows? For example, what about my investment in Win32 compilers?
Is the Windows emulation good enough to compile and test using MF
Net Express? I would be very surprised if Visual Studio or MS Office
runs. Though Unix clones of MS Office might be fine for everyday use,
what if you are creating Office applications? For good or ill, the vast
majority of potential clients out there are running Windows and Windows
apps. Any comments?
--
Judson McClendon judmc@sunvaley0.com (remove zero)
Sun Valley Systems http://sunvaley.com
"For God so loved the world that He gave His only begotten Son, that
whoever believes in Him should not perish but have everlasting life."


donald tees

2007-09-27, 6:55 pm

Judson McClendon wrote:
> "LX-i" <lxi0007@netscape.net> wrote:
>
> I've downloaded Ubuntu, but haven't done more than play with it a bit.
> Is it really a viable alternative for those currently doing serious work in
> Windows? For example, what about my investment in Win32 compilers?
> Is the Windows emulation good enough to compile and test using MF
> Net Express? I would be very surprised if Visual Studio or MS Office
> runs. Though Unix clones of MS Office might be fine for everyday use,
> what if you are creating Office applications? For good or ill, the vast
> majority of potential clients out there are running Windows and Windows
> apps. Any comments?


I do all my development on a virtual machine these days. The virtual
machine(s) are running on a single Linux box, one machine for each OS of
the past.

Donald
HeyBub

2007-09-27, 6:55 pm

Judson McClendon wrote:
> "LX-i" <lxi0007@netscape.net> wrote:
>
> I've downloaded Ubuntu, but haven't done more than play with it a bit.
> Is it really a viable alternative for those currently doing serious
> work in Windows? For example, what about my investment in Win32
> compilers? Is the Windows emulation good enough to compile and test using
> MF
> Net Express? I would be very surprised if Visual Studio or MS Office
> runs. Though Unix clones of MS Office might be fine for everyday use,
> what if you are creating Office applications? For good or ill, the
> vast majority of potential clients out there are running Windows and
> Windows apps. Any comments?


Linux is a knock-off of a 40-year old operating system originally designed
by a money-losing division of the local telephone company. It has been
enhanced by designers who truely believe the DOS command-line interface was
not arcane enough.

There is a rumor that Ubuntu is secretely funded by Microsoft in an effort
to entice away the malcontent portion of the computing community thereby
allowing those of us remaining to have an enjoyable computing experience,
free from hectoring, snarling, and pomposity.

Visit the microsoft.public.windows.vista.general or
microsoft.public.windowsxp.general newsgroups to get a taste of the
invective and spite visited upon Micros~1 by the Ubuntu devotees.



Pete Dashwood

2007-09-27, 6:55 pm



"Judson McClendon" <judmc@sunvaley0.com> wrote in message
news:WQMKi.265$z7.85@bignews7.bellsouth.net...
> "LX-i" <lxi0007@netscape.net> wrote:
>
> I've downloaded Ubuntu, but haven't done more than play with it a bit.
> Is it really a viable alternative for those currently doing serious work
> in
> Windows? For example, what about my investment in Win32 compilers?
> Is the Windows emulation good enough to compile and test using MF
> Net Express? I would be very surprised if Visual Studio or MS Office
> runs. Though Unix clones of MS Office might be fine for everyday use,
> what if you are creating Office applications? For good or ill, the vast
> majority of potential clients out there are running Windows and Windows
> apps. Any comments?


Yes, this just confirms what I've said here a number of times. The
marketplace is Windows. If you are writing software you expect to sell,
you'd be crazy not to write it for a Windows environment.

Having said that, DotNET and it's Open Source equivalent, Mono, are making
quite a difference. I have done one fairly trivial experiment so far, where
I wrote C# on a Windows machine and a friend ran it without problem on a
Linux box under Mono, WITHOUT REQUIRING A RECOMPILE! This is pretty
impressive. So,one compiler that's free (either the C# compiler that comes
with Mono or the MS C# that comes with VS 2005) and you have full access to
99% of the PC Marketplace. I can't see why anyone would pay thousands for a
COBOL compiler that works on one platform or another. (DotNET COBOLs from
both MicroFocus and Fujitsu SHOULD also be platform independent in the same
way, but these are not cheap.) And that's before we even consider runtime
fees, which only exist in certain COBOL environments.

Ironically, my Windows MS environment is now becoming a springboard for
Linux as well, all through the power of DotNET and Mono. (The converse is
also true; people can develop using Linux/Unix and Mono, and have it run on
Windows, no problem.)

It's about time :-)

Pete.
--
"I used to write COBOL...now I can do anything."


Judson McClendon

2007-09-27, 6:55 pm

"donald tees" <donaldtees@execulink.com> wrote:
> Judson McClendon wrote:
>
> I do all my development on a virtual machine these days. The virtual machine(s) are running on a single Linux box, one machine for
> each OS of the past.


Interesting. Are there any "gotcha's" in that approach that you would like
to share?
--
Judson McClendon judmc@sunvaley0.com (remove zero)
Sun Valley Systems http://sunvaley.com
"For God so loved the world that He gave His only begotten Son, that
whoever believes in Him should not perish but have everlasting life."


donald tees

2007-09-27, 6:55 pm

Judson McClendon wrote:
> "donald tees" <donaldtees@execulink.com> wrote:
>
> Interesting. Are there any "gotcha's" in that approach that you would like
> to share?


I've not found any yet on a fast machine. Older machines or ones with
small memory can be a bit loggy, mouse-wise. Once you create a machine,
you can boot it from a DVD or CD, and install the same as you would
with a real one.

The nice thing about it is that the disk drives are Linux files, so
creating a small machine with a 4 gig disk that can be copied becomes
trivial. Backup is *much* simpler and more reliable than with real
machines, and the entire machine can be copied onto new hardware in a
trivial manner. You can even move drives from computer to computer
without much grief. Learning how seems to be the biggest gotcha, but
that is true with just about anything. I even have customers with old
DOS machines preserved intact.

I understand you can also run the same machine on an XP, but I have not
bothered to try.

Donald
Alistair

2007-09-27, 6:55 pm

On 27 Sep, 04:38, LX-i <lxi0...@netscape.net> wrote:
> Pete Dashwood wrote:
>
> I determined that, at our office, when someone posted that KJV
> parse-and-count coding challenge. It ran on my PC (using Fujitsu 5) in
> about 37 seconds. It took over 20 minutes to run on our development
> mainframe!
>
> I pointed that out to the "powers that be" but they didn't find it
> nearly as interesting. I guess *they* weren't the ones waiting 20+
> minutes for a compile (for a few of the larger programs)...
>


And if I were your boss I would want to know who, and under what
grounds, your run had been authorised and who would be paying for the
cpu cycles.

LX-i

2007-09-28, 3:55 am

HeyBub wrote:
> Linux is a knock-off of a 40-year old operating system originally designed
> by a money-losing division of the local telephone company. It has been
> enhanced by designers who truely believe the DOS command-line interface was
> not arcane enough.


heh! :)

> There is a rumor that Ubuntu is secretely funded by Microsoft in an effort
> to entice away the malcontent portion of the computing community thereby
> allowing those of us remaining to have an enjoyable computing experience,
> free from hectoring, snarling, and pomposity.


Then they shouldn't have done such a good job at it. :) Ubuntu is by
far the most popular non-commercial distribution because it comes in a
working state. SimplyMEPIS had done this the best before Ubuntu came
along, and in recent iterations, it's based on Ubuntu instead of
straight Debian.

> Visit the microsoft.public.windows.vista.general or
> microsoft.public.windowsxp.general newsgroups to get a taste of the
> invective and spite visited upon Micros~1 by the Ubuntu devotees.


Ah - there's just more of them.

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ / \/ _ o ~ Live from Albuquerque, NM! ~
~ _ /\ | ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ Business E-mail ~ daniel @ "Business Website" below ~
~ Business Website ~ http://www.djs-consulting.com ~
~ Tech Blog ~ http://www.djs-consulting.com/linux/blog ~
~ Personal E-mail ~ "Personal Blog" as e-mail address ~
~ Personal Blog ~ http://daniel.summershome.org ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~

GEEKCODE 3.12 GCS/IT d s-:+ a C++ L++ E--- W++ N++ o? K- w$ !O M--
V PS+ PE++ Y? !PGP t+ 5? X+ R* tv b+ DI++ D+ G- e h---- r+++ z++++

"Who is more irrational? A man who believes in a God he doesn't see,
or a man who's offended by a God he doesn't believe in?" - Brad Stine
LX-i

2007-09-28, 3:55 am

Pete Dashwood wrote:
> Ironically, my Windows MS environment is now becoming a springboard for
> Linux as well, all through the power of DotNET and Mono. (The converse is
> also true; people can develop using Linux/Unix and Mono, and have it run on
> Windows, no problem.)


I haven't had much luck with MonoDevelop. However, hopefully that will
change, as I'm taking a .NET course this semester. I'll make it work.

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ / \/ _ o ~ Live from Albuquerque, NM! ~
~ _ /\ | ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ Business E-mail ~ daniel @ "Business Website" below ~
~ Business Website ~ http://www.djs-consulting.com ~
~ Tech Blog ~ http://www.djs-consulting.com/linux/blog ~
~ Personal E-mail ~ "Personal Blog" as e-mail address ~
~ Personal Blog ~ http://daniel.summershome.org ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~

GEEKCODE 3.12 GCS/IT d s-:+ a C++ L++ E--- W++ N++ o? K- w$ !O M--
V PS+ PE++ Y? !PGP t+ 5? X+ R* tv b+ DI++ D+ G- e h---- r+++ z++++

"Who is more irrational? A man who believes in a God he doesn't see,
or a man who's offended by a God he doesn't believe in?" - Brad Stine
LX-i

2007-09-28, 3:55 am

Alistair wrote:
> On 27 Sep, 04:38, LX-i <lxi0...@netscape.net> wrote:
>
> And if I were your boss I would want to know who, and under what
> grounds, your run had been authorised and who would be paying for the
> cpu cycles.


We paid for the cycles whether we used them or not. And, with the
amount of work I produced, I could've done my taxes on the mainframe and
they wouldn't have complained. (They probably would have asked me to do
theirs too!)

--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~
~ / \/ _ o ~ Live from Albuquerque, NM! ~
~ _ /\ | ~ ~
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
~ Business E-mail ~ daniel @ "Business Website" below ~
~ Business Website ~ http://www.djs-consulting.com ~
~ Tech Blog ~ http://www.djs-consulting.com/linux/blog ~
~ Personal E-mail ~ "Personal Blog" as e-mail address ~
~ Personal Blog ~ http://daniel.summershome.org ~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~

GEEKCODE 3.12 GCS/IT d s-:+ a C++ L++ E--- W++ N++ o? K- w$ !O M--
V PS+ PE++ Y? !PGP t+ 5? X+ R* tv b+ DI++ D+ G- e h---- r+++ z++++

"Who is more irrational? A man who believes in a God he doesn't see,
or a man who's offended by a God he doesn't believe in?" - Brad Stine
HeyBub

2007-09-28, 6:55 pm

LX-i wrote:
>
>
> Ah - there's just more of them.


Yeah. We call 'em MSanthropes.


Sponsored Links







Also available: Server administration forum archive | Web Design forum archive | Software forum archive | Hardware reviews archive

Copyright 2008 codecomments.com