<html xmlns:v="urn:schemas-microsoft-com:vml" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:m="http://schemas.microsoft.com/office/2004/12/omml" xmlns="http://www.w3.org/TR/REC-html40">

<head>
<meta http-equiv=Content-Type content="text/html; charset=utf-8">
<meta name=Generator content="Microsoft Word 12 (filtered medium)">
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman","serif";}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {mso-style-priority:99;
        color:purple;
        text-decoration:underline;}
span.EstiloCorreo17
        {mso-style-type:personal-reply;
        font-family:"Calibri","sans-serif";
        color:#1F497D;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page Section1
        {size:612.0pt 792.0pt;
        margin:70.85pt 3.0cm 70.85pt 3.0cm;}
div.Section1
        {page:Section1;}
-->
</style>
<!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext="edit">
  <o:idmap v:ext="edit" data="1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=ES link=blue vlink=purple>

<div class=Section1>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Hi all. Yes indeed thanks for replying, Jesper, luckedly I did
all test with the same order and I did the lookup with the first element. The
only problem is with maps, because maps reorders its keys. So I will do the
test again taking in count the order of the final constructed map and make that
same order to the records and proplists, and lookup with the first and last
key, just to see the different between cases and O(1) y O(N).<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Cheers,<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'>Ivan (son of Gilberio).<o:p></o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<p class=MsoNormal><span lang=EN-US style='font-size:11.0pt;font-family:"Calibri","sans-serif";
color:#1F497D'><o:p> </o:p></span></p>

<div style='border:none;border-top:solid #B5C4DF 1.0pt;padding:3.0pt 0cm 0cm 0cm'>

<p class=MsoNormal><b><span style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'>De:</span></b><span
style='font-size:10.0pt;font-family:"Tahoma","sans-serif"'> Jesper Louis
Andersen [mailto:jesper.louis.andersen@gmail.com] <br>
<b>Enviado el:</b> lunes, 17 de agosto de 2015 8:04<br>
<b>Para:</b> Erik Søe Sørensen<br>
<b>CC:</b> Gilberio Carmenates Garcia; Erlang Questions<br>
<b>Asunto:</b> Re: [erlang-questions] Todays Topic: Performance
Stuffs->records vs maps vs proplists<o:p></o:p></span></p>

</div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<div>

<p class=MsoNormal><o:p> </o:p></p>

<div>

<p class=MsoNormal>On Mon, Aug 17, 2015 at 9:30 AM, Erik Søe Sørensen <<a
href="mailto:eriksoe@gmail.com" target="_blank">eriksoe@gmail.com</a>>
wrote:<o:p></o:p></p>

<p class=MsoNormal>Also, you don't state the size of the data structure you're
manipulating - only the number of iterations.<o:p></o:p></p>

</div>

<p class=MsoNormal><o:p> </o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'>Indeed. And also you don't
specify what the key order is. If I have a proplist of any size, PL, and then I
do<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>PropList = [{x, y} | PL],<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'>lists:keyfind(x, 1, PropList).<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'>Then the key lookup will be in
constant time. If on the other hand I do<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'>PropList = PL ++ [{x,y}]<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'>Then the lookup is in the order
of O(n) where n is the length of PL.<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal style='margin-bottom:12.0pt'>In other words, a proplist can
hit the two extreme cases, with the typical case being O(n) (since you have to
search half the elements on average). In contrast, a map has an upper bound of
O(lg n) (with an extremely wide branching factor).<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal>Beware the synthetic benchmark. For it lures you into false
thinking.<br>
<br clear=all>
<o:p></o:p></p>

</div>

<div>

<p class=MsoNormal><br>
-- <o:p></o:p></p>

<div>

<p class=MsoNormal>J.<o:p></o:p></p>

</div>

</div>

</div>

</div>

</body>

</html>