'\"macro stdmacro
.if n .pH g1.objectdiff @(#)objectdiff	40.2 of 12/29/89
.\"
.\" @(#)objectdiff.1	1.9 6/28/89
.\"
.ds Sd \s-2X11/Ne\h'-0.2n'WS\s+2
.ds Xn X11/Ne\h'-0.2n'WS
.ds Ps P\s-2OST\s+2S\s-2CRIPT\s+2
.nr X
.if \nX=0 .ds x} OBJECTDIFF 1 "15 June 1989" "\&"
.if \nX=1 .ds x} OBJECTDIFF 1 "15 June 1989"
.if \nX=2 .ds x} OBJECTDIFF 1 "" "\&"
.if \nX=3 .ds x} OBJECTDIFF "" "" "\&"
.TH \*(x}
.\"
.\" .IX objectdiff#(1) "" "\fIobjectdiff\fP(1) \(em \*(Sd tool"
.IX objectdiff#(1) "" "\fLobjectdiff\fP(1)"
.SH NAME
objectdiff \- list differences between two lists of \*(Sd data objects 
.\"
.SH SYNOPSIS
.B objectdiff 
[ \fIfile1 file2\fR ]
.\"
.SH DESCRIPTION
.LP
.B objectdiff 
performs a \fBdiff\fP(1) on two files containing output from the
\*(Sd operator \fBobjectdump\fR.  A formatted summary of the
differences in the number and/or size of the objects
of each type is output.
.LP
If the files were not produced by using \fBobjectdump\fR
on the same server during the same run, the output may be garbage.
If the two files were produced by 
using \fBobjectdump\fR on two different releases of the server, 
a change 
in accounting could cause synchronization problems.
.LP
Output is in the following format:
.sp
.in +.5i
   \fInnnnn\fP \fBbytes for\fP \fImmm\fP \fIobject_type\fP \fBobjects\fP
.in -.5i
.sp
The output is sorted from the biggest space alloced at the top to the
smallest space alloced or the biggest space freed at the bottom.
At the end, there is a total-line of the following form:
.sp
.in +.5i
   \fInnnnn\fP \fBbytes for\fP  \fImmm\fP \fITOTAL\fP \fBobjects\fP
.in -.5i
.LP
The \fIobject_type\fPs are the same as those used for the output
from \fBobjectdump\fR.
.\"
.SH EXAMPLES
.LP
To find the number of objects allocated by a given operation, use the following:
.sp
.RS
.nf
.ft B
example% psh
.sp .25
executive
(/tmp/objects1) (w) file objectdump
/new MyClass send
(/tmp/objects2) (w) file objectdump
quit
.sp .25
example%  objectdiff /tmp/objects1 /tmp/objects2
.RE
.fi
.ft R
.sp
.SH "SEE ALSO"
\fBobjectwatcher\fP(1)
