$ od -c -N 50000 [eris]<LispManual>IDperformance.im!3
0000000 \r { B e g i n S u b S e c P
0000020 e r f o r m a n c e C o n s i
0000040 d e r a t i o n s } \r { T i t l
0000060 e P e r f o r m a n c e C o
0000100 n s i d e r a t i o n s } \r { T
0000120 e x t \r \r \r M o s t I n t e r
0000140 l i s p - D u s e r s w i l
0000160 l h a v e e x p e r i e n c
0000200 e u s i n g I n t e r l i s
0000220 p - 1 0 . A l t h o u g h
0000240 I n t e r l i s p - D i s c
0000260 o m p l e t e l y u p w a r d
0000300 c o m p a t i b l e w i t h
0000320 I n t e r l i s p - 1 0 , t
0000340 h e r e a r e d i f f e r e
0000360 n c e s i n t h e e x a c
0000400 t i m p l e m e n t a t i o n
0000420 w h i c h m a y i n f l u
0000440 e n c e t h e p e r f o r m
0000460 a n c e o f a p p l i c a t
0000500 i o n s p r o g r a m s .
0000520 T h i s c h a p t e r c o n
0000540 t a i n s a c o l l e c t i
0000560 o n o f n o t e s w h i c
0000600 h m a y h e l p t h e u
0000620 s e r i m p r o v e t h e
0000640 p e r f o r m a n c e o f I
0000660 n t e r l i s p - D p r o g r
0000700 a m s . \r \r \r { B e g i n S u
0000720 b S e c V a r i a b l e B i
0000740 n d i n g s } \r { T i t l e V
0000760 a r i a b l e B i n d i n g s
0001000 } \r { T e x t \r \r { T a g G l
0001020 o b a l v a r s P e r f o r m a
0001040 n c e } \r \r \r A m a j o r d
0001060 i f f e r e n c e b e t w e e
0001100 n I n t e r l i s p - 1 0 a
0001120 n d I n t e r l i s p - D i
0001140 s t h e m e t h o d o f
0001160 a c c e s s i n g f r e e v
0001200 a r i a b l e s . I n t e r
0001220 l i s p - 1 0 u s e s w h a
0001240 t i s c a l l e d " s h a
0001260 l l o w " b i n d i n g .
0001300 I n t e r l i s p - D u s e
0001320 s w h a t i s c a l l e d
0001340 " d e e p " b i n d i n g .
0001360 \r \r T h e b i n d i n g o f
0001400 v a r i a b l e s o c c u r
0001420 s w h e n a f u n c t i o
0001440 n o r a { f n P R O G }
0001460 i s e n t e r e d . F o
0001500 r e x a m p l e , i f t h
0001520 e f u n c t i o n { l i s p
0001540 F O O } h a s t h e d e
0001560 f i n i t i o n { l i s p (
0001600 L A M B D A ( A B ) { a r
0001620 g B O D Y } ) } , t h e v
0001640 a r i a b l e s { l i s p A
0001660 } a n d { l i s p B } a
0001700 r e b o u n d s o t h a t
0001720 a n y r e f e r e n c e t
0001740 o { l i s p A } o r { l
0001760 i s p B } f r o m { a r g
0002000 B O D Y } o r a n y f u
0002020 n c t i o n c a l l e d f r
0002040 o m { a r g B O D Y } w i
0002060 l l r e f e r t o t h e
0002100 a r g u m e n t s t o t h e
0002120 f u n c t i o n { l i s p
0002140 F O O } a n d n o t t o
0002160 t h e v a l u e o f { l i
0002200 s p A } o r { l i s p B
0002220 } f r o m a h i g h e r
0002240 l e v e l f u n c t i o n .
0002260 A l l v a r i a b l e n a
0002300 m e s ( a t o m s ) h a v e
0002320 a t o p l e v e l v a l
0002340 u e c e l l w h i c h i s
0002360 u s e d i f t h e v a r
0002400 i a b l e h a s n o t b e
0002420 e n b o u n d i n a n y
0002440 f u n c t i o n . I n d
0002460 i s c u s s i o n s o f v a
0002500 r i a b l e a c c e s s , i
0002520 t i s u s e f u l t o d
0002540 i s t i n q u i s h b e t w e
0002560 e n t h r e e t y p e s o
0002600 f v a r i a b l e a c c e s
0002620 s : l o c a l , s p e c i a
0002640 l a n d g l o b a l . L
0002660 o c a l v a r i a b l e a c
0002700 c e s s i s t h e u s e
0002720 o f a v a r i a b l e t h
0002740 a t i s b o u n d w i t h
0002760 i n t h e f u n c t i o n
0003000 f r o m w h i c h i t i s
0003020 u s e d . S p e c i a l
0003040 v a r i a b l e a c c e s s
0003060 i s t h e u s e o f a
0003100 v a r i a b l e t h a t i s
0003120 b o u n d b y a n o t h e
0003140 r f u n c t i o n . G l o
0003160 b a l v a r i a b l e a c c
0003200 e s s i s t h e u s e o
0003220 f a v a r i a b l e t h a
0003240 t h a s n o t b e e n b
0003260 o u n d i n a n y f u n c
0003300 t i o n . W e w i l l o
0003320 f t e n r e f e r t o a
0003340 v a r i a b l e a l l o f
0003360 w h o s e a c c e s s e s a
0003400 r e l o c a l a s a " l
0003420 o c a l v a r i a b l e . "
0003440 S i m i l a r l y , a v a
0003460 r i a b l e a l l o f w h
0003500 o s e a c c e s s e s a r e
0003520 g l o b a l w e c a l l
0003540 a " g l o b a l v a r i a b
0003560 l e . " \r \r I n a " d e e p
0003600 " b o u n d s y s t e m ,
0003620 a v a r i a b l e i s b o
0003640 u n d b y s a v i n g o n
0003660 t h e s t a c k t h e v
0003700 a r i a b l e ' s n a m e t
0003720 o g e t h e r w i t h a v
0003740 a l u e c e l l w h i c h
0003760 c o n t a i n s t h a t v a
0004000 r i a b l e ' s n e w v a l
0004020 u e . W h e n a v a r i
0004040 a b l e i s a c c e s s e d
0004060 , i t s v a l u e i s f
0004100 o u n d b y s e a r c h i n
0004120 g t h e s t a c k f o r
0004140 t h e m o s t r e c e n t
0004160 b i n d i n g ( o c c u r r e
0004200 n c e ) a n d r e t r i e v
0004220 i n g t h e v a l u e s t
0004240 o r e d t h e r e . I f
0004260 t h e v a r i a b l e i s
0004300 n o t f o u n d o n t h e
0004320 s t a c k , t h e v a r i
0004340 a b l e ' s t o p l e v e l
0004360 v a l u e c e l l i s u
0004400 s e d . \r \r I n a " s h a l
0004420 l o w " b o u n d s y s t e
0004440 m , a v a r i a b l e i s
0004460 b o u n d b y s a v i n g
0004500 o n t h e s t a c k t h
0004520 e v a r i a b l e n a m e
0004540 a n d t h e v a r i a b l e
0004560 ' s o l d v a l u e a n d
0004600 p u t t i n g t h e n e w
0004620 v a l u e i n t h e v a
0004640 r i a b l e ' s t o p l e v
0004660 e l v a l u e c e l l .
0004700 W h e n a v a r i a b l e
0004720 i s a c c e s s e d , i t s
0004740 v a l u e i s a l w a y s
0004760 f o u n d i n i t s t o
0005000 p l e v e l v a l u e c e
0005020 l l . \r \r T h e d e e p b i
0005040 n d i n g s c h e m e h a s
0005060 o n e d i s a d v a n t a g
0005100 e : t h e a m o u n t o f
0005120 c p u t i m e r e q u i r
0005140 e d t o f e t c h t h e
0005160 v a l u e o f a v a r i a
0005200 b l e d e p e n d s o n t
0005220 h e s t a c k d i s t a n c
0005240 e b e t w e e n i t s u s
0005260 e a n d i t s b i n d i n
0005300 g . T h e c o m p i l e r
0005320 c a n d e t e r m i n e l
0005340 o c a l v a r i a b l e a c
0005360 c e s s e s a n d c o m p i
0005400 l e s t h e m a s f e t c
0005420 h e s d i r e c t l y f r o
0005440 m t h e s t a c k . T h
0005460 u s t h i s c o m p u t a t
0005500 i o n c o s t o n l y a r
0005520 i s e s i n t h e u s e
0005540 o f v a r i a b l e n o t
0005560 b o u n d i n t h e l o c
0005600 a l f r a m e ( " f r e e "
0005620 v a r i a b l e s ) . T h
0005640 e p r o c e s s o f f i n
0005660 d i n g t h e v a l u e o
0005700 f a f r e e v a r i a b l
0005720 e i s c a l l e d f r e e
0005740 v a r i a b l e l o o k u p
0005760 . \r \r I n a s h a l l o w
0006000 b o u n d s y s t e m , t h
0006020 e a m o u n t o f c p u
0006040 t i m e r e q u i r e d t o
0006060 f e t c h t h e v a l u e
0006100 o f a v a r i a b l e i
0006120 s c o n s t a n t r e g a r
0006140 d l e s s o f w h e t h e r
0006160 t h e v a r i a b l e i s
0006200 l o c a l , s p e c i a l
0006220 o r g l o b a l . T h e
0006240 d i s a d v a n t a g e s o f
0006260 t h i s s c h e m e a r e
0006300 t h a t t h e a c t u a l
0006320 b i n d i n g o f a v a
0006340 r i a b l e t a k e s l o n
0006360 g e r ( t h u s s l o w i n
0006400 g d o w n f u n c t i o n
0006420 c a l l ) , t h e c e l l s
0006440 t h a t c o n t a i n t h
0006460 e c u r r e n t i n u s e
0006500 v a l u e s a r e s p r e
0006520 a d t h r o u g h o u t t h
0006540 e s p a c e o f a l l a
0006560 t o m v a l u e c e l l s
0006600 ( t h u s i n c r e a s i n g
0006620 t h e w o r k i n g s e t
0006640 s i z e o f f u n c t i o
0006660 n s ) a n d c o n t e x t
0006700 s w i t c h i n g b e t w e e
0006720 n p r o c e s s e s r e q u
0006740 i r e s u n w i n d i n g a
0006760 n d r e w i n d i n g t h e
0007000 s t a c k ( t h u s e f f
0007020 e c t i v e l y p r o h i b i
0007040 t i n g t h e u s e o f
0007060 c o n t e x t s w i t c h i n
0007100 g f o r m a n y a p p l i
0007120 c a t i o n s ) . \r \r A d e e
0007140 p b i n d i n g s c h e m e
0007160 w a s c h o o s e n f o r
0007200 I n t e r l i s p - D b e c
0007220 a u s e o f t h e w o r k
0007240 i n g s e t c o n s i d e r
0007260 a t i o n s a n d t h e s
0007300 p e e d o f c o n t e x t
0007320 s w i t c h i n g , w h i c h
0007340 w e e x p e c t e d t o
0007360 u s e h e a v i l y w h e n
0007400 p r o c e s s e s w e r e
0007420 a d d e d . T h e f r e e
0007440 v a r i a b l e l o o k u p
0007460 r o u t i n e w a s m i c
0007500 r o c o d e d , t h u s g r
0007520 e a t l y r e d u c i n g t
0007540 h e s e a r c h t i m e .
0007560 I n t h e b e n c h m a r
0007600 k s w e p e r f o r m e d ,
0007620 t h e l a r g e s t p e r
0007640 c e n t a g e o f f r e e
0007660 v a r i a b l e l o o k u p
0007700 t i m e w a s 2 0 p e r c
0007720 e n t o f t h e t o t a l
0007740 e l l a p s e d t i m e ;
0007760 t h e n o r m a l t i m e
0010000 w a s b e t w e e n 5 a n
0010020 d 1 0 p e r c e n t . \r \r O
0010040 n e c o n s e q u e n c e o
0010060 f I n t e r l i s p - D ' s
0010100 d e e p b i n d i n g s c h
0010120 e m e i s t h a t u s e r
0010140 s m a y s i g n i f i c a n
0010160 t l y i m p r o v e p e r f
0010200 o r m a n c e b y d e c l a
0010220 r i n g g l o b a l v a r i
0010240 a b l e s i n c e r t a i n
0010260 s i t u a t i o n s . I f
0010300 a v a r i a b l e i s d
0010320 e c l a r e d g l o b a l ,
0010340 t h e c o m p i l e r w i l
0010360 l c o m p i l e a n a c c
0010400 e s s t o t h a t v a r i
0010420 a b l e a s a r e t r i e
0010440 v a l o f i t s t o p l
0010460 e v e l v a l u e , c o m p
0010500 l e t e l y b y p a s s i n g
0010520 a s t a c k s e a r c h .
0010540 T h i s s h o u l d b e
0010560 d o n e o n l y f o r v
0010600 a r i a b l e s t h a t a r
0010620 e n e v e r b o u n d i n
0010640 f u n c t i o n s s u c h
0010660 a s g l o b a l d a t a b a
0010700 s e s a n d f l a g s . \r \r
0010720 G l o b a l v a r i a b l e
0010740 d e c l a r a t i o n s s h o
0010760 u l d b e d o n e u s i n
0011000 g t h e { f i l e c o m G
0011020 L O B A L V A R S } f i l e
0011040 p a c k a g e c o m m a n d
0011060 ( { P a g e R e f F i l e C o
0011100 m G L O B A L V A R S } ) .
0011120 I t s f o r m i s { l i
0011140 s p ( G L O B A L V A R S
0011160 { a r g V A R { s u b 1 } }
0011200 { e l l i p s i s } { a r g
0011220 V A R { s u b N } } ) } . \r
0011240 \r A n o t h e r w a y o f
0011260 i m p r o v i n g p e r f o r
0011300 m a n c e i s t o d e c l
0011320 a r e v a r i a b l e s a s
0011340 l o c a l w i t h i n a
0011360 f u n c t i o n . N o r m a
0011400 l l y , a l l v a r i a b l
0011420 e s b o u n d w i t h i n
0011440 a f u n c t i o n h a v e
0011460 t h e i r n a m e s p u t
0011500 o n t h e s t a c k , a n
0011520 d t h e s e n a m e s a r
0011540 e s c a n n e d d u r i n g
0011560 f r e e v a r i a b l e l
0011600 o o k u p . I f a v a r
0011620 i a b l e i s d e c l a r e
0011640 d t o b e l o c a l w i
0011660 t h i n a f u n c t i o n ,
0011700 i t s n a m e i s n o t
0011720 p u t o n t h e s t a c
0011740 k , s o i t i s n o t
0011760 s c a n n e d d u r i n g f
0012000 r e e v a r i a b l e l o o
0012020 k u p , w h i c h m a y i
0012040 n c r e a s e t h e s p e e
0012060 d o f l o o k u p s . T
0012100 h e c o m p i l e r c a n
0012120 a l s o m a k e s o m e o
0012140 t h e r o p t i m i z a t i o
0012160 n s i f a v a r i a b l e
0012200 i s k n o w n t o b e
0012220 l o c a l t o a f u n c t
0012240 i o n . \r \r A v a r i a b l e
0012260 m a y b e d e c l a r e d
0012300 a s l o c a l w i t h i n
0012320 a f u n c t i o n b y i
0012340 n c l u d i n g t h e f o r
0012360 m \r { l i s p ( D E C L A R E
0012400 ( L O C A L V A R S { a r g
0012420 V A R { s u b 1 } } { e l
0012440 l i p s i s } { a r g V A R
0012460 { s u b N } } ) ) } f o l l
0012500 o w i n g t h e a r g u m e
0012520 n t l i s t i n t h e d
0012540 e f i n i t i o n o f t h e
0012560 f u n c t i o n . N o t e
0012600 : l o c a l v a r i a b l e
0012620 d e c l a r a t i o n s o n
0012640 l y e f f e c t t h e c o
0012660 m p i l a t i o n o f a f
0012700 u n c t i o n . I n t e r p
0012720 r e t e d f u n c t i o n s
0012740 p u t a l l o f t h e i r
0012760 v a r i a b l e n a m e s
0013000 o n t h e s t a c k , r e
0013020 g a r d l e s s o f a n y
0013040 d e c l a r a t i o n s . \r \r \r
0013060 } { E n d S u b S e c V a r
0013100 i a b l e B i n d i n g s } \r
0013120 \r \r \r { B e g i n S u b S e c
0013140 G a r b a g e C o l l e c t
0013160 i o n } \r { T i t l e G a r b
0013200 a g e C o l l e c t i o n } \r
0013220 { T e x t \r \r { n o t e I k
0013240 n o w t h a t t h i s s t
0013260 a r t s a b i t t o o s
0013300 i m p l e - - - b u t I
0013320 w a n t e d t o e m p h a s
0013340 i z e t h e p r o b l e m
0013360 o f d a t a f r a g m e n t
0013400 a t i o n , s o t h a t I
0013420 c o u l d l a t e r p o i
0013440 n t o u t t h a t f r e q
0013460 u e n t i n c r e m e n t a l
0013500 G C w i l l h e l p w i
0013520 t h t h i s b y k e e p i
0013540 n g t h e w o r k i n g s
0013560 e t s m a l l ( a n d s o
0013600 t h a t I c o u l d p o
0013620 i n t o u t t h a t j u s
0013640 t h a v i n g a l a r g e
0013660 a d d r e s s s p a c e w
0013700 o n ' t h e l p w i t h t
0013720 h i s p r o b l e m ) . I
0013740 t h i n k t h a t i f t
0013760 h i s s e c t i o n i s s
0014000 i m p l e a n d c l e a r
0014020 t h a t i t m i g h t b e
0014040 c o m e s o m e t h i n g y
0014060 o u c o u l d s h o w c u
0014100 s t o m e r s , r a t h e r
0014120 t h a n h a v i n g t o r
0014140 e p e a t e d l y m a k e t
0014160 h e s a m e a r g u m e n t
0014200 s a b o u t r e f e r e n c
0014220 e c o u n t i n g v s . m
0014240 a r k - a n d - s w e e p G C
0014260 - - - m j s } \r \r \r A s a
0014300 n I n t e r l i s p - D a p
0014320 p l i c a t i o n s p r o g r
0014340 a m r u n s , i t c r e a
0014360 t e s d a t a s t r u c t u
0014400 r e s ( a l l o c a t e d o
0014420 u t o f f r e e s t o r a
0014440 g e s p a c e ) , m a n i p
0014460 u l a t e s t h e m , a n d
0014500 t h e n d i s c a r d s t
0014520 h e m . I f t h e r e w
0014540 e r e n o w a y o f r e
0014560 c l a i m i n g t h i s s p
0014600 a c e , o v e r t i m e t
0014620 h e I n t e r l i s p - D m
0014640 e m o r y ( b o t h t h e
0014660 p h y s i c a l m e m o r y
0014700 i n t h e m a c h i n e a
0014720 n d t h e v i r t u a l m
0014740 e m o r y s t o r e d o n
0014760 t h e d i s k ) w o u l d
0015000 g e t f i l l e d u p , a
0015020 n d t h e c o m p u t a t i
0015040 o n w o u l d c o m e t o
0015060 a h a l t . A c t u a l
0015100 l y , l o n g b e f o r e
0015120 t h i s w o u l d h a p p e
0015140 n t h e s y s t e m w o u
0015160 l d p r o b a b l y b e c o
0015200 m e i n t o l e r a b l y s
0015220 l o w , d u e t o " d a t
0015240 a f r a g m e n t a t i o n "
0015260 , w h i c h o c c u r s w
0015300 h e n t h e d a t a c u r
0015320 r e n t l y i n u s e a r
0015340 e s p r e a d o v e r m a
0015360 n y v i r t u a l m e m o r
0015400 y p a g e s , s o t h a t
0015420 m o s t o f t h e c o m
0015440 p u t e r t i m e m u s t
0015460 b e s p e n t s w a p p i n
0015500 g d i s k p a g e s i n t
0015520 o p h y s i c a l m e m o r
0015540 y . T h i s p r o b l e m
0015560 ( " f r a g m e n t a t i o n
0015600 " ) w i l l o c c u r i n
0015620 a n y s i t u a t i o n w
0015640 h e r e t h e v i r t u a l
0015660 m e m o r y i s s i g n i
0015700 f i c a n t l y l a r g e r
0015720 t h a n t h e r e a l , p
0015740 h y s i c a l m e m o r y .
0015760 T o r e d u c e s w a p p i
0016000 n g , i t i s d e s i r a
0016020 b l e t o k e e p t h e
0016040 " w o r k i n g s e t " ( t
0016060 h e s e t o f p a g e s
0016100 c o n t a i n i n g a c t i v
0016120 e l y r e f e r e n c e d d
0016140 a t a ) a s s m a l l a s
0016160 p o s s i b l e . \r \r I t i
0016200 s p o s s i b l e t o w r
0016220 i t e p r o g r a m s t h a
0016240 t d o n ' t g e n e r a t e
0016260 m u c h " g a r b a g e "
0016300 d a t a , o r w h i c h r
0016320 e c y c l e d a t a , b u t
0016340 s u c h p r o g r a m s t
0016360 e n d t o b e o v e r l y
0016400 c o m p l i c a t e d a n d
0016420 f r o u g h t w i t h p i
0016440 t f a l l s . S p e n d i n
0016460 g e f f o r t w r i t i n g
0016500 s u c h p r o g r a m s d
0016520 e f e a t s t h e w h o l e
0016540 p o i n t o f u s i n g
0016560 a s y s t e m w i t h a u
0016600 t o m a t i c s t o r a g e
0016620 a l l o c a t i o n . A n
0016640 i m p o r t a n t p a r t o
0016660 f a n y L i s p i m p l e
0016700 m e n t a t i o n i s t h e
0016720 " g a r b a g e c o l l e c
0016740 t o r " w h i c h i d e n t
0016760 i f i e s d i s c a r d e d
0017000 d a t a a n d r e c l a i m
0017020 s i t s s p a c e . T h
0017040 e r e a r e s e v e r a l
0017060 w e l l - k n o w n a p p r o
0017100 a c h e s t o g a r b a g e
0017120 c o l l e c t i o n . I n
0017140 t e r l i s p - 1 0 u s e s
0017160 t h e t r a d i t i o n a l
0017200 m a r k - a n d - s w e e p g
0017220 a r b a g e c o l l e c t i o
0017240 n a l g o r i t h m , w h i
0017260 c h i d e n t i f i e s " g
0017300 a r b a g e " d a t a b y
0017320 " w a l k i n g " t h r o u g
0017340 h a n d " m a r k i n g "
0017360 a l l a c c e s s i b l e d
0017400 a t a s t r u c t u r e s ,
0017420 a n d t h e n s w e e p i n
0017440 g t h r o u g h t h e d a
0017460 t a s p a c e s t o f i n
0017500 d a l l u n m a r k e d o
0017520 b j e c t s ( i . e . , n o
0017540 t r e f e r e n c e d b y
0017560 a n y o t h e r o b j e c t
0017600 ) . A l t h o u g h t h
0017620 i s m e t h o d i s g u a
0017640 r a n t e e d t o r e c l a
0017660 i m a l l g a r b a g e ,
0017700 i t t a k e s t i m e p r
0017720 o p o r t i o n a l t o t h
0017740 e n u m b e r o f a l l o
0017760 c a t e d o b j e c t s , w
0020000 h i c h m a y b e v e r y
0020020 l a r g e . ( S o m e a
0020040 l l o c a t e d o b j e c t s
0020060 w i l l h a v e b e e n
0020100 m a r k e d d u r i n g t h
0020120 e " m a r k " p h a s e ,
0020140 a n d t h e r e m a i n d e
0020160 r w i l l b e c o l l e c
0020200 t e d d u r i n g t h e "
0020220 s w e e p " p h a s e ; s o
0020240 a l l w i l l h a v e t
0020260 o b e t o u c h e d i n
0020300 s o m e w a y . ) A l s o
0020320 , t h e t i m e t h a t
0020340 a m a r k - a n d - s w e e p
0020360 g a r b a g e c o l l e c t
0020400 i o n t a k e s i s i n d
0020420 e p e n d e n t o f t h e
0020440 a m o u n t o f g a r b a g
0020460 e c o l l e c t e d ; i t
0020500 i s p o s s i b l e t o s
0020520 w e e p t h r o u g h t h e
0020540 w h o l e v i r t u a l m
0020560 e m o r y , a n d o n l y
0020600 r e c o v e r a s m a l l
0020620 a m o u n t o f g a r b a g
0020640 e . \r \r F o r i n t e r a c t
0020660 i v e a p p l i c a t i o n s
0020700 , i t i s s i m p l y n
0020720 o t a c c e p t a b l e t o
0020740 h a v e l o n g i n t e r
0020760 r u p t i o n s i n a c o
0021000 m p u t a t i o n f o r t h
0021020 e p u r p o s e o f g a r
0021040 b a g e c o l l e c t i o n .
0021060 I n t e r l i s p - D s o
0021100 l v e s t h i s p r o b l e
0021120 m b y u s i n g a r e f
0021140 e r e n c e - c o u n t i n g
0021160 g a r b a g e c o l l e c t o
0021200 r . W i t h t h i s s c
0021220 h e m e , t h e r e i s a
0021240 t a b l e c o n t a i n i n
0021260 g c o u n t s o f h o w
0021300 m a n y t i m e s e a c h
0021320 o b j e c t i s r e f e r e
0021340 n c e d . T h i s t a b l
0021360 e i s i n c r e m e n t a l
0021400 l y u p d a t e d a s p o
0021420 i n t e r s a r e c r e a t
0021440 e d a n d d i s c a r d e d
0021460 , i n c u r r i n g a s m
0021500 a l l o v e r h e a d d i s
0021520 t r i b u t e d o v e r t h
0021540 e c o m p u t a t i o n a s
0021560 a w h o l e . ( N o t e
0021600 : R e f e r e n c e s f r o
0021620 m t h e s t a c k a r e
0021640 n o t c o u n t e d , b u t
0021660 a r e h a n d l e d s e p
0021700 a r a t e l y a t " s w e e
0021720 p " t i m e ; t h u s t h
0021740 e v a s t m a j o r i t y
0021760 o f d a t a m a n i p u l a
0022000 t i o n s d o n o t c a u
0022020 s e u p d a t e s t o t h
0022040 i s t a b l e . ) A t o
0022060 p p o r t u n e m o m e n t s
0022100 , t h e g a r b a g e c o
0022120 l l e c t o r s c a n s t h
0022140 i s t a b l e , a n d r e
0022160 c l a i m s a l l o b j e c
0022200 t s t h a t a r e n o l
0022220 o n g e r a c c e s s i b l e
0022240 ( h a v e a r e f e r e n
0022260 c e c o u n t o f z e r o
0022300 ) . T h e t i m e f o r
0022320 s c a n n i n g t h e r e
0022340 f e r e n c e c o u n t t a
0022360 b l e s i s v e r y n e a
0022400 r l y c o n s t a n t ( a b
0022420 o u t 0 . 2 s e c o n d s
0022440 o n t h e X e r o x 1 1 0
0022460 0 ) ; t h e s w e e p t i
0022500 m e t h e n i s t h i s
0022520 s m a l l v a l u e , p l u
0022540 s t i m e p r o p o r t i o
0022560 n a l t o t h e a m o u n
0022600 t o f g a r b a g e t h a
0022620 t h a s t o b e c o l l
0022640 e c t e d ( t y p i c a l l y
0022660 l e s s t h a n a s e c
0022700 o n d ) . " O p p o r t u n
0022720 e " t i m e s o c c u r w
0022740 h e n a c e r t a i n n u
0022760 m b e r o f c e l l s h a
0023000 v e b e e n a l l o c a t e
0023020 d o r w h e n t h e s y
0023040 s t e m h a s b e e n w a
0023060 i t i n g f o r t h e u s
0023100 e r t o t y p e s o m e t
0023120 h i n g f o r l o n g e n
0023140 o u g h . T h e f r e q u
0023160 e n c y o f g a r b a g e
0023200 c o l l e c t i o n i s c o
0023220 n t r o l l e d b y t h e
0023240 f u n c t i o n s a n d v a
0023260 r i a b l e s d e s c r i b e
0023300 d o n { P a g e R e f F n
0023320 R E C L A I M M I N } . F
0023340 o r t h e b e s t s y s t
0023360 e m p e r f o r m a n c e ,
0023400 i t i s d e s i r a b l e
0023420 t o a d j u s t t h e s e
0023440 p a r a m e t e r s f o r f
0023460 r e q u e n t , s h o r t g
0023500 a r b a g e c o l l e c t i o
0023520 n s , w h i c h w i l l n
0023540 o t i n t e r r u p t i n t
0023560 e r a c t i v e a p p l i c a
0023600 t i o n s f o r v e r y l
0023620 o n g , a n d w h i c h w
0023640 i l l h a v e t h e a d d
0023660 e d b e n e f i t o f r e
0023700 d u c i n g d a t a f r a g
0023720 m e n t a t i o n , k e e p i
0023740 n g t h e w o r k i n g s
0023760 e t s m a l l . \r \r { n o t e
0024000 \r T h e r e s e e m s
0024020 t o b e a g r e a t d
0024040 e a l o f c o n f u s i o n
0024060 a s t o t h e a d v a n
0024100 t a g e s o f t h e I n t
0024120 e r l i s p - D g a r b a g e
0024140 c o l l e c t i o n s c h e
0024160 m e . P l e a s e n o t e
0024200 t h a t i t ' s " s w e e
0024220 p " p h a s e i s * * *
0024240 i s o m o r p h i c * * * t
0024260 o t h a t o f t h e s t
0024300 a n d a r d m a r k - a n d -
0024320 s w e e p a l g o r i t h m ;
0024340 t h e l a t t e r m e r e
0024360 l y s c a n s t h e n o n
0024400 - z e r o " b i t t a b l e
0024420 s " , c o l l e c t i n g t
0024440 h e u n m a r k e d i t e m
0024460 s . T h e " C o l l e c t i
0024500 n g " i s o f c o u r s e
0024520 e x a c t l y t h e s a m
0024540 e i n e a c h s c h e m e
0024560 ; a n d s i n c e t h e
0024600 I n t e r l i s p - D s c h e
0024620 m e r e q u i r e s s c a n
0024640 n i n g t h e h a s h t a b
0024660 l e * * * w h i c h g r o
0024700 w s i n s i z e a s t h
0024720 e n u m b e r o f a l l o
0024740 c a t e d o b j e c t s g r
0024760 o w s * * * t h e n t h i
0025000 s i s e n t i r e l y e q
0025020 u i v a l e n t t o s c a n
0025040 n i n g t h e " b i t t a
0025060 b l e s " ( o f , s a y ,
0025100 P D P 1 0 M a c L i s p - -
0025120 I ' m c o n f i d e n t t
0025140 h a t P D P 1 0 I n t e r l
0025160 i s p i s d o n e t h e
0025200 s a m e w a y ) . T h e r
0025220 e a r e n o " b i t t a
0025240 b l e s " a l l o c a t e d
0025260 f o r v i r t u a l m e m o
0025300 r y w h i c h h a s n ' t
0025320 b e e n " c o n s ' d i n t
0025340 o " y e t ! I n f a c t
0025360 , a t y p i c a l P D P 1
0025400 0 M a c L i s p a p p l i c
0025420 a t i o n h a s a b o u t
0025440 3 % o f i t s i n - u s e
0025460 a d d r e s s s p a c e d
0025500 e v o t e d t o " b i t t
0025520 a b l e s " ; I ' v e o b
0025540 s e r v e d t h e s a m e
0025560 f i g u r e f o r t h e s
0025600 i z e o f t h e g c h a
0025620 s h t a b l e s i n I n t e
0025640 r l i s p - D . \r T h u
0025660 s , t h e r e a l a d v a
0025700 n t a g e i s t h e i n c
0025720 r e m e n t a l n a t u r e
0025740 o f " m a r k i n g " - -
0025760 t h e o n l y t i m e t h
0026000 a t I n t e r l i s p - D i
0026020 s " c a t a t o n i c " i s
0026040 d u r i n g t h e s w e e
0026060 p p h a s e , w h e r e a s
0026100 I n t e r l i s p - 1 0 w i
0026120 l l b e " c a t a t o n i c
0026140 " d u r i n g t h e e n t
0026160 i r e m a r k - a n d - s w e
0026200 e p p h a s e ; a n d i t
0026220 i s t h e m a r k p h a
0026240 s e t h a t g e n e r a l l
0026260 y c o n s u m e s t h e l
0026300 i o n ' s s h a r e o f G
0026320 C t i m e . \r J o n L
0026340 8 / 1 0 / 8 3 \r } \r \r O n e
0026360 p r o b l e m w i t h t h
0026400 e I n t e r l i s p - D g a
0026420 r b a g e c o l l e c t o r
0026440 i s t h a t n o t a l l
0026460 g a r b a g e i s g u a r a
0026500 n t e e d t o b e c o l l
0026520 e c t e d . C i r c u l a r
0026540 d a t a s t r u c t u r e s
0026560 , w h i c h p o i n t t o
0026600 t h e m s e l v e s d i r e
0026620 c t l y o r i n d i r e c t
0026640 l y , a r e n e v e r r e
0026660 c l a i m e d , s i n c e t
0026700 h e i r r e f e r e n c e c
0026720 o u n t s a r e a l w a y s
0026740 a t l e a s t o n e .
0026760 W i t h t i m e , t h i s
0027000 u n r e c l a i m a b l e g a
0027020 r b a g e m a y i n c r e a
0027040 s e t h e w o r k i n g s
0027060 e t t o u n a c c e p t a b
0027100 l e l e v e l s . S o m e
0027120 u s e r s h a v e w o r k
0027140 e d w i t h t h e s a m e
0027160 I n t e r l i s p - D v i r
0027200 t u a l m e m o r y f o r
0027220 a v e r y l o n g t i m e
0027240 , b u t i t i s a g o
0027260 o d i d e a t o o c c a s
0027300 i o n a l l y s a v e a l l
0027320 o f y o u r f u n c t i o
0027340 n s i n f i l e s , r e i
0027360 n i t i a l i z e I n t e r l
0027400 i s p - D , a n d r e b u i
0027420 l d y o u r s y s t e m .
0027440 M a n y u s e r s e n d
0027460 t h e i r w o r k i n g d a
0027500 y b y i s s u i n g a c
0027520 o m m a n d t o r e b u i l
0027540 d t h e i r s y s t e m a
0027560 n d t h e n l e a v i n g
0027600 t h e m a c h i n e t o p
0027620 e r f o r m t h i s t a s k
0027640 i n t h e i r a b s e n c
0027660 e . I f t h e s y s t e
0027700 m s e e m s t o b e s p
0027720 e n d i n g t o o m u c h
0027740 t i m e s w a p p i n g ( a
0027760 n i n d i c a t i o n o f
0030000 f r a g m e n t e d w o r k i
0030020 n g s e t ) , t h i s p r
0030040 o c e d u r e i s d e f i n
0030060 i t e l y r e c o m m e n d e
0030100 d . \r \r \r } { E n d S u b S e
0030120 c G a r b a g e C o l l e c
0030140 t i o n } \r \r \r \r { B e g i n
0030160 S u b S e c D a t a t y p e s
0030200 } \r { T i t l e D a t a t y p
0030220 e s } \r { T e x t \r \r I f a n
0030240 a p p l i c a t i o n s p r
0030260 o g r a m u s e s d a t a
0030300 s t r u c t u r e s t h a t
0030320 a r e l a r g e ( m o r e
0030340 t h a n 8 f i e l d s ) a
0030360 n d t h a t a r e u s e d
0030400 a l o t , t h e r e a r
0030420 e s e v e r a l a d v a n t
0030440 a g e s t o r e p r e s e n
0030460 t i n g t h e m a s u s e
0030500 r { l i s p D A T A T Y P E
0030520 } s r a t h e r t h a n a
0030540 s { l i s p R E C O R D } s
0030560 . T h e p r i m a r y a
0030600 d v a n t a g e i s i n c r
0030620 e a s e d s p e e d : a c c
0030640 e s s i n g a n d s e t t i
0030660 n g t h e f i e l d s o f
0030700 a { l i s p D A T A T Y P
0030720 E } c a n b e s i g n i f
0030740 i c a n t l y f a s t e r t
0030760 h a n w a l k i n g t h r o
0031000 u g h a { l i s p R E C O
0031020 R D } l i s t w i t h r e
0031040 p e a t e d { l i s p C A R
0031060 } s a n d { l i s p C D R
0031100 } s . A l s o , c o m p i
0031120 l e d c o d e f o r r e f
0031140 e r e n c i n g u s e r { l
0031160 i s p D A T A T Y P E } s i
0031200 s u s u a l l y s m a l l e
0031220 r . F i n a l l y , b y
0031240 r e d u c i n g t h e n u m
0031260 b e r o f o b j e c t s c
0031300 r e a t e d ( o n e { l i s
0031320 p D A T A T Y P E } o b j e
0031340 c t a g a i n s t m a n y
0031360 { l i s p R E C O R D } l i
0031400 s t c e l l s ) , t h i s
0031420 c a n r e d u c e t h e e
0031440 x p e n s e o f g a r b a g
0031460 e c o l l e c t i o n . \r \r F
0031500 o r c o d e t h a t h a s
0031520 b e e n w r i t t e n u s
0031540 i n g t h e r e c o r d p
0031560 a c k a g e ' s { l i s p f
0031600 e t c h } , { l i s p r e p
0031620 l a c e } , a n d { l i s p
0031640 c r e a t e } o p e r a t i
0031660 o n s , c h a n g i n g f r
0031700 o m { l i s p R E C O R D }
0031720 s t o { l i s p D A T A T
0031740 Y P E } s o n l y r e q u i
0031760 r e s e d i t i n g t h e
0032000 r e c o r d d e c l a r a t i
0032020 o n ( u s i n g { f n E D
0032040 I T R E C } ) t o r e p l a
0032060 c e d e c l a r a t i o n t
0032100 y p e { l i s p R E C O R D
0032120 } b y { l i s p D A T A T
0032140 Y P E } , a n d r e c o m p
0032160 i l i n g . \r \r { N o t e T h
0032200 e r e a r e s o m e m i n
0032220 o r d i s a d v a n t a g e s
0032240 w i t h u s i n g { l i s
0032260 p D A T A T Y P E } s : F
0032300 i r s t , t h e r e i s a
0032320 n u p p e r l i m i t o n
0032340 t h e n u m b e r o f {
0032360 l i s p D A T A T Y P E } s
0032400 w h i c h c a n e x i s t .
0032420 A l s o , s p a c e f o
0032440 r { l i s p D A T A T Y P E
0032460 } s i s a l l o c a t e d
0032500 a p a g e a t a t i m e
0032520 , s o e a c h { l i s p
0032540 D A T A T Y P E } h a s a t
0032560 l e a s t o n e p a g e
0032600 a s s i g n e d t o i t ,
0032620 w h i c h m a y b e w a s
0032640 t e f u l o f s p a c e i
0032660 f t h e r e a r e o n l y
0032700 a f e w e x a m p l e s
0032720 o f a g i v e n { l i s p
0032740 D A T A T Y P E } . T h e
0032760 s e p r o b l e m s s h o u
0033000 l d n o t e f f e c t m o
0033020 s t a p p l i c a t i o n s
0033040 p r o g r a m s . \r } \r \r } { E
0033060 n d S u b S e c D a t a t y
0033100 p e s } \r \r \r \r \r { B e g i n
0033120 S u b S e c I n c o m p l e t
0033140 e F i l e n a m e s } \r { T i
0033160 t l e I n c o m p l e t e F
0033200 i l e n a m e s } \r { T e x t \r
0033220 \r T h e r e i s a s i g n
0033240 i f i c a n t p r o b l e m
0033260 i n I n t e r l i s p - D (
0033300 a n d i n I n t e r l i s p
0033320 - 1 0 ) w i t h r e s p e c
0033340 t t o u s i n g i n c o m
0033360 p l e t e f i l e n a m e s .
0033400 W h e n e v e r a n I /
0033420 O f u n c t i o n i s g i
0033440 v e n a n i n c o m p l e t
0033460 e f i l e n a m e ( o n e
0033500 w h i c h d o e s n ' t h a
0033520 v e t h e d e v i c e / h o
0033540 s t , d i r e c t o r y , n
0033560 a m e , e x t e n s i o n ,
0033600 a n d v e r s i o n n u m b
0033620 e r a l l s u p p l i e d )
0033640 , t h e s y s t e m h a s
0033660 t o c o n v e r t i t t
0033700 o a c o m p l e t e f i l
0033720 e n a m e , b y s u p p l y
0033740 i n g d e f a u l t s a n d
0033760 s e a r c h i n g t h r o u
0034000 g h d i r e c t o r i e s (
0034020 w h i c h m a y b e o n
0034040 r e m o t e f i l e s e r v
0034060 e r s ) . C u r r e n t l y
0034100 , w o r k i s b e i n g
0034120 d o n e o n s p e e d i n g
0034140 u p t h e f i l e n a m e
0034160 - c o m p l e t i o n p r o c
0034200 e s s , b u t i n a n y
0034220 c a s e i t i s m u c h
0034240 f a s t e r t o c o n v e r
0034260 t a n i n c o m p l e t e
0034300 f i l e n a m e o n c e , a
0034320 n d u s e t h e c o m p l
0034340 e t e f i l e n a m e f r o
0034360 m t h e n o n . F o r
0034400 e x a m p l e , s u p p o s e
0034420 a f i l e i s o p e n e
0034440 d w i t h { l i s p ( S E
0034460 T Q F U L L N A M E ( O P E
0034500 N F I L E ' M Y N A M E ' I
0034520 N P U T ) ) } . A f t e r
0034540 d o i n g t h i s , { l i s
0034560 p ( R E A D C ' M Y N A M E
0034600 ) } a n d { l i s p ( R E
0034620 A D C F U L L N A M E ) } w
0034640 o u l d b o t h w o r k ,
0034660 b u t { l i s p ( R E A D C
0034700 ' M Y N A M E ) } w o u l d
0034720 t a k e l o n g e r ( s o
0034740 m e t i m e s o r d e r s o
0034760 f m a g n i t u d e l o n g
0035000 e r ) . T h i s c o u l d
0035020 s e r i o u s l y e f f e c
0035040 t t h e p e r f o r m a n c
0035060 e i f a p r o g r a m w
0035100 h i c h i s d o i n g m a
0035120 n y I / O o p e r a t i o n
0035140 s . \r \r } { E n d S u b S e c
0035160 I n c o m p l e t e F i l e
0035200 n a m e s } \r \r \r { B e g i n
0035220 S u b S e c T u r n i n g O
0035240 f f t h e D i s p l a y } \r
0035260 { T i t l e T u r n i n g O
0035300 f f t h e D i s p l a y } \r
0035320 { T e x t \r \r M a i n t a i n i
0035340 n g t h e v i d e o i m a
0035360 g e o n t h e s c r e e n
0035400 u s e s a b o u t 3 0 %
0035420 o f t h e c p u c y c l e
0035440 s ( o n t h e X e r o x
0035460 1 1 0 0 ) , s o t u r n i n
0035500 g o f f t h e d i s p l a
0035520 y w i l l i m p r o v e t
0035540 h e s p e e d o f c o m p
0035560 u t e - b o u n d t a s k s .
0035600 W h e n t h e d i s p l
0035620 a y i s o f f , t h e s
0035640 c r e e n w i l l b e w h
0035660 i t e b u t a n y p r i n
0035700 t i n g o r d i s p l a y i
0035720 n g t h a t t h e p r o g
0035740 r a m d o e s w i l l b e
0035760 v i s i b l e w h e n t h
0036000 e d i s p l a y i s t u r
0036020 n e d b a c k o n . N o
0036040 t e : B r e a k s a n d
0036060 { f n P A G E F U L L F N }
0036100 w a i t i n g t u r n t h e
0036120 d i s p l a y o n , b u t
0036140 u s e r s s h o u l d b e
0036160 a w a r e t h a t i t i
0036200 s p o s s i b l e t o h a
0036220 v e t h e s y s t e m w a
0036240 i t i n g f o r a r e s p
0036260 o n s e t o a q u e s t i
0036300 o n p r i n t e d o r a
0036320 m e n u d i s p l a y e d o
0036340 n a n o n - v i s i b l e
0036360 p a r t o f t h e s c r e
0036400 e n . T h e f o l l o w i
0036420 n g f u n c t i o n s a r e
0036440 p r o v i d e d t o t u r
0036460 n t h e d i s p l a y o f
0036500 f : \r \r { F n D e f { N a m e
0036520 S E T D I S P L A Y H E I G H
0036540 T } { A r g s N S C A N L I
0036560 N E S } \r { T e x t \r S e t s
0036600 t h e d i s p l a y t o o
0036620 n l y s h o w t h e t o p
0036640 { a r g N S C A N L I N E S
0036660 } o f t h e s c r e e n .
0036700 \r I f { a r g N S C A N L I
0036720 N E S } i s { l i s p T }
0036740 , r e s e t s t h e d i s
0036760 p l a y t o s h o w t h e
0037000 f u l l s c r e e n . \r R e
0037020 t u r n s t h e p r e v i o
0037040 u s s e t t i n g . \r } } \r \r
0037060 \r { F n D e f { N a m e D I
0037100 S P L A Y D O W N } { A r g s
0037120 F O R M N S C A N L I N E S
0037140 } \r { T e x t \r E v a l u a t e
0037160 s { a r g F O R M } ( w i
0037200 t h t h e d i s p l a y s
0037220 e t t o o n l y s h o w
0037240 t h e t o p { a r g N S C
0037260 A N L I N E S } o f t h e
0037300 s c r e e n ) , a n d r e t
0037320 u r n s t h e v a l u e o
0037340 f { a r g F O R M } . \r I t
0037360 r e s t o r e s t h e s c
0037400 r e e n t o i t s p r e v
0037420 i o u s s e t t i n g . \r I f
0037440 { a r g N S C A N L I N E S
0037460 } i s n o t g i v e n ,
0037500 i t d e f a u l t s t o 0
0037520 . \r } } \r \r \r { n o t e \r a d d
0037540 i n f o a b o u t : ( W I
0037560 T H O U T - I N T E R R U P T S
0037600 - - - ) ? \r \r D a t e : 6
0037620 - O c t - 8 2 1 7 : 0 8 : 3 7
0037640 P D T ( W e d n e s d a y )
0037660 \r F r o m : M a s i n t e r .
0037700 P A \r I t h i n k W I T H O
0037720 U T - I N T E R R U P T S s h
0037740 o u l d j u s t g e t s t
0037760 r o n g w a r n i n g s : d
0040000 o S A V E V M b e f o r e
0040020 t i m i n g a n y t h i n g
0040040 b e c a u s e i f i t d o
0040060 e s n ' t w o r k , t h e
0040100 o n l y w a y o u t i s
0040120 t o b o o t . \r \r D a t e :
0040140 6 - O c t - 8 2 1 6 : 1 2 :
0040160 1 6 P D T ( W e d n e s d a
0040200 y ) \r F r o m : v a n M e l l
0040220 e . P A \r W I T H O U T - I N T
0040240 E R R U P T S i n i t s c
0040260 u r r e n t s t a t e i s
0040300 f a r t o o d a n g e r o u
0040320 s t o d o c u m e n t . \r }
0040340 \r \r { B e g i n N o t e } \r (
0040360 W I T H O U T - I N T E R R U P
0040400 T S F O R M ) \t \t \t [ N L A M
0040420 B D A f u n c t i o n ] \r W I
0040440 T H O U T - I N T E R R U P T S
0040460 i s a s p e c i a l f o
0040500 r m f o r r u n n i n g r
0040520 e a l - t i m e c r i t i c a
0040540 l s e c t i o n s o f c o
0040560 d e , o r f o r d o i n g
0040600 b e n c h m a r k s , s i n
0040620 c e i t f i l t e r s o u
0040640 t e x t r a n e o u s c o m
0040660 p u t a t i o n s . I t e
0040700 v a l u a t e s F O R M w i
0040720 t h t h e d i s p l a y r
0040740 e f r e s h , k e y b o a r d
0040760 s a m p l i n g , e t h e r
0041000 n e t p r o c e s s , e t c
0041020 . a l l t u r n e d o f f
0041040 . [ N o t e : T h e r e i
0041060 s n o w a y o f r e c o
0041100 v e r i n g f r o m a n e
0041120 r r o r u n d e r n e a t h
0041140 W I T H O U T - I N T E R R U P
0041160 T S e x c e p t b y b o o
0041200 t i n g ! ] \r { E n d N o t e
0041220 } \r \r } { E n d S u b S e c
0041240 T u r n i n g O f f t h e
0041260 D i s p l a y } \r \r \r \r { B e g
0041300 i n S u b S e c G a t h e r
0041320 i n g S t a t i s t i c s } \r
0041340 { T i t l e G a t h e r i n g
0041360 S t a t i s t i c s } \r { T e
0041400 x t \r \r I n t e r l i s p - D
0041420 h a s a n e x t e n d e d
0041440 s e t o f s t a t i s t i c
0041460 s - g a t h e r i n g t o o l
0041500 s . A n e x t e n d e d
0041520 v e r s i o n o f t h e {
0041540 f n T I M E } f u n c t i o
0041560 n i s p r o v i d e d : \r \r
0041600 { F n D e f { F n N a m e T
0041620 I M E A L L } { F n A r g s
0041640 T I M E F O R M # T I M E S
0041660 T I M E W H A T I N T E R P F
0041700 L G { a n o n a r g } } \r { T
0041720 y p e N L A M B D A } \r { T e
0041740 x t \r L a r g e l y s u b s u
0041760 m e s t h e f u n c t i o n
0042000 { f n T I M E } . E v a
0042020 l u a t e s t h e f o r m
0042040 { a r g T I M E F O R M } a
0042060 n d p r i n t s s t a t i s
0042100 t i c s o n t i m e s p e
0042120 n t i n v a r i o u s c a
0042140 t e g o r i e s ( e l a p s e
0042160 d , k e y b o a r d w a i t
0042200 , s w a p p i n g t i m e ,
0042220 g c ) a n d d a t a t y p
0042240 e a l l o c a t i o n . \r \r F
0042260 o r m o r e a c c u r a t e
0042300 m e a s u r e m e n t o n
0042320 s m a l l c o m p u t a t i o
0042340 n s , { a r g # T I M E S }
0042360 m a y b e s p e c i f i e
0042400 d ( i t s d e f a u l t i
0042420 s 1 ) t o c a u s e { a
0042440 r g T I M E F O R M } t o
0042460 b e e x e c u t e d { a r g
0042500 # T I M E S } n u m b e r
0042520 o f t i m e s . T o i m
0042540 p r o v e t h e a c c u r a
0042560 c y o f t i m i n g o p e
0042600 n - c o d e d o p e r a t i o
0042620 n s i n t h i s c a s e ,
0042640 { f n T I M E A L L } c o
0042660 m p i l e s a f o r m t o
0042700 e x e c u t e { a r g T I
0042720 M E F O R M } { a r g # T I
0042740 M E S } n u m b e r o f t
0042760 i m e s ( u n l e s s { a r
0043000 g I N T E R P F L G } i s
0043020 n o n - { l i s p N I L } ) ,
0043040 a n d t h e n t i m e s
0043060 t h e e x e c u t i o n o f
0043100 t h e c o m p i l e d f o
0043120 r m . T h e c o m p i l a
0043140 t i o n i s w i t h o p t
0043160 i m i z a t i o n s o f f t
0043200 o a v o i d c o n s t a n t
0043220 f o l d i n g . \r \r { a r g
0043240 T I M E W H A T } e x i s t s
0043260 l a r g e l y f o r c o m
0043300 p a t i b i l i t y w i t h
0043320 { f n T I M E } ; i t r e
0043340 s t r i c t s t h e s t a t
0043360 i s t i c s t o s p e c i f
0043400 i c c a t e g o r i e s .
0043420 I t c a n b e a n a t o
0043440 m o r l i s t o f d a t
0043460 a t y p e s t o m o n i t o
0043500 r , a n d / o r t h e a t
0043520 o m { L i s p T I M E } t
0043540 o m o n i t o r t i m e s
0043560 p e n t . N o t e t h a t
0043600 o r d i n a r i l y , { f n
0043620 T I M E A L L } m o n i t o
0043640 r s a l l t i m e a n d
0043660 d a t a t y p e u s a g e ,
0043700 s o t h i s a r g u m e n t
0043720 i s r a r e l y n e e d e
0043740 d . \r \r T h e v a l u e
0043760 o f { f n T I M E A L L }
0044000 i s t h e v a l u e o f
0044020 t h e l a s t e v a l u a t
0044040 i o n o f { a r g \r T I M E
0044060 F O R M } . \r } } \r } { E n d
0044100 S u b S e c P e r f o r m a n
0044120 c e C o n s i d e r a t i o n
0044140 s } \r \r \0 \0 H d \0 \0 \0 005 G A C H
0044160 A \0 \n \0 \0 \0 \0 \0 \0 \0 \0 \0 \0 H d \0
0044200 001 z 270
0044203