[erlang-questions] Erlang Cost Model
Richard A. O'Keefe
ok@REDACTED
Fri Sep 18 02:54:57 CEST 2015
On 17/09/2015, at 3:03 am, Eric des Courtis <eric.des.courtis@REDACTED> wrote:
> What is the cost model of all operations in Erlang 18?
>
> For example Python has this cost model http://scripts.mit.edu/~6.006/fall07/wiki/index.php?title=Python_Cost_Model
So let's look at that page, and you'll spot something interesting
in the URL.
(1) That page was last revised in January 2008; the results
are from 2007. Looking at neighbouring pages like
http://scripts.mit.edu/~6.006/fall07/wiki/index.php?title=Document_Distance_Program_Version_5
I get "Database error", which suggests that the site has
not been maintained for too long.
Poke around a bit further, and you'll find
(2) It used Windows XP (version of 2001) on "an IBM Thinkpad
T43p with a 1.86GHz Pentium M processor and 1.5GB RAM."
(3) The version of Python used for the tests is not stated, but
the Python version current at the time was 2.5.1.
(4) The author thought "extract a byte from a string"
was an interesting operation.
Let's compare that with today.
(1) It's September 2015, nearly 8 years since the measurements
were done.
(2) I'm using Mac OS X 10.9.5 on an iMac14.2 with a 3.2 GHz Intel
Core i5 with 4 cores (and using those 4 cores is an important
part of *system*-level efficiency) and 16 GiB of 1.6 GHz
DDR3 memory. The architecture of a Core i5 is significantly
different from a Pentium M, and it's not just the 64-bit ISA.
(3) Python 2.7.8 was released in mid-2014 but the current version
is Python 3.5.0. The benchmarks had much to say about
integers and strings, and these are two areas which have seen
MAJOR changes in the change to Python 3.
(4) Unicode is everywhere these days; characters are no longer bytes.
At least one of the benchmarks is now of questionable relevance.
In short, before I used that "Python cost model" page for
*anything*, I'd have to first port timing.py to Python 3 (which
may or may not be trivial; no idea without trying it), and then
rerun it on my machine. I'd still be wondering what difference,
if any, building with recent clang, recent gcc, or recent icc
would make.
And it *still* wouldn't tell me anything about the cost of using
NumPy or SciPy or PyQt or TKinter or ....
More information about the erlang-questions
mailing list