WHY is python slow?
Mitchell Morris
mitchell.morris at cingular.com
Thu Jun 7 08:34:09 EDT 2001
More information about the Python-list mailing list
Thu Jun 7 08:34:09 EDT 2001
- Previous message (by thread): WHY is python slow?
- Next message (by thread): WHY is python slow?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Steven Haryanto <steven at haryan.to> wrote in <mailman.991900751.7603.python- list at python.org>: > Although it is generally accepted that Python is slower than > Java/Perl/Ruby, a layman like me would be curious to know why > exactly this is so. In other words, why is the implementation > of a language like Ruby (which is on par with Python in terms > of 'everything is an object', strong reflection, dynamic > nature). > > My first guess would be the ubiquitous use of dictionaries? > > Steve > http://stevne.haryan.to/ > > Well, perhaps your population sample isn't actually representative. I, for one, don't believe that your speed ordering is accurate, and I would further postulate that few other people on this newsgroup would agree with you. My second observation is that constructing a group of languages that includes Java, Perl, and Ruby as members but doesn't include Python must be using a very fine discriminant indeed <wink>. As a single point of data, may I present the language-specific pages from Bagley's "Computer Language Shootout" <URL:http://www.bagley.org/~doug/shootout/>. Each presents the finishing place for that language on each specific test. In addition, the average finishing place is calculated through an unspecified method (I'm assuming it's the arithmetic mean, but I'm not sure) in three categories: CPU usage, memory usage, and lines of code. Perl: CPU: 14, Memory: 17, LOC: 7 http://www.bagley.org/~doug/shootout/lang/perl/ Python: CPU: 17, Memory: 12, LOC: 7 http://www.bagley.org/~doug/shootout/lang/python/ Ruby: CPU: 18, Memory: 14, LOC: 5 http://www.bagley.org/~doug/shootout/lang/ruby/ Java: CPU: 12, Memory: 20, LOC: 15 http://www.bagley.org/~doug/shootout/lang/java/ Tcl: CPU: 19, Memory: 12, LOC: 12 http://www.bagley.org/~doug/shootout/lang/tcl/ OCaml: [my new favorite toy -- ed.] CPU: 3, Memory: 5, LOC: 10 http://www.bagley.org/~doug/shootout/lang/ocaml/ Under this ranking, Java is barely faster than Perl which is even more barely faster than Python which just as barely faster than Ruby which is (once again) only barely faster than Tcl. Mr.Bagley neglected to provide summary statistics for inter-language comparisons on these pages, so I have to provide my own: Language Mean Std.Dev -------- ---- ------- Perl 13.6 6.2 Python 16.6 3.8 Ruby 18.0 4.6 Java 11.5 4.2 Tcl 20.8 4.0 (Warning: undocumented math and unwarranted jumping-to-conclusions ahead) Notice the large standard deviation for Perl's results, especially compared to the standard deviation of the other datasets. This suggests that there are some outliers in the Perl dataset which are skewing the mean, and that generally the other languages perform more consistently over these tests. In addition, the mean/std.dev comparisons suggest that we can't yet conclude that Perl actually finshes ahead of either Python or Ruby in the general case, but they do suggest that we can tentatively say that Perl finshes ahead of Tcl for these tests. (Isn't it wonderful how statistics lets you be so certain about making such sweeping statements? <0.1 wink>) I have my own reservations about the applicability of this shootout to anything but Usenet arguments, but since that *IS* what we're having I'm delighted to wield it <wink>. if-you'd-only-claimed-Jython-was-slow-ly y'rs, +Mitchell P.S. Keep in mind that all this is based on the finishing placements in the elements of the test suite, not the raw performance numbers which I didn't feel like extracting from all over the entire website. Jiggery-pokery, indeed!
- Previous message (by thread): WHY is python slow?
- Next message (by thread): WHY is python slow?
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list