<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<META NAME="Generator" CONTENT="MS Exchange Server version 6.5.7651.59">
<TITLE>process dictionary, anyone?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<BR>

<P><FONT SIZE=2 FACE="Arial">Each self-respecting Erlang hacker should bash the </FONT>

<BR><FONT SIZE=2 FACE="Arial">process dictionary now and again. I've made it a sport to </FONT>

<BR><FONT SIZE=2 FACE="Arial">claim that it is no worse than ets.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Considering SMP Erlang, isn't it even significantly better?</FONT>

<BR><FONT SIZE=2 FACE="Arial">I haven't experimented with the process dictionary on </FONT>

<BR><FONT SIZE=2 FACE="Arial">SMP machines, but it is process local, and can only be</FONT>

<BR><FONT SIZE=2 FACE="Arial">written to by the process, so it should require much less </FONT>

<BR><FONT SIZE=2 FACE="Arial">locking than ets, right?</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">A drawback with the process dictionary, compared to </FONT>

<BR><FONT SIZE=2 FACE="Arial">ets, is that it has no support for match operations (other</FONT>

<BR><FONT SIZE=2 FACE="Arial">than get() and get_keys()). When inspecting it from another</FONT>

<BR><FONT SIZE=2 FACE="Arial">process (which is good for debugging purposes), it only </FONT>

<BR><FONT SIZE=2 FACE="Arial">allows you to retrieve the entire dictionary.</FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">Both these drawbacks could be easily corrected - at least</FONT>

<BR><FONT SIZE=2 FACE="Arial">the second one. </FONT>
</P>

<P><FONT SIZE=2 FACE="Arial">BR,</FONT>

<BR><FONT SIZE=2 FACE="Arial">Ulf W</FONT>
</P>

</BODY>
</HTML>