Syntax Overview | V9 ARM Log Format | SAS 9 Examples
Example 1 - define a permanent library to store ARMPROC output
libname user 'f:\arm\user'; %armproc(lib=user); run;
Example 2 - define an ARM log to be read on WIN NT platform
%armproc(log=f:\armlogs\mytest.log); run;
libname user 'f:\arm\user'; %armjoin(libin=user,libout=user); run;
%armstrt(txnidvar=txn1,shdlvar=hdl1,corr=1); %armstrt(txnidvar=txn2,corr=3,parntvar=hdl1,shdlvar=hdl1a); %armstrt(txnidvar=txn2,corr=2,parntvar=hdl1a,shdlvar=hdl2);run;
data _null_; %arminit(appname='Appl 1', appuser='sasjrs'); run; data _null_; %armgtid(txnname='Txn 1', metrNam1=smallStr,metrDef1=short); run; data _null_; %armstrt(metrVal1='Start'); run; data _null_; /* bufftype in ARM log is generated from data parameters entered */ %armupdt(data='FORMAT 2 DATA'); %armupdt(metrVal1='Update'); %armupdt(data='FORMAT 2 DATA',metrVal1='Update'); /* generates warning message */ %armupdt(); /* default no extra data */ run; data _null_; %armstop(status=2,metrVal1='Stop'); run; data _null_; %armend; run;Resulting SAS log:
NOTE: Copyright (c) 1999-2001 by SAS Institute Inc., Cary, NC, USA.
NOTE: SAS (r) Proprietary Software Version 9.00 (TS A0)
Licensed to SAS Institute Inc., Site 0000000001.
NOTE: This session is executing on the WIN_NT platform.
NOTE: SAS initialization used:
real time 2.81 seconds
cpu time 1.92 seconds
NOTE: AUTOEXEC processing beginning; file is c:\sasv9\autoexec.sas.
NOTE: Libref ARMCAT was successfully assigned as follows:
Engine: V9
Physical Name: f:\armv9\sampsio
NOTE: AUTOEXEC processing completed.
1
2 data _null_;
3 %arminit(appname='Appl 1', appuser='sasjrs');
4 run;
NOTE: DATA statement used (Total process time):
real time 0.37 seconds
cpu time 0.25 seconds
5
6 data _null_;
7 %armgtid(txnname='Txn 1', metrNam1=smallStr,metrDef1=short);
8 run;
NOTE: DATA statement used (Total process time):
real time 0.36 seconds
cpu time 0.34 seconds
9
10 data _null_;
11 %armstrt(metrVal1='Start');
12 run;
NOTE: DATA statement used (Total process time):
real time 0.27 seconds
cpu time 0.28 seconds
13
14 data _null_;
15 /* bufftype in ARM log is generated from data parameters entered */
16 %armupdt(data='FORMAT 2 DATA');
17 %armupdt(metrVal1='Update');
18 %armupdt(data='FORMAT 2 DATA',metrVal1='Update'); /* generates warning message */
WARNING: DATA= parameter found. User metrics ignored.
19 %armupdt(); /* default no extra data */
20 run;
NOTE: DATA statement used (Total process time):
real time 0.54 seconds
cpu time 0.40 seconds
21
22 data _null_;
23 %armstop(status=2,metrVal1='Stop');
24 run;
NOTE: DATA statement used (Total process time):
real time 0.25 seconds
cpu time 0.16 seconds
25
26 data _null_;
27 %armend;
28 run;
NOTE: DATA statement used (Total process time):
real time 0.14 seconds
cpu time 0.12 seconds
Resulting ARM log file (input to %ARMPROC):
I,1326833654.503000,1,1.602304,1.291857,Appl 1,sasjrs G,1326833654.894000,1,1,Txn 1,,smallStr,ShortStr S,1326833655.194000,1,1,1,2.193153,1.371972,Start U,1326833655.745000,1,1,1,2.563686,1.412030,2,FORMAT 2 DATA U,1326833655.745000,1,1,1,2.563686,1.412030,1,Update U,1326833655.745000,1,1,1,2.563686,1.412030,2,FORMAT 2 DATA U,1326833655.745000,1,1,1,2.563686,1.412030,0 P,1326833656.25000,1,1,1,2.703888,1.452088,2,Stop E,1326833656.186000,1,2.814046,1.482131
%let _armacro=1; /* all ARM macros are outside of data steps */
%arminit(appname='test app',getid=yes,txnname='trans1',
txndet='txn desc1');
%armstrt;
run;
%armupdt;
run;
data one;
do i=1 to 100;
output;
end;
run;
%armstop;
run;
%armend;
run;
Resulting SAS log:
NOTE: Copyright (c) 1999-2001 by SAS Institute Inc., Cary, NC, USA.
NOTE: SAS (r) Proprietary Software Version 9.00 (TS A0)
Licensed to SAS Institute Inc., Site 0000000001.
NOTE: This session is executing on the WIN_NT platform.
NOTE: SAS initialization used:
real time 2.61 seconds
cpu time 1.87 seconds
NOTE: AUTOEXEC processing beginning; file is c:\sasv9\autoexec.sas.
NOTE: Libref ARMCAT was successfully assigned as follows:
Engine: V9
Physical Name: f:\armv9\sampsio
NOTE: AUTOEXEC processing completed.
1 %let _armacro=1; /* all ARM macros are outside of data steps */
2
3 %arminit(appname='test app',getid=yes,txnname='trans1',
4 txndet='txn desc1');
5 %armstrt;
6 run;
7 %armupdt;
8 run;
9
10 data one;
11 do i=1 to 100;
12 output;
13 end;
14 run;
NOTE: The data set WORK.ONE has 100 observations and 1 variables.
NOTE: DATA statement used (Total process time):
real time 1.30 seconds
cpu time 0.20 seconds
15
16 %armstop;
17 run;
18 %armend;
19 run;
Resulting ARM log file (input to %ARMPROC):
I,1326834273.473000,1,1.792577,1.542217,test app,* G,1326834273.714000,1,1,trans1,txn desc1 S,1326834274.174000,1,1,1,2.343369,1.572260 U,1326834274.625000,1,1,1,2.623772,1.592289,0 E,1326834276.498000,1,3.4320,1.812606
%let _armacro = 0;
data _null_;
/* initialize */
rc = 0;
appl_id=0;
txn_id1=0;
txn_stat=0;
sHandle1=0;
sHandle2=0;
sHandle3=0;
%arminit(appname="Appl 1");
%armgtid(txnname="Trans 1",txndet="Transaction #1",
txnidvar=txn1,
metrnam1=1usrcnt32,metrDef1=count32,
metrnam2=2gag64, metrDef2=gauge64,
metrnam3=3id32, metrDef3=id32,
metrnam4=4id64, metrDef4=id64);
%armgtid(txnname="Trans 1a",txndet="Transaction 1a",txnidvar=txn2);
/* txn_id,correlator func, parent start handle, user metrics....*/
%armstrt(txnidvar=txn1,shdlvar=hdl1,corr=1,
metrval1=12,
metrval2=34,
metrval3=_N_,
metrval4=_N_);
%armstrt(txnidvar=txn2,corr=3,parntvar=hdl1,shdlvar=hdl1a);
%armstrt(txnidvar=txn2,corr=2,parntvar=hdl1a,shdlvar=hdl2);
%armstop(shdlvar=hdl2,status=txn_stat);
%armstop(shdlvar=hdl1a,status=txn_stat);
%armstop(shdlvar=hdl1,status=txn_stat,metrval1=43,
metrval2=21,
metrval3=_N_,
metrval4=_N_);
%armend();
run;
Resulting SAS log:
NOTE: Copyright (c) 1999-2001 by SAS Institute Inc., Cary, NC, USA.
NOTE: SAS (r) Proprietary Software Version 9.00 (TS A0)
Licensed to SAS Institute Inc., Site 0000000001.
NOTE: This session is executing on the WIN_NT platform.
NOTE: SAS initialization used:
real time 22.91 seconds
cpu time 5.37 seconds
NOTE: AUTOEXEC processing beginning; file is c:\sasv9\autoexec.sas.
NOTE: Libref ARMCAT was successfully assigned as follows:
Engine: V9
Physical Name: f:\armv9\sampsio
NOTE: AUTOEXEC processing completed.
1 %let _armacro = 0;
2
3 data _null_;
4
5 /* initialize */
6 rc = 0;
7 appl_id=0;
8 txn_id1=0;
9 txn_stat=0;
10 sHandle1=0;
11 sHandle2=0;
12 sHandle3=0;
13
14 %arminit(appname="Appl 1");
15 %armgtid(txnname="Trans 1",txndet="Transaction #1",
16 txnidvar=txn1,
17 metrnam1=1usrcnt32,metrDef1=count32,
18 metrnam2=2gag64, metrDef2=gauge64,
19 metrnam3=3id32, metrDef3=id32,
20 metrnam4=4id64, metrDef4=id64);
21 %armgtid(txnname="Trans 1a",txndet="Transaction 1a",txnidvar=txn2);
22 /* txn_id,correlator func, parent start handle, user metrics....*/
23 %armstrt(txnidvar=txn1,shdlvar=hdl1,corr=1,
24 metrval1=12,
25 metrval2=34,
26 metrval3=_N_,
27 metrval4=_N_);
28 %armstrt(txnidvar=txn2,corr=3,parntvar=hdl1,shdlvar=hdl1a);
29 %armstrt(txnidvar=txn2,corr=2,parntvar=hdl1a,shdlvar=hdl2);
30
31 %armstop(shdlvar=hdl2,status=txn_stat);
32 %armstop(shdlvar=hdl1a,status=txn_stat);
33 %armstop(shdlvar=hdl1,status=txn_stat,metrval1=43,
34 metrval2=21,
35 metrval3=_N_,
36 metrval4=_N_);
37 %armend();
38
39 run;
NOTE: DATA statement used (Total process time):
real time 3.49 seconds
cpu time 2.02 seconds
Resulting ARM log:
I,1326893707.995000,1,3.314766,5.127372,Appl 1,* G,1326893707.995000,1,1,Trans 1,Transaction #1,1usrcnt32,Count32,2gag64,Gauge64,3id32,Id32,4id64,Id64 G,1326893707.995000,1,2,Trans 1a,Transaction 1a S,1326893707.995000,1,1,1,3.314766,5.127372,12,34,1,1 C,1326893707.995000,1,2,2,1,1,3.314766,5.127372 C,1326893708.5000,1,2,3,2,2,3.324780,5.127372 P,1326893708.5000,1,2,3,3.324780,5.127372,0 P,1326893708.5000,1,2,2,3.324780,5.127372,0 P,1326893708.5000,1,1,1,3.324780,5.127372,0,43,21,1,1 E,1326893708.5000,1,3.324780,5.127372
/********************* BASE:BIT PERFORMANCE TEST **********************
NAME: putc.sas
PURPOSE: Put statement to DUMMY with character formats
VARIES: format
AUTHOR: Jason Secosky - jaseco
SUPPORT: Jason Secosky - jaseco
NOTES: Little I/O to stress data step execution
: Not going through ODS
: Uses no column controls, and @ & + column controls
: Uses frequently used formats
: gtidset macro contained in perfauto.sas (base dvd)
HISTORY: 07Oct99 created
**********************************************************************//*-- gtidsetup is for tests that start more than one ARM 'application' --*/
%macro gtidset(fmt, desc, appid);
%if ("&fmt" = "") %then
%do;
%armgtid(txnname='NONE', txndet='&desc', txnidvar=round1, appidvar=&appid);
%armgtid(txnname='NONE', txndet='&desc', txnidvar=round2, appidvar=&appid);
%armgtid(txnname='NONE', txndet='&desc', txnidvar=round3, appidvar=&appid);
%end;
%else
%do;
%armgtid(txnname='&fmt', txndet='&desc', txnidvar=round1, appidvar=&appid);
%armgtid(txnname='&fmt', txndet='&desc', txnidvar=round2, appidvar=&appid);
%armgtid(txnname='&fmt', txndet='&desc', txnidvar=round3, appidvar=&appid);
%end;
%mend;
/*-- Turn on ARM macros --*/
%let _armexec = 1;
%let _armacro = 1;
*%filename( ARMLOG, putc, txt );
options armloc="putc.log";
%arminit(appname='DATASTEP;&sysscpl;&sysvlong', txnname='putc',
getid=yes, appidvar=app);
%arminit(appname='DATASTEP;&sysscpl;&sysvlong;ABS', txnname='putc',
getid=yes, appidvar=appabs);
%arminit(appname='DATASTEP;&sysscpl;&sysvlong;REL', txnname='putc',
getid=yes, appidvar=apprel);
/*------------------------*/
%macro mvsopts;
%if %quote(&sysscpl)=%quote(OS/390) or
%quote(&sysscpl)=%quote(MVS)
%then options stats;
%mend;
%mvsopts;
%let nsteps=3; %put **NSTEPS= &nsteps; %put **DATE= &sysdate9; %put **PUTC**;
%let nlines = 80000;
/**
** MACRO: LIMSETUP
** Host specific number of lines to output, to vary exec time.
**/
%macro limsetup;
%if %str(&sysscp) = %str(OS) %then
%let nlines = 40000;
%mend;
%limsetup;
%let outfile = nul;
%let nelem = 100;
%let charsz = 20;
filename nul DUMMY;
data _null_; file &outfile; x=1; put x=; run;
/**
** MACRO: PUTTST
** Use no column controls to output data to default output device.
**/
%macro puttst(fmt);
%put ##FMT= &fmt;
%gtidset(&fmt, PUTC, app);
%do i = 1 %to &nsteps;
%armstrt(txnidvar=round&i );
data _null_;
file &outfile;
array arr{&nelem} $ &charsz;
do i = 1 to &nelem;
arr{i} = repeat('j', &charsz);
end;
do i = 1 to &nlines;
put arr{*} &fmt;
end;
run;
%armstop;
%end;
%mend;
/**
** MACRO: ABSEXP
** Create put statement that uses @ column control.
**/
%macro absexp(nelem, fmt);
%local i;
%do i = 1 %to &nelem;
@%eval(&i*(&charsz+1)) arr{&i} &fmt
%end;
%mend;
/**
** MACRO: PUTTST2
** Use @ column controls to output data to default output device.
**/
%macro puttst2(fmt);
%put ##FMTABS= &fmt;
%gtidset(&fmt, PUTC_ABS, appabs);
%do i = 1 %to &nsteps;
%armstrt(txnidvar=round&i );
data _null_;
file &outfile;
array arr{&nelem} $ &charsz;
do i = 1 to &nelem;
arr{i} = repeat('j', &charsz);
end;
do i = 1 to &nlines;
put %absexp(&nelem, &fmt);
end;
run;
%armstop;
%end;
%mend;
/**
** MACRO: RELEXP
** Create put statement that uses + column control.
**/
%macro relexp(nelem, fmt);
%local i;
%do i = 1 %to &nelem;
+3 arr{&i} &fmt
%end;
%mend;
/**
** MACRO: PUTTST3
** Use + column controls to output data to default output device.
**/
%macro puttst3(fmt);
%put ##FMTREL= &fmt;
%gtidset(&fmt, PUTC_REL, apprel);
%do i = 1 %to &nsteps;
%armstrt(txnidvar=round&i );
data _null_;
file &outfile;
array arr{&nelem} $ &charsz;
do i = 1 to &nelem;
arr{i} = repeat('j', &charsz);
end;
do i = 1 to &nlines;
put %relexp(&nelem, &fmt);
end;
run;
%armstop;
%end;
%mend;
%puttst($);
%puttst($&charsz..);
%puttst($CHAR&charsz..);
%puttst($ASCII&charsz..);
%puttst($HEX%eval(&charsz * 2).);
%puttst($UPCASE&charsz..);
%puttst2($);
%puttst2($&charsz..);
%puttst2($CHAR&charsz..);
%puttst2($ASCII&charsz..);
%puttst2($HEX%eval(&charsz * 2).);
%puttst2($UPCASE&charsz..);
%puttst3($);
%puttst3($&charsz..);
%puttst3($CHAR&charsz..);
%puttst3($ASCII&charsz..);
%puttst3($HEX%eval(&charsz * 2).);
%puttst3($UPCASE&charsz..);
/*-- Unarm application --*/
%armend(appidvar=app);
%armend(appidvar=appabs);
%armend(appidvar=apprel);
SAS log:
NOTE: Copyright (c) 1999-2001 by SAS Institute Inc., Cary, NC, USA.
NOTE: SAS (r) Proprietary Software Version 9.00 (TS A0)
Licensed to SAS Institute Inc., Site 0000000001.
NOTE: This session is executing on the WIN_NT platform.
NOTE: SAS initialization used:
real time 2.29 seconds
cpu time 2.04 seconds
NOTE: AUTOEXEC processing beginning; file is c:\sasv9\autoexec.sas.
NOTE: Libref ARMCAT was successfully assigned as follows:
Engine: V9
Physical Name: f:\armv9\sampsio
NOTE: AUTOEXEC processing completed.
1 /********************* BASE:BIT PERFORMANCE TEST **********************
2
3 NAME: putc.sas
4 PURPOSE: Put statement to DUMMY with character formats
5 VARIES: format
6 AUTHOR: Jason Secosky - jaseco
7 SUPPORT: Jason Secosky - jaseco
8 NOTES: Little I/O to stress data step execution
9 : Not going through ODS
10 : Uses no column controls, and @ & + column controls
11 : Uses frequently used formats
12 : gtidset macro contained in perfauto.sas (base dvd)
13 HISTORY: 07Oct99 created
14
15 **********************************************************************//*-- gtidsetup is
15 ! for tests that start more than one ARM 'application' --*/
16 %macro gtidset(fmt, desc, appid);
17
18 %if ("&fmt" = "") %then
19 %do;
20 %armgtid(txnname='NONE', txndet='&desc', txnidvar=round1, appidvar=&appid);
21 %armgtid(txnname='NONE', txndet='&desc', txnidvar=round2, appidvar=&appid);
22 %armgtid(txnname='NONE', txndet='&desc', txnidvar=round3, appidvar=&appid);
23 %end;
24 %else
25 %do;
26 %armgtid(txnname='&fmt', txndet='&desc', txnidvar=round1, appidvar=&appid);
27 %armgtid(txnname='&fmt', txndet='&desc', txnidvar=round2, appidvar=&appid);
28 %armgtid(txnname='&fmt', txndet='&desc', txnidvar=round3, appidvar=&appid);
29 %end;
30 %mend;
31
32 /*-- Turn on ARM macros --*/
33 %let _armexec = 1;
34 %let _armacro = 1;
35 *%filename( ARMLOG, putc, txt );
36 options armloc="putc.log";
37 %arminit(appname='DATASTEP;&sysscpl;&sysvlong', txnname='putc',
38 getid=yes, appidvar=app);
39 %arminit(appname='DATASTEP;&sysscpl;&sysvlong;ABS', txnname='putc',
40 getid=yes, appidvar=appabs);
41 %arminit(appname='DATASTEP;&sysscpl;&sysvlong;REL', txnname='putc',
42 getid=yes, appidvar=apprel);
43 /*------------------------*/
44
45 %macro mvsopts;
46 %if %quote(&sysscpl)=%quote(OS/390) or
47 %quote(&sysscpl)=%quote(MVS)
48 %then options stats;
49 %mend;
50 %mvsopts;
51
52 %let nsteps=3; %put **NSTEPS= &nsteps; %put **DATE= &sysdate9; %put **PUTC**;
**NSTEPS= 3
**DATE= 17JAN2002
**PUTC**
53 %let nlines = 80000;
54
55 /**
56 ** MACRO: LIMSETUP
57 ** Host specific number of lines to output, to vary exec time.
58 **/
59 %macro limsetup;
60 %if %str(&sysscp) = %str(OS) %then
61 %let nlines = 40000;
62 %mend;
63 %limsetup;
64
65 %let outfile = nul;
66 %let nelem = 100;
67 %let charsz = 20;
68
69 filename nul DUMMY;
70 data _null_; file &outfile; x=1; put x=; run;
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 1 record was written to the file NUL.
The minimum record length was 3.
The maximum record length was 3.
NOTE: DATA statement used (Total process time):
real time 0.05 seconds
cpu time 0.06 seconds
71
72
73 /**
74 ** MACRO: PUTTST
75 ** Use no column controls to output data to default output device.
76 **/
77 %macro puttst(fmt);
78 %put ##FMT= &fmt;
79
80 %gtidset(&fmt, PUTC, app);
81 %do i = 1 %to &nsteps;
82
83 %armstrt(txnidvar=round&i );
84 data _null_;
85 file &outfile;
86 array arr{&nelem} $ &charsz;
87 do i = 1 to &nelem;
88 arr{i} = repeat('j', &charsz);
89 end;
90 do i = 1 to &nlines;
91 put arr{*} &fmt;
92 end;
93 run;
94 %armstop;
95 %end;
96 %mend;
97
98
99 /**
100 ** MACRO: ABSEXP
101 ** Create put statement that uses @ column control.
102 **/
103 %macro absexp(nelem, fmt);
104 %local i;
105 %do i = 1 %to &nelem;
106 @%eval(&i*(&charsz+1)) arr{&i} &fmt
107 %end;
108 %mend;
109
110
111 /**
112 ** MACRO: PUTTST2
113 ** Use @ column controls to output data to default output device.
114 **/
115 %macro puttst2(fmt);
116 %put ##FMTABS= &fmt;
117
118 %gtidset(&fmt, PUTC_ABS, appabs);
119 %do i = 1 %to &nsteps;
120
121 %armstrt(txnidvar=round&i );
122 data _null_;
123 file &outfile;
124 array arr{&nelem} $ &charsz;
125 do i = 1 to &nelem;
126 arr{i} = repeat('j', &charsz);
127 end;
128 do i = 1 to &nlines;
129 put %absexp(&nelem, &fmt);
130 end;
131 run;
132 %armstop;
133
134 %end;
135 %mend;
136
137
138 /**
139 ** MACRO: RELEXP
140 ** Create put statement that uses + column control.
141 **/
142 %macro relexp(nelem, fmt);
143 %local i;
144 %do i = 1 %to &nelem;
145 +3 arr{&i} &fmt
146 %end;
147 %mend;
148
149
150 /**
151 ** MACRO: PUTTST3
152 ** Use + column controls to output data to default output device.
153 **/
154 %macro puttst3(fmt);
155 %put ##FMTREL= &fmt;
156
157 %gtidset(&fmt, PUTC_REL, apprel);
158 %do i = 1 %to &nsteps;
159
160 %armstrt(txnidvar=round&i );
161 data _null_;
162 file &outfile;
163 array arr{&nelem} $ &charsz;
164 do i = 1 to &nelem;
165 arr{i} = repeat('j', &charsz);
166 end;
167 do i = 1 to &nlines;
168 put %relexp(&nelem, &fmt);
169 end;
170 run;
171 %armstop;
172
173 %end;
174 %mend;
175
176
177 %puttst($);
##FMT= $
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 720000 records were written to the file NUL.
The minimum record length was 83.
The maximum record length was 251.
NOTE: DATA statement used (Total process time):
real time 9.36 seconds
cpu time 9.29 seconds
178 %puttst($&charsz..);
##FMT= $20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 720000 records were written to the file NUL.
The minimum record length was 80.
The maximum record length was 240.
NOTE: DATA statement used (Total process time):
real time 7.13 seconds
cpu time 7.08 seconds
179 %puttst($CHAR&charsz..);
##FMT= $CHAR20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 720000 records were written to the file NUL.
The minimum record length was 80.
The maximum record length was 240.
NOTE: DATA statement used (Total process time):
real time 7.38 seconds
cpu time 7.26 seconds
180 %puttst($ASCII&charsz..);
##FMT= $ASCII20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 720000 records were written to the file NUL.
The minimum record length was 80.
The maximum record length was 240.
NOTE: DATA statement used (Total process time):
real time 8.95 seconds
cpu time 8.89 seconds
181 %puttst($HEX%eval(&charsz * 2).);
##FMT= $HEX40.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 1360000 records were written to the file NUL.
The minimum record length was 160.
The maximum record length was 240.
NOTE: DATA statement used (Total process time):
real time 27.31 seconds
cpu time 23.04 seconds
182 %puttst($UPCASE&charsz..);
##FMT= $UPCASE20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 720000 records were written to the file NUL.
The minimum record length was 80.
The maximum record length was 240.
NOTE: DATA statement used (Total process time):
real time 14.46 seconds
cpu time 14.37 seconds
183
184 %puttst2($);
##FMTABS= $
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 7200000 records were written to the file NUL.
The minimum record length was 20.
The maximum record length was 250.
NOTE: DATA statement used (Total process time):
real time 37.75 seconds
cpu time 36.69 seconds
185 %puttst2($&charsz..);
##FMTABS= $20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 7200000 records were written to the file NUL.
The minimum record length was 20.
The maximum record length was 250.
NOTE: DATA statement used (Total process time):
real time 34.28 seconds
cpu time 33.61 seconds
186 %puttst2($CHAR&charsz..);
##FMTABS= $CHAR20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 7200000 records were written to the file NUL.
The minimum record length was 20.
The maximum record length was 250.
NOTE: DATA statement used (Total process time):
real time 33.36 seconds
cpu time 32.75 seconds
187 %puttst2($ASCII&charsz..);
##FMTABS= $ASCII20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 7200000 records were written to the file NUL.
The minimum record length was 20.
The maximum record length was 250.
NOTE: DATA statement used (Total process time):
real time 37.61 seconds
cpu time 37.03 seconds
188 %puttst2($HEX%eval(&charsz * 2).);
##FMTABS= $HEX40.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 7280000 records were written to the file NUL.
The minimum record length was 40.
The maximum record length was 249.
NOTE: DATA statement used (Total process time):
real time 51.86 seconds
cpu time 51.08 seconds
189 %puttst2($UPCASE&charsz..);
##FMTABS= $UPCASE20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 7200000 records were written to the file NUL.
The minimum record length was 20.
The maximum record length was 250.
NOTE: DATA statement used (Total process time):
real time 43.62 seconds
cpu time 42.93 seconds
190
191 %puttst3($);
##FMTREL= $
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 800000 records were written to the file NUL.
The minimum record length was 236.
The maximum record length was 239.
NOTE: DATA statement used (Total process time):
real time 19.15 seconds
cpu time 18.82 seconds
192 %puttst3($&charsz..);
##FMTREL= $20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 800000 records were written to the file NUL.
The minimum record length was 20.
The maximum record length was 253.
NOTE: DATA statement used (Total process time):
real time 17.75 seconds
cpu time 17.49 seconds
193 %puttst3($CHAR&charsz..);
##FMTREL= $CHAR20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 800000 records were written to the file NUL.
The minimum record length was 20.
The maximum record length was 253.
NOTE: DATA statement used (Total process time):
real time 17.66 seconds
cpu time 17.39 seconds
194 %puttst3($ASCII&charsz..);
##FMTREL= $ASCII20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 800000 records were written to the file NUL.
The minimum record length was 20.
The maximum record length was 253.
NOTE: DATA statement used (Total process time):
real time 20.14 seconds
cpu time 19.79 seconds
195 %puttst3($HEX%eval(&charsz * 2).);
##FMTREL= $HEX40.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 1360000 records were written to the file NUL.
The minimum record length was 212.
The maximum record length was 255.
NOTE: DATA statement used (Total process time):
real time 36.32 seconds
cpu time 35.41 seconds
196 %puttst3($UPCASE&charsz..);
##FMTREL= $UPCASE20.
NOTE: The file NUL is:
File Name=,
RECFM=V,LRECL=256
NOTE: 800000 records were written to the file NUL.
The minimum record length was 20.
The maximum record length was 253.
NOTE: DATA statement used (Total process time):
real time 26.28 seconds
cpu time 25.83 seconds
197
198 /*-- Unarm application --*/
199 %armend(appidvar=app);
200 %armend(appidvar=appabs);
201 %armend(appidvar=apprel);
V9 Arm log:
I,1326895477.699000,1,1.792577,1.592289,DATASTEP;WIN_NT;9.00.00A0D011602,* G,1326895478.60000,1,1,putc, I,1326895478.110000,2,2.153096,1.632347,DATASTEP;WIN_NT;9.00.00A0D011602;ABS,* G,1326895478.200000,2,2,putc, I,1326895478.240000,3,2.283283,1.632347,DATASTEP;WIN_NT;9.00.00A0D011602;REL,* G,1326895478.340000,3,3,putc, G,1326895478.861000,1,4,$,PUTC S,1326895479.532000,1,4,1,3.434939,1.752520 P,1326895489.166000,1,4,1,12.938604,1.792577,0 G,1326895489.296000,1,5,$20.,PUTC S,1326895489.657000,1,5,2,13.429310,1.792577 P,1326895496.867000,1,5,2,20.549548,1.822620,0 G,1326895497.7000,1,6,$CHAR20.,PUTC S,1326895497.368000,1,6,3,21.40254,1.832635 P,1326895504.929000,1,6,3,28.370795,1.832635,0 G,1326895505.59000,1,7,$ASCII20.,PUTC S,1326895505.419000,1,7,4,28.861500,1.832635 P,1326895514.442000,1,7,4,37.794345,1.862678,0 G,1326895514.602000,1,8,$HEX40.,PUTC S,1326895514.963000,1,8,5,38.285051,1.862678 P,1326895542.352000,1,8,5,61.378257,1.882707,0 G,1326895542.483000,1,9,$UPCASE20.,PUTC S,1326895542.843000,1,9,6,61.868963,1.882707 P,1326895557.364000,1,9,6,76.269670,1.912750,0 G,1326895557.494000,2,10,$,PUTC_ABS S,1326895557.895000,2,10,7,76.730332,1.942793 P,1326895595.779000,2,10,7,113.483180,1.982851,0 G,1326895595.919000,2,11,$20.,PUTC_ABS S,1326895596.320000,2,11,8,114.3929,1.982851 P,1326895630.699000,2,11,8,147.662328,2.22908,0 G,1326895630.840000,2,12,$CHAR20.,PUTC_ABS S,1326895631.210000,2,12,9,148.173062,2.22908 P,1326895664.678000,2,12,9,181.265,2.52952,0 G,1326895664.818000,2,13,$ASCII20.,PUTC_ABS S,1326895665.189000,2,13,10,181.500985,2.62966 P,1326895702.903000,2,13,10,218.614352,2.72980,0 G,1326895703.43000,2,14,$HEX40.,PUTC_ABS S,1326895703.414000,2,14,11,219.125086,2.72980 P,1326895755.369000,2,14,11,270.268627,2.93009,0 G,1326895755.519000,2,15,$UPCASE20.,PUTC_ABS S,1326895755.889000,2,15,12,270.779361,2.103024 P,1326895799.642000,2,15,12,313.821252,2.103024,0 G,1326895799.782000,3,16,$,PUTC_REL S,1326895800.193000,3,16,13,314.331987,2.103024 P,1326895819.441000,3,16,13,333.219145,2.123052,0 G,1326895819.591000,3,17,$20.,PUTC_REL S,1326895819.951000,3,17,14,333.729880,2.123052 P,1326895837.787000,3,17,14,351.285123,2.143081,0 G,1326895837.927000,3,18,$CHAR20.,PUTC_REL S,1326895838.288000,3,18,15,351.785843,2.143081 P,1326895856.63000,3,18,15,369.240942,2.163110,0 G,1326895856.204000,3,19,$ASCII20.,PUTC_REL S,1326895856.564000,3,19,16,369.741662,2.163110 P,1326895876.813000,3,19,16,389.610232,2.183139,0 G,1326895876.953000,3,20,$HEX40.,PUTC_REL S,1326895877.324000,3,20,17,390.100937,2.193153 P,1326895913.736000,3,20,17,425.571942,2.213182,0 G,1326895913.877000,3,21,$UPCASE20.,PUTC_REL S,1326895914.227000,3,21,18,426.52633,2.223196 P,1326895940.615000,3,21,18,451.453142,2.253240,0 E,1326895940.855000,1,452.633401,2.253240 E,1326895940.905000,2,452.683473,2.253240 E,1326895940.945000,3,452.713516,2.263254
The code below converts the ARM log from Example 4 above: SAS Code:
%armconv(login='u:\arm\putc.log',logout='f:\arm\armlogs\putcV8.log'); run;Resulting V8 log:
17JAN2002:14:04:37.699 ARM_INIT AppID=1 AppName=DATASTEP;WIN_NT;9.00.00A0D011602 AppUser=* 17JAN2002:14:04:38.600 ARM_GETID AppID=1 ClsID=1 TxName=putc TxDet= 17JAN2002:14:04:38.110 ARM_INIT AppID=2 AppName=DATASTEP;WIN_NT;9.00.00A0D011602;ABS AppUser=* 17JAN2002:14:04:38.200 ARM_GETID AppID=2 ClsID=2 TxName=putc TxDet= 17JAN2002:14:04:38.240 ARM_INIT AppID=3 AppName=DATASTEP;WIN_NT;9.00.00A0D011602;REL AppUser=* 17JAN2002:14:04:38.340 ARM_GETID AppID=3 ClsID=3 TxName=putc TxDet= 17JAN2002:14:04:38.861 ARM_GETID AppID=1 ClsID=4 TxName=$ TxDet=PUTC 17JAN2002:14:04:39.532 ARM_START AppID=1 ClsID=4 TxSHdl=1 TxName=$ TxDet=PUTC 17JAN2002:14:04:49.166 ARM_STOP AppID=1 ClsID=4 TxSHdl=1 TxStat=0 TxElap=0:00:12.939 TxCpu=0:00:01.793 17JAN2002:14:04:49.296 ARM_GETID AppID=1 ClsID=5 TxName=$20. TxDet=PUTC 17JAN2002:14:04:49.657 ARM_START AppID=1 ClsID=5 TxSHdl=2 TxName=$20. TxDet=PUTC 17JAN2002:14:04:56.867 ARM_STOP AppID=1 ClsID=5 TxSHdl=2 TxStat=0 TxElap=0:00:20.550 TxCpu=0:00:01.823 17JAN2002:14:04:57.700 ARM_GETID AppID=1 ClsID=6 TxName=$CHAR20. TxDet=PUTC 17JAN2002:14:04:57.368 ARM_START AppID=1 ClsID=6 TxSHdl=3 TxName=$CHAR20. TxDet=PUTC 17JAN2002:14:05:04.929 ARM_STOP AppID=1 ClsID=6 TxSHdl=3 TxStat=0 TxElap=0:00:28.371 TxCpu=0:00:01.833 17JAN2002:14:05:05.590 ARM_GETID AppID=1 ClsID=7 TxName=$ASCII20. TxDet=PUTC 17JAN2002:14:05:05.419 ARM_START AppID=1 ClsID=7 TxSHdl=4 TxName=$ASCII20. TxDet=PUTC 17JAN2002:14:05:14.442 ARM_STOP AppID=1 ClsID=7 TxSHdl=4 TxStat=0 TxElap=0:00:37.794 TxCpu=0:00:01.863 17JAN2002:14:05:14.602 ARM_GETID AppID=1 ClsID=8 TxName=$HEX40. TxDet=PUTC 17JAN2002:14:05:14.963 ARM_START AppID=1 ClsID=8 TxSHdl=5 TxName=$HEX40. TxDet=PUTC 17JAN2002:14:05:42.352 ARM_STOP AppID=1 ClsID=8 TxSHdl=5 TxStat=0 TxElap=0:01:01.378 TxCpu=0:00:01.883 17JAN2002:14:05:42.483 ARM_GETID AppID=1 ClsID=9 TxName=$UPCASE20. TxDet=PUTC 17JAN2002:14:05:42.843 ARM_START AppID=1 ClsID=9 TxSHdl=6 TxName=$UPCASE20. TxDet=PUTC 17JAN2002:14:05:57.364 ARM_STOP AppID=1 ClsID=9 TxSHdl=6 TxStat=0 TxElap=0:01:16.270 TxCpu=0:00:01.913 17JAN2002:14:05:57.494 ARM_GETID AppID=2 ClsID=10 TxName=$ TxDet=PUTC_ABS 17JAN2002:14:05:57.895 ARM_START AppID=2 ClsID=10 TxSHdl=7 TxName=$ TxDet=PUTC_ABS 17JAN2002:14:06:35.779 ARM_STOP AppID=2 ClsID=10 TxSHdl=7 TxStat=0 TxElap=0:01:53.483 TxCpu=0:00:01.983 17JAN2002:14:06:35.919 ARM_GETID AppID=2 ClsID=11 TxName=$20. TxDet=PUTC_ABS 17JAN2002:14:06:36.320 ARM_START AppID=2 ClsID=11 TxSHdl=8 TxName=$20. TxDet=PUTC_ABS 17JAN2002:14:07:10.699 ARM_STOP AppID=2 ClsID=11 TxSHdl=8 TxStat=0 TxElap=0:02:27.662 TxCpu=0:00:02.229 17JAN2002:14:07:10.840 ARM_GETID AppID=2 ClsID=12 TxName=$CHAR20. TxDet=PUTC_ABS 17JAN2002:14:07:11.210 ARM_START AppID=2 ClsID=12 TxSHdl=9 TxName=$CHAR20. TxDet=PUTC_ABS 17JAN2002:14:07:44.678 ARM_STOP AppID=2 ClsID=12 TxSHdl=9 TxStat=0 TxElap=0:03:01.265 TxCpu=0:00:02.530 17JAN2002:14:07:44.818 ARM_GETID AppID=2 ClsID=13 TxName=$ASCII20. TxDet=PUTC_ABS 17JAN2002:14:07:45.189 ARM_START AppID=2 ClsID=13 TxSHdl=10 TxName=$ASCII20. TxDet=PUTC_ABS 17JAN2002:14:08:22.903 ARM_STOP AppID=2 ClsID=13 TxSHdl=10 TxStat=0 TxElap=0:03:38.614 TxCpu=0:00:02.730 17JAN2002:14:08:23.430 ARM_GETID AppID=2 ClsID=14 TxName=$HEX40. TxDet=PUTC_ABS 17JAN2002:14:08:23.414 ARM_START AppID=2 ClsID=14 TxSHdl=11 TxName=$HEX40. TxDet=PUTC_ABS 17JAN2002:14:09:15.369 ARM_STOP AppID=2 ClsID=14 TxSHdl=11 TxStat=0 TxElap=0:04:30.269 TxCpu=0:00:02.930 17JAN2002:14:09:15.519 ARM_GETID AppID=2 ClsID=15 TxName=$UPCASE20. TxDet=PUTC_ABS 17JAN2002:14:09:15.889 ARM_START AppID=2 ClsID=15 TxSHdl=12 TxName=$UPCASE20. TxDet=PUTC_ABS 17JAN2002:14:09:59.642 ARM_STOP AppID=2 ClsID=15 TxSHdl=12 TxStat=0 TxElap=0:05:13.821 TxCpu=0:00:02.103 17JAN2002:14:09:59.782 ARM_GETID AppID=3 ClsID=16 TxName=$ TxDet=PUTC_REL 17JAN2002:14:10:00.193 ARM_START AppID=3 ClsID=16 TxSHdl=13 TxName=$ TxDet=PUTC_REL 17JAN2002:14:10:19.441 ARM_STOP AppID=3 ClsID=16 TxSHdl=13 TxStat=0 TxElap=0:05:33.219 TxCpu=0:00:02.123 17JAN2002:14:10:19.591 ARM_GETID AppID=3 ClsID=17 TxName=$20. TxDet=PUTC_REL 17JAN2002:14:10:19.951 ARM_START AppID=3 ClsID=17 TxSHdl=14 TxName=$20. TxDet=PUTC_REL 17JAN2002:14:10:37.787 ARM_STOP AppID=3 ClsID=17 TxSHdl=14 TxStat=0 TxElap=0:05:51.285 TxCpu=0:00:02.143 17JAN2002:14:10:37.927 ARM_GETID AppID=3 ClsID=18 TxName=$CHAR20. TxDet=PUTC_REL 17JAN2002:14:10:38.288 ARM_START AppID=3 ClsID=18 TxSHdl=15 TxName=$CHAR20. TxDet=PUTC_REL 17JAN2002:14:10:56.630 ARM_STOP AppID=3 ClsID=18 TxSHdl=15 TxStat=0 TxElap=0:06:09.241 TxCpu=0:00:02.163 17JAN2002:14:10:56.204 ARM_GETID AppID=3 ClsID=19 TxName=$ASCII20. TxDet=PUTC_REL 17JAN2002:14:10:56.564 ARM_START AppID=3 ClsID=19 TxSHdl=16 TxName=$ASCII20. TxDet=PUTC_REL 17JAN2002:14:11:16.813 ARM_STOP AppID=3 ClsID=19 TxSHdl=16 TxStat=0 TxElap=0:06:29.610 TxCpu=0:00:02.183 17JAN2002:14:11:16.953 ARM_GETID AppID=3 ClsID=20 TxName=$HEX40. TxDet=PUTC_REL 17JAN2002:14:11:17.324 ARM_START AppID=3 ClsID=20 TxSHdl=17 TxName=$HEX40. TxDet=PUTC_REL 17JAN2002:14:11:53.736 ARM_STOP AppID=3 ClsID=20 TxSHdl=17 TxStat=0 TxElap=0:07:05.572 TxCpu=0:00:02.213 17JAN2002:14:11:53.877 ARM_GETID AppID=3 ClsID=21 TxName=$UPCASE20. TxDet=PUTC_REL 17JAN2002:14:11:54.227 ARM_START AppID=3 ClsID=21 TxSHdl=18 TxName=$UPCASE20. TxDet=PUTC_REL 17JAN2002:14:12:20.615 ARM_STOP AppID=3 ClsID=21 TxSHdl=18 TxStat=0 TxElap=0:07:31.453 TxCpu=0:00:02.253 17JAN2002:14:12:20.855 ARM_END AppID=1 AppNCls=1 AppNTxSt=18 AppNTxSp=0 AppNTxUp=0 AppNTx0=0 AppNTx1=0 AppNTx2=0 AppElap=0:07:32.633 AppCpu=0:00:02.253 AppAvgRt=0:00:25.146 AppMinTx=27777:46:39.00 AppMaxTx=0:00:00.000 17JAN2002:14:12:20.905 ARM_END AppID=2 AppNCls=1 AppNTxSt=18 AppNTxSp=0 AppNTxUp=0 AppNTx0=0 AppNTx1=0 AppNTx2=0 AppElap=0:07:32.683 AppCpu=0:00:02.253 AppAvgRt=0:00:25.149 AppMinTx=27777:46:39.00 AppMaxTx=0:00:00.000 17JAN2002:14:12:20.945 ARM_END AppID=3 AppNCls=19 AppNTxSt=18 AppNTxSp=18 AppNTxUp=0 AppNTx0=18 AppNTx1=0 AppNTx2=0 AppElap=0:07:32.714 AppCpu=0:00:02.263 AppAvgRt=0:00:25.151 AppMinTx=0:00:12.939 AppMaxTx=0:07:31.453