<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>Hi Kacper, amazing idea. <br>
    </p>
    <p>Without thinking too much I'd say: "writes per seconds", "reads
      per seconds" are good metrics. Whether write_concurrency or
      read_concurrency is enabled. <br>
    </p>
    <p>Good luck on this project!</p>
    <br>
    <div class="moz-cite-prefix">On 05/07/2017 12:42, Kacper Mentel
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAPa629VVUHZ2vxcosFiiOmPfYFQ0qk+fKEHX62iJxO0EcLFU=g@mail.gmail.com">
      <div dir="ltr">
        <div dir="ltr">
          <div>Hi! <br>
          </div>
          <div><br>
          </div>
          <div>My name is Kacper and I'm participating in this year's
            edition of Google Summer of Code under BEAM Community. My
            GSoC's project is an extension to Erlang Performance Lab.
            Erlang Lab is an Open Source project aimed at analysing the
            performance of Erlang and Elixir systems. The project
            provides web-based visualisations of the analysis. It can
            help developers to better understand their systems, observe
            the system behaviour and identify weaknesses.</div>
          <div><br>
          </div>
          <div>My work is focused on visualising ETS tables
            performance. If you want to learn more about my GSoC project
            or erlangpl here are the links to have a look at:</div>
          <div><br>
          </div>
          <div><a
              href="https://summerofcode.withgoogle.com/projects/#5695385677856768"
              target="_blank" moz-do-not-send="true">https://summerofcode.withgoogl<wbr>e.com/projects/#56953856778567<wbr>68</a><br>
          </div>
          <div><a href="https://github.com/erlanglab/erlangpl"
              target="_blank" moz-do-not-send="true">https://github.com/erlanglab/e<wbr>rlangpl</a><br>
          </div>
          <div><a href="https://github.com/mkacper/erlangpl"
              target="_blank" moz-do-not-send="true">https://github.com/mkacper/erl<wbr>angpl</a><br>
          </div>
          <div><br>
          </div>
          <div>The extension to the EPL I'm going to implement will
            deliver 3 views which can be seen as layers through which
            you can look at the ETS tables. The idea is simple — if you
            want to trace a problem related to an ETS table, you start
            from the top-level view (the most general one) and go down
            through the subsequent layers (views) until you reach the
            one that will help you identify the source of the problem
            you are looking for. The scheme of the views looks as
            follows: cluster view (shows all the nodes in a cluster)
            -> node view (shows all ETS tables on a node) -> ETS
            details (shows more detailed information).</div>
          <div><br>
          </div>
          <div>I've implemented the first view so far. Here is the
            screenshot: <a
href="https://drive.google.com/file/d/0BzXT6yCa9ckQVzF0RnhibG9LbFE/view?usp=sharing"
              target="_blank" moz-do-not-send="true">https://drive.goog<wbr>le.com/file/d/0BzXT6yCa9ckQVzF<wbr>0RnhibG9LbFE/view?usp=sharing</a></div>
          <div><br>
          </div>
          <div>Now I'm working on the second view (node view). Here are
            some screenshots:</div>
          <div><a
href="https://drive.google.com/file/d/0BzXT6yCa9ckQTXNuTzYzVW00c1U/view?usp=sharing"
              target="_blank" moz-do-not-send="true">https://drive.google.com/file/<wbr>d/0BzXT6yCa9ckQTXNuTzYzVW00c1U<wbr>/view?usp=sharing</a></div>
          <div><a
href="https://drive.google.com/file/d/0BzXT6yCa9ckQS05QQ3pWeWI5bkU/view?usp=sharing"
              target="_blank" moz-do-not-send="true">https://drive.google.com/file/<wbr>d/0BzXT6yCa9ckQS05QQ3pWeWI5bkU<wbr>/view?usp=sharing</a><br>
          </div>
          <div><br>
          </div>
          <div>It shows all the ETS tables from a node linked to their
            owner's processes. The color of the tables reflects the
            amount of allocated memory for the table (red -> the
            heaviest, blue -> the lightest). This is only an example
            how we can visualise ETS related data.</div>
          <div><br>
          </div>
          <div>The most imprtant questions to you are: </div>
          <div>- What is worth measuring and visualising in terms of ETS
            performance? </div>
          <div>- What kind of information can help developers to find
            ETS related problems?</div>
          <div><br>
          </div>
          <div>Here are some of my (and EPL team's) ideas:</div>
          <div><br>
          </div>
          <div>- the amount of the allocated memory for a particular ETS
            table,</div>
          <div>- memory utilization/fragmentation - real size of a
            particular table in bytes compared to the amount of the
            memory allocated for that table</div>
          <div>- number of rows in a partiuclar table</div>
          <div>- some statistics about locks protecting ETS tables
            (collected using lcnt module)</div>
          <div>- mean acces time to the table in a unit of time</div>
          <div><br>
          </div>
          <div>
            <div>I would be very grateful for your feedback, suggestions
              and ideas.</div>
            <div><br>
            </div>
            <div>Cheers,</div>
            <div>Kacper</div>
          </div>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
erlang-questions mailing list
<a class="moz-txt-link-abbreviated" href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a>
<a class="moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-questions">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
    </blockquote>
    <br>
  </body>
</html>