CLOS Efficiency: Instantiation

From LRDE

Revision as of 14:02, 22 October 2013 by Bot (talk | contribs) (Created page with "{{Publication | date = 2009-03-01 | authors = Didier Verna | title = CLOS Efficiency: Instantiation | booktitle = Proceedings of the International Lisp Conference | pages = 76...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Abstract

This article reports the results of an ongoing experimental research on the behavior and performance of CLOS, the Common Lisp Object System. Our purpose is to evaluate the behavior and performance of the 3 most important characteristics of any dynamic Object Oriented system: class instantiation, slot access and dynamic dispatch. This paper describes the results of our experiments on instantiation. We evaluate the efficiency of the instantiation process in both C++ and Lisp under a combination of parameters such as slot types or classes hierarchy. We show that in a non-optimized configuration where safety is given priority on speed, the behavior of C++ and Lisp instantiation can be quite different, which is also the case amongst different Lisp compilers. On the other hand, we demonstrate that when compilation is tuned for speed, instantiation in Lisp becomes faster than in C++.


Bibtex (lrde.bib)

@InProceedings{	  verna.09.ilc,
  author	= {Didier Verna},
  title		= {{CLOS} Efficiency: Instantiation},
  booktitle	= {Proceedings of the International Lisp Conference},
  year		= 2009,
  month		= mar,
  pages		= {76--90},
  organization	= {Association of Lisp Users},
  abstract	= {This article reports the results of an ongoing
		  experimental research on the behavior and performance of
		  CLOS, the Common Lisp Object System. Our purpose is to
		  evaluate the behavior and performance of the 3 most
		  important characteristics of any dynamic Object Oriented
		  system: class instantiation, slot access and dynamic
		  dispatch. This paper describes the results of our
		  experiments on instantiation. We evaluate the efficiency of
		  the instantiation process in both C++ and Lisp under a
		  combination of parameters such as slot types or classes
		  hierarchy. We show that in a non-optimized configuration
		  where safety is given priority on speed, the behavior of
		  C++ and Lisp instantiation can be quite different, which is
		  also the case amongst different Lisp compilers. On the
		  other hand, we demonstrate that when compilation is tuned
		  for speed, instantiation in Lisp becomes faster than in
		  C++.}
}