$ od -c -N 50000 [Erinyes]<LispManual>ChapPerformance.im!5 0000000 \r { B e g i n C h a p t e r 0000020 P e r f o r m a n c e I s s u 0000040 e s } \r { T i t l e P e r f o 0000060 r m a n c e I s s u e s } \r { 0000100 T e x t \r \r { i n d e x * P R 0000120 I M A R Y * P e r f o r m a n 0000140 c e a n a l y s i s } \r \r T h 0000160 i s c h a p t e r d e s c r 0000200 i b e s a n u m b e r o f 0000220 a r e a s t h a t o f t e 0000240 n c o n t r i b u t e t o 0000260 p e r f o r m a n c e p r o b 0000300 l e m s i n I n t e r l i s 0000320 p - D p r o g r a m s . M 0000340 a n y p e r f o r m a n c e 0000360 p r o b l e m s c a n b e 0000400 i m p r o v e d b y o p t i 0000420 m i z i n g t h e u s e o 0000440 f s t o r a g e , s i n c e 0000460 a l l o c a t i n g a n d 0000500 r e c l a i m i n g l a r g e 0000520 a m o u n t s o f s t o r 0000540 a g e i s e x p e n s i v e 0000560 . A n o t h e r t a c t i 0000600 c t h a t c a n s o m e t 0000620 i m e s y i e l d p e r f o 0000640 r m a n c e i m p r o v e m e 0000660 n t s i s t o c h a n g e 0000700 t h e u s e o f v a r i 0000720 a b l e b i n d i n g s o n 0000740 t h e s t a c k t o r e 0000760 d u c e v a r i a b l e l o 0001000 o k u p t i m e . T h e r 0001020 e a r e a n u m b e r o 0001040 f t o o l s t h a t c a n 0001060 b e u s e d t o d e t e 0001100 r m i n e w h i c h p a r t 0001120 s o f a c o m p u t a t i 0001140 o n c a u s e p e r f o r m 0001160 a n c e b o t t l e n e c k s 0001200 . \r \r \r { I n c l u d e G a r 0001220 b a g e C o l l e c t i o n } \r 0001240 \r { I n c l u d e V a r i a b 0001260 l e B i n d i n g s } \r \r { I n 0001300 c l u d e M e a s u r i n g } 0001320 \r \r { I n c l u d e G a i n S 0001340 p a c e } \r \r \r { B e g i n S 0001360 u b S e c U s i n g D a t a 0001400 T y p e s I n s t e a d o 0001420 f R e c o r d s } \r { T i t l 0001440 e U s i n g D a t a T y p 0001460 e s I n s t e a d o f R e 0001500 c o r d s } \r { T e x t \r \r { i 0001520 n d e x D a t a t y p e s } 0001540 \r \r I f a p r o g r a m u 0001560 s e s l a r g e n u m b e r 0001600 s o f l a r g e d a t a 0001620 s t r u c t u r e s , t h e r 0001640 e a r e s e v e r a l a d 0001660 v a n t a g e s t o r e p r 0001700 e s e n t i n g t h e m a s 0001720 u s e r d a t a t y p e s 0001740 r a t h e r t h a n a s 0001760 l i s t s t r u c t u r e s . 0002000 T h e p r i m a r y a d 0002020 v a n t a g e i s i n c r e 0002040 a s e d s p e e d : a c c e 0002060 s s i n g a n d s e t t i n 0002100 g t h e f i e l d s o f 0002120 a d a t a t y p e c a n 0002140 b e s i g n i f i c a n t l y 0002160 f a s t e r t h a n w a l 0002200 k i n g t h r o u g h a l 0002220 i s t w i t h r e p e a t e 0002240 d { l i s p C A R } s a n 0002260 d { l i s p C D R } s . 0002300 A l s o , c o m p i l e d c 0002320 o d e f o r r e f e r e n c 0002340 i n g d a t a t y p e s i 0002360 s u s u a l l y s m a l l e 0002400 r . F i n a l l y , b y 0002420 r e d u c i n g t h e n u m 0002440 b e r o f o b j e c t s c 0002460 r e a t e d ( o n e o b j e 0002500 c t a g a i n s t m a n y 0002520 l i s t c e l l s ) , t h i 0002540 s c a n r e d u c e t h e 0002560 e x p e n s e o f g a r b 0002600 a g e c o l l e c t i o n . \r 0002620 \r U s e r d a t a t y p e s 0002640 a r e d e c l a r e d b y 0002660 u s i n g t h e { l i s p 0002700 D A T A T Y P E } r e c o r 0002720 d t y p e ( { P a g e R e f 0002740 ( R e c o r d T y p e ) D 0002760 A T A T Y P E } ) . I f a 0003000 l i s t s t r u c t u r e 0003020 h a s b e e n d e f i n e d 0003040 u s i n g t h e { l i s p 0003060 R E C O R D } r e c o r d 0003100 t y p e ( { P a g e R e f ( 0003120 R e c o r d T y p e ) R E C 0003140 O R D } ) , a n d a l l a 0003160 c c e s s i n g o p e r a t i 0003200 o n s a r e w r i t t e n 0003220 u s i n g t h e r e c o r d 0003240 p a c k a g e ' s { l i s p 0003260 f e t c h } , { l i s p r 0003300 e p l a c e } , a n d { l i 0003320 s p c r e a t e } o p e r a 0003340 t i o n s , c h a n g i n g 0003360 f r o m { l i s p R E C O R 0003400 D } s t o { l i s p D A T 0003420 A T Y P E } s o n l y r e q 0003440 u i r e s e d i t i n g t h 0003460 e r e c o r d d e c l a r a 0003500 t i o n ( u s i n g { f n 0003520 E D I T R E C } , { P a g e R 0003540 e f F n E D I T R E C } ) 0003560 t o r e p l a c e d e c l a 0003600 r a t i o n t y p e { l i s 0003620 p R E C O R D } b y { l i 0003640 s p D A T A T Y P E } , a n 0003660 d r e c o m p i l i n g . \r \r 0003700 N o t e : T h e r e a r e 0003720 s o m e m i n o r d i s a d 0003740 v a n t a g e s w i t h a l 0003760 l o c a t i n g n e w d a t 0004000 a t y p e s : F i r s t , 0004020 t h e r e i s a n u p p 0004040 e r l i m i t o n t h e 0004060 n u m b e r o f d a t a t 0004100 y p e s w h i c h c a n e 0004120 x i s t . A l s o , s p a 0004140 c e f o r d a t a t y p e 0004160 s i s a l l o c a t e d a 0004200 p a g e a t a t i m e , 0004220 s o e a c h d a t a t y 0004240 p e h a s a t l e a s t 0004260 o n e p a g e a s s i g n e 0004300 d t o i t , w h i c h m 0004320 a y b e w a s t e f u l o 0004340 f s p a c e i f t h e r e 0004360 a r e o n l y a f e w 0004400 e x a m p l e s o f a g i 0004420 v e n d a t a t y p e . 0004440 T h e s e p r o b l e m s s 0004460 h o u l d n o t e f f e c t 0004500 m o s t a p p l i c a t i o 0004520 n s p r o g r a m s . \r \r } { 0004540 E n d S u b S e c U s i n g 0004560 D a t a T y p e s I n s t 0004600 e a d o f R e c o r d s } \r 0004620 \r \r \r { B e g i n S u b S e c 0004640 U s i n g I n c o m p l e t 0004660 e F i l e N a m e s } \r { T 0004700 i t l e U s i n g I n c o m 0004720 p l e t e F i l e N a m e s 0004740 } \r { T e x t \r \r { i n d e x 0004760 F i l e n a m e s } \r { i n d 0005000 e x I n c o m p l e t e F i 0005020 l e N a m e s } \r \r C u r r e 0005040 n t l y , I n t e r l i s p 0005060 a l l o w s y o u t o s p 0005100 e c i f y a n o p e n f i 0005120 l e b y g i v i n g t h e 0005140 f i l e n a m e . I f 0005160 t h e f i l e n a m e i s 0005200 i n c o m p l e t e ( i t 0005220 d o e s n ' t h a v e t h e 0005240 d e v i c e / h o s t , d i 0005260 r e c t o r y , n a m e , e 0005300 x t e n s i o n , a n d v e 0005320 r s i o n n u m b e r a l l 0005340 s u p p l i e d ) , t h e 0005360 s y s t e m c o n v e r t s 0005400 i t t o a c o m p l e t e 0005420 f i l e n a m e , b y s 0005440 u p p l y i n g d e f a u l t 0005460 s a n d s e a r c h i n g 0005500 t h r o u g h d i r e c t o r 0005520 i e s ( w h i c h m a y b 0005540 e o n r e m o t e f i l e 0005560 s e r v e r s ) , a n d t 0005600 h e n s e a r c h e s t h e 0005620 o p e n s t r e a m s f o 0005640 r o n e c o r r e s p o n d 0005660 i n g t o t h a t f i l e 0005700 n a m e . T h i s f i l 0005720 e n a m e - c o m p l e t i o 0005740 n p r o c e s s h a p p e n 0005760 s w h e n e v e r a n y I 0006000 / O f u n c t i o n i s g 0006020 i v e n a n i n c o m p l e 0006040 t e f i l e n a m e , w h 0006060 i c h c a n c a u s e a 0006100 s e r i o u s p e r f o r m a 0006120 n c e p r o b l e m i f I 0006140 / O o p e r a t i o n s a r 0006160 e d o n e r e p e a t e d l 0006200 y . I n g e n e r a l , 0006220 i t i s m u c h f a s t e 0006240 r t o c o n v e r t a n 0006260 i n c o m p l e t e f i l e 0006300 n a m e t o a s t r e a m 0006320 o n c e , a n d u s e t 0006340 h e s t r e a m f r o m t 0006360 h e n o n . F o r e x a 0006400 m p l e , s u p p o s e a 0006420 f i l e i s o p e n e d w 0006440 i t h { l i s p ( S E T Q 0006460 S T R M ( O P E N S T R E A M 0006500 ' M Y N A M E ' I N P U T ) 0006520 ) } . A f t e r d o i n g 0006540 t h i s , { l i s p ( R E 0006560 A D C ' M Y N A M E ) } a n 0006600 d { l i s p ( R E A D C S 0006620 T R M ) } w o u l d b o t h 0006640 w o r k , b u t { l i s p 0006660 ( R E A D C ' M Y N A M E ) 0006700 } w o u l d t a k e l o n 0006720 g e r ( s o m e t i m e s o 0006740 r d e r s o f m a g n i t u 0006760 d e l o n g e r ) . T h i 0007000 s c o u l d s e r i o u s l 0007020 y e f f e c t t h e p e r 0007040 f o r m a n c e i f a p r 0007060 o g r a m w h i c h i s d 0007100 o i n g m a n y I / O o p 0007120 e r a t i o n s . \r \r N o t e : 0007140 A t s o m e p o i n t 0007160 i n t h e f u t u r e , w 0007200 h e n m u l t i p l e s t r 0007220 e a m s a r e s u p p o r t 0007240 e d t o a s i n g l e f 0007260 i l e , t h e f e a t u r e 0007300 o f m a p p i n g f i l e 0007320 n a m e s t o s t r e a m 0007340 s w i l l b e r e m o v e 0007360 d . T h i s i s y e t 0007400 a n o t h e r r e a s o n w 0007420 h y p r o g r a m s s h o u 0007440 l d u s e s t r e a m s a 0007460 s h a n d l e s t o o p e 0007500 n f i l e s , i n s t e a d 0007520 o f f i l e n a m e s . \r 0007540 \r \r F o r m o r e i n f o r 0007560 m a t i o n o n e f f i c i 0007600 e n c y c o n s i d e r a t i 0007620 o n s w h e n u s i n g f 0007640 i l e s , s e e { P a g e R 0007660 e f T a g S t r e a m F i l 0007700 e N a m e s } . \r \r } { E n d 0007720 S u b S e c U s i n g I n c 0007740 o m p l e t e F i l e N a m 0007760 e s } \r \r \r \r { B e g i n S u 0010000 b S e c U s i n g " F a s t 0010020 " a n d " D e s t r u c t i 0010040 v e " F u n c t i o n s } \r { 0010060 T i t l e U s i n g " F a s 0010100 t " a n d " D e s t r u c t 0010120 i v e " F u n c t i o n s } \r 0010140 { T e x t \r \r A m o n g t h e 0010160 f u n c t i o n s u s e d 0010200 f o r m a n i p u l a t i n g 0010220 o b j e c t s o f v a r i 0010240 o u s d a t a t y p e s , 0010260 t h e r e a r e a n u m b 0010300 e r o f f u n c t i o n s 0010320 w h i c h h a v e " f a s t 0010340 " a n d " d e s t r u c t i 0010360 v e " v e r s i o n s . T 0010400 h e u s e r s h o u l d b 0010420 e a w a r e o f w h a t 0010440 t h e s e f u n c t i o n s 0010460 d o , a n d w h e n t h e 0010500 y s h o u l d b e u s e d 0010520 . \r \r { i n d e x F a s t f 0010540 u n c t i o n s } \r \r " F a s t 0010560 " f u n c t i o n s : B y 0010600 c o n v e n t i o n , a f 0010620 u n c t i o n n a m e d b y 0010640 p r e f i x i n g a n e x 0010660 i s t i n g f u n c t i o n 0010700 n a m e w i t h { l i s p 0010720 F } i n d i c a t e s t h a 0010740 t t h e n e w f u n c t i 0010760 o n i s a " f a s t " v 0011000 e r s i o n o f t h e o l 0011020 d . T h e s e u s u a l l 0011040 y h a v e t h e s a m e 0011060 d e f i n i t i o n s a s t 0011100 h e s l o w e r v e r s i o 0011120 n s , b u t t h e y c o m 0011140 p i l e o p e n a n d r u 0011160 n w i t h o u t a n y " s 0011200 a f e t y " e r r o r c h e 0011220 c k s . F o r e x a m p l 0011240 e , { f n F N T H } r u n 0011260 s f a s t e r t h a n { f 0011300 n N T H } , h o w e v e r , 0011320 i t d o e s n o t m a k 0011340 e a s m a n y c h e c k s 0011360 ( f o r l i s t s e n d i 0011400 n g w i t h a n y t h i n g 0011420 b u t { l i s p N I L } , 0011440 e t c ) . I f t h e s e 0011460 f u n c t i o n s a r e g 0011500 i v e n a r g u m e n t s t 0011520 h a t a r e n o t i n t 0011540 h e f o r m t h a t t h e 0011560 y e x p e c t , t h e i r 0011600 b e h a v i o r i s u n p r 0011620 e d i c t a b l e ; t h e y 0011640 m a y r u n f o r e v e r , 0011660 o r c a u s e a s y s t 0011700 e m e r r o r . I n g e 0011720 n e r a l , t h e u s e r 0011740 s h o u l d o n l y u s e 0011760 " f a s t " f u n c t i o n 0012000 s i n c o d e t h a t h 0012020 a s a l r e a d y b e e n 0012040 c o m p l e t e l y d e b u g 0012060 g e d , t o s p e e d i t 0012100 u p . \r \r { i n d e x * P R 0012120 I M A R Y * D e s t r u c t i 0012140 v e f u n c t i o n s } \r \r " 0012160 D e s t r u c t i v e " f u n 0012200 c t i o n s : B y c o n v 0012220 e n t i o n , a f u n c t i 0012240 o n n a m e d b y p r e f 0012260 i x i n g a n e x i s t i n 0012300 g f u n c t i o n w i t h 0012320 { l i s p D } i n d i c a t 0012340 e s t h e n e w f u n c t 0012360 i o n i s a " d e s t r u 0012400 c t i v e " v e r s i o n o 0012420 f t h e o l d o n e , w 0012440 h i c h d o e s n o t m a 0012460 k e a n y n e w s t r u c 0012500 t u r e b u t c a n n i b a 0012520 l i z e s i t s a r g u m e 0012540 n t ( s ) . F o r e x a m 0012560 p l e , { f n R E M O V E } 0012600 r e t u r n s a c o p y 0012620 o f a l i s t w i t h a 0012640 p a r t i c u l a r e l e m 0012660 e n t r e m o v e d , b u t 0012700 { f n D R E M O V E } a c 0012720 t u a l l y c h a n g e s t 0012740 h e l i s t s t r u c t u r 0012760 e o f t h e l i s t . 0013000 ( U n f o r t u n a t e l y , 0013020 n o t a l l d e s t r u c t 0013040 i v e f u n c t i o n s f o 0013060 l l o w t h i s n a m i n g 0013100 c o n v e n t i o n : t h e 0013120 d e s t r u c t i v e v e r 0013140 s i o n o f { f n A P P E 0013160 N D } i s { f n N C O N C 0013200 } . ) T h e u s e r s h 0013220 o u l d b e c a r e f u l 0013240 w h e n u s i n g d e s t r 0013260 u c t i v e f u n c t i o n s 0013300 t h a t t h e y d o n o 0013320 t i n a d v e r t a n t l y 0013340 c h a n g e d a t a s t r u 0013360 c t u r e s . \r \r \r } { E n d 0013400 S u b S e c U s i n g " F a 0013420 s t " a n d " D e s t r u c 0013440 t i v e " F u n c t i o n s } 0013460 \r \r \r \r \r { B e g i n N o t e 0013500 } \r a d d i n f o a b o u t 0013520 : ( W I T H O U T - I N T E R 0013540 R U P T S - - - ) ? \r \r D a t 0013560 e : 6 - O c t - 8 2 1 7 : 0013600 0 8 : 3 7 P D T ( W e d n e 0013620 s d a y ) \r F r o m : M a s i 0013640 n t e r . P A \r I t h i n k 0013660 W I T H O U T - I N T E R R U P 0013700 T S s h o u l d j u s t g 0013720 e t s t r o n g w a r n i n 0013740 g s : d o S A V E V M b e 0013760 f o r e t i m i n g a n y t 0014000 h i n g b e c a u s e i f 0014020 i t d o e s n ' t w o r k , 0014040 t h e o n l y w a y o u 0014060 t i s t o b o o t . \r \r D 0014100 a t e : 6 - O c t - 8 2 1 0014120 6 : 1 2 : 1 6 P D T ( W e d 0014140 n e s d a y ) \r F r o m : v a 0014160 n M e l l e . P A \r W I T H O U 0014200 T - I N T E R R U P T S i n 0014220 i t s c u r r e n t s t a t 0014240 e i s f a r t o o d a n 0014260 g e r o u s t o d o c u m e 0014300 n t . \r \r ( W I T H O U T - I N 0014320 T E R R U P T S F O R M ) \t \t 0014340 \t [ N L A M B D A f u n c t i 0014360 o n ] \r W I T H O U T - I N T E 0014400 R R U P T S i s a s p e c 0014420 i a l f o r m f o r r u n 0014440 n i n g r e a l - t i m e c 0014460 r i t i c a l s e c t i o n s 0014500 o f c o d e , o r f o r 0014520 d o i n g b e n c h m a r k 0014540 s , s i n c e i t f i l t 0014560 e r s o u t e x t r a n e o 0014600 u s c o m p u t a t i o n s . 0014620 I t e v a l u a t e s F 0014640 O R M w i t h t h e d i s 0014660 p l a y r e f r e s h , k e 0014700 y b o a r d s a m p l i n g , 0014720 e t h e r n e t p r o c e s 0014740 s , e t c . a l l t u r n 0014760 e d o f f . [ N o t e : T 0015000 h e r e i s n o w a y o 0015020 f r e c o v e r i n g f r o 0015040 m a n e r r o r u n d e r 0015060 n e a t h W I T H O U T - I N 0015100 T E R R U P T S e x c e p t 0015120 b y b o o t i n g ! ] \r { E n 0015140 d N o t e } \r \r \r } { E n d 0015160 C h a p t e r P e r f o r m a 0015200 n c e I s s u e s } \r \r \r \r \0 0015220 \0 \0 \0 \0 004 \0 002 \0 ? \0 1 ( D E F A 0015240 U L T F O N T 1 ( G A C H A 0015260 1 0 ) ( G A C H A 8 ) ( 0015300 T E R M I N A L 8 ) ) \0 \n \0 \0 0015320 \0 \0 \0 \0 \0 \0 \0 ? \0 1 ( D E F A U 0015340 L T F O N T 1 ( G A C H A 0015360 1 0 ) ( G A C H A 8 ) ( T 0015400 E R M I N A L 8 ) ) \0 \n \0 \0 \0 0015420 \0 \0 \0 \0 \0 \0 \0 032 217 \0 \0 \0 \0 002 \0 \0 0015440 032 217 \0 001 z 272 0015446