[prev in list] [next in list] [prev in thread] [next in thread] 

List:       scilab-users
Subject:    Re: [Scilab-users] Curing scf() & figure() slowliness: a good target for Scilab 6.0.1
From:       Samuel Gougeon <sgougeon () free ! fr>
Date:       2021-05-10 15:28:15
Message-ID: 8d04ed67-62b9-41cc-8091-bf0d74822b9c () free ! fr
[Download RAW message or body]

[Attachment #2 (multipart/alternative)]


Le 25/02/2017 à 18:05, Samuel Gougeon a écrit  :
> Hello,
>
> Opening a new empty figure (without drawing anything) is a so common 
> elementary task and it has become so long that i have built a short 
> benchmark about it from Scilab 4.1.2 to Scilab 6.0.
> Detailed results are here-below. The main conclusions are the following:
>
>  1. with no pre-existing figure,*scf**() is **20 times slower in **5.5
>     and 6.0 than in *its best performances in *5.3.0*. On my computer,
>     it takes 0.062 s with 5.3.0 and 1.3 s now (5.5.2|6.0).
>     Scilab 5.4.0, 5.4.1 and 5.5.0 have dramatically damaged performances.
>     The loss is even 10x bigger with figure(): it is ~200 times slower
>     with Scilab 5.5 & 6.0 than with Scilab 4.1.2
>
>  2. Since Scilab 5.5.0, the time taken to open a new figure increases
>     linearly with the number of already opened figures. On my
>     computer, opening the first one (after loading scf()) takes 1.8 s,
>     and opening the 20th one takes almost 10 s. This is still the case
>     with Scilab 6.0.
>
> *Detailled results: *
>
>  1. Opening the first figure :
>     Only 2 tests are reported with figure() instead of scf().
>     t=0;  for  i=1:50,  tic();  scf();  t=t+toc();  xdel();  end;  t,  t/50
>                       [s]              [s]      4.1.2 base  figure()
>     6.0.0  :  62.39/50   1.248    18.5 2.32
>     5.5.2  :  73.62/50   1.4723   21.8
>     5.5.0  :  69.94/50   1.3988   20.8
>     5.4.1  :  37.33/50   0.7466   11.1
>     5.4.0  :  24.07/50   0.4814   7.14
>     5.3.0  :  3.102/50   0.0620   0.92
>     5.1.0  :  4.069/50   0.0814   1.21
>     4.1.2  :  3.370/50   0.0674   1.00 0.014
>  2. Opening 20 figures :
>     t=[];  for  i=1:20,  tic();  scf();  t(i)=toc();  end;  sum(t)/20
>
>     6.0.0  :  5.30  [1.35  =>  9.51]
>     5.5.2  :  5.68  [1.77  =>  9.92]
>     5.5.0  :  5.66  [1.82  =>  9.85]  range from the #1 to #20
>     5.4.1  :  1.18
>     5.4.0  :  0.923
>     5.3.0  :  0.110
>     5.1.0  :  
>     4.1.2  :  0.0774
>
> Samuel


This issue is fixed in Scilab 6.1.0, on Windows 10. Fortunately.
Here are the current Scilab 6.1.0 performances (on another computer than 
in 2017):

It is still ~5x slower than with Scilab 4.1.2 (on the same computer),
but it no longer depends on the number or figures currently opened.

Samuel


[Attachment #5 (multipart/related)]

[Attachment #7 (text/html)]

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <div class="moz-cite-prefix">Le 25/02/2017 Ã  18:05, Samuel Gougeon a
      écrit  :<br>
    </div>
    <blockquote type="cite"
      cite="mid:0b84b337-7106-a05e-66db-c728778cc762@free.fr">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      Hello,<br>
      <br>
      Opening a new empty figure (without drawing anything) is a so
      common elementary task and it has become so long that i have built
      a short benchmark about it from Scilab 4.1.2 to Scilab 6.0.<br>
      Detailed results are here-below. The main conclusions are the
      following:
      <ol>
        <li>with no pre-existing figure,<b> scf</b><b>() is </b><b>20
            times slower in </b><b>5.5 and 6.0 than in </b>its best
          performances in <b>5.3.0</b>. On my computer, it takes 0.062
          s with 5.3.0 and 1.3 s now (5.5.2|6.0).<br>
          Scilab 5.4.0, 5.4.1 and 5.5.0 have dramatically damaged
          performances.<br>
          The loss is even 10x bigger with figure(): it is ~200 times
          slower with Scilab 5.5 &amp; 6.0 than with Scilab 4.1.2<br>
          <br>
        </li>
        <li>Since Scilab 5.5.0, the time taken to open a new figure
          increases linearly with the number of already opened figures.
          On my computer, opening the first one (after loading scf())
          takes 1.8 s, and opening the 20th one takes almost 10 s. This
          is still the case with Scilab 6.0.</li>
      </ol>
      <p><b>Detailled results: </b><br>
      </p>
      <ol>
        <li>Opening the first figure :<br>
          Only 2 tests are reported with figure() instead of scf().<br>
          <pre style="font-family:Monospaced;font-style:normal;font-size:12.0;"><span \
style="color:rgb(0,0,0);"></span><span style="color:rgb(0,0,0);">t</span><span \
style="color:rgb(92,92,92);">=</span><span \
style="color:rgb(188,143,143);">0</span><span style="color:rgb(0,0,0);">;</span> \
<span style="color:rgb(160,32,240);">for</span> <span \
style="color:rgb(0,0,0);">i</span><span style="color:rgb(92,92,92);">=</span><span \
style="color:rgb(188,143,143);">1</span><span \
style="color:rgb(255,170,0);">:</span><span \
style="color:rgb(188,143,143);">50</span><span style="color:rgb(0,0,0);">,</span> \
<span style="color:rgb(50,185,185);">tic</span><span \
style="color:rgb(74,85,219);">(</span><span \
style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span \
style="color:rgb(0,0,0);">scf</span><span style="color:rgb(74,85,219);">(</span><span \
style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span \
style="color:rgb(0,0,0);">t</span><span style="color:rgb(92,92,92);">=</span><span \
style="color:rgb(0,0,0);">t</span><span style="color:rgb(92,92,92);">+</span><span \
style="color:rgb(50,185,185);">toc</span><span \
style="color:rgb(74,85,219);">(</span><span \
style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span \
style="color:rgb(50,185,185);">xdel</span><span \
style="color:rgb(74,85,219);">(</span><span \
style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span \
style="color:rgb(160,32,240);">end</span><span style="color:rgb(0,0,0);">;</span> \
<span style="color:rgb(0,0,0);">t</span><span style="color:rgb(0,0,0);">,</span> \
<span style="color:rgb(0,0,0);">t</span><span \
style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">50</span>  \
[s]              [s]      4.1.2 base  figure() <span \
style="color:rgb(188,143,143);">6.0</span><span \
style="color:rgb(188,143,143);">.0</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">62.39</span><span \
style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">50</span>  \
<span style="color:rgb(188,143,143);">1.248</span>   <span \
style="color:rgb(188,143,143);">18.5                 2.32</span> <span \
style="color:rgb(188,143,143);">5.5</span><span \
style="color:rgb(188,143,143);">.2</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">73.62</span><span \
style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">50</span>  \
<span style="color:rgb(188,143,143);">1.4723</span>  <span \
style="color:rgb(188,143,143);">21.8</span> <span \
style="color:rgb(188,143,143);">5.5</span><span \
style="color:rgb(188,143,143);">.0</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">69.94</span><span \
style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">50</span>  \
<span style="color:rgb(188,143,143);">1.3988</span>  <span \
style="color:rgb(188,143,143);">20.8</span> <span \
style="color:rgb(188,143,143);">5.4</span><span \
style="color:rgb(188,143,143);">.1</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">37.33</span><span \
style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">50</span>  \
<span style="color:rgb(188,143,143);">0.7466</span>  <span \
style="color:rgb(188,143,143);">11.1</span> <span \
style="color:rgb(188,143,143);">5.4</span><span \
style="color:rgb(188,143,143);">.0</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">24.07</span><span \
style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">50</span>  \
<span style="color:rgb(188,143,143);">0.4814</span>  <span \
style="color:rgb(188,143,143);">7.14</span> <span \
style="color:rgb(188,143,143);">5.3</span><span \
style="color:rgb(188,143,143);">.0</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">3.102</span><span \
style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">50</span>  \
<span style="color:rgb(188,143,143);">0.0620</span>  <span \
style="color:rgb(188,143,143);">0.92</span> <span \
style="color:rgb(188,143,143);">5.1</span><span \
style="color:rgb(188,143,143);">.0</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">4.069</span><span \
style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">50</span>  \
<span style="color:rgb(188,143,143);">0.0814</span>  <span \
style="color:rgb(188,143,143);">1.21</span> <span \
style="color:rgb(188,143,143);">4.1</span><span \
style="color:rgb(188,143,143);">.2</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">3.370</span><span \
style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">50</span>  \
<span style="color:rgb(188,143,143);">0.0674</span>  <span \
style="color:rgb(188,143,143);">1.00                0.014</span></pre>  </li>
        <li><span style="color:rgb(188,143,143);"><font color="#000000">Opening
              20 figures :<br>
            </font></span>
          <pre style="font-family:Monospaced;font-style:normal;font-size:12.0;"><span \
style="color:rgb(0,0,0);">t</span><span style="color:rgb(92,92,92);">=</span><span \
style="color:rgb(74,85,219);">[</span><span \
style="color:rgb(74,85,219);">]</span><span style="color:rgb(0,0,0);">;</span> <span \
style="color:rgb(160,32,240);">for</span> <span \
style="color:rgb(0,0,0);">i</span><span style="color:rgb(92,92,92);">=</span><span \
style="color:rgb(188,143,143);">1</span><span \
style="color:rgb(255,170,0);">:</span><span \
style="color:rgb(188,143,143);">20</span><span style="color:rgb(0,0,0);">,</span> \
<span style="color:rgb(50,185,185);">tic</span><span \
style="color:rgb(74,85,219);">(</span><span \
style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span \
style="color:rgb(0,0,0);">scf</span><span style="color:rgb(74,85,219);">(</span><span \
style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span \
style="color:rgb(0,0,0);">t</span><span style="color:rgb(74,85,219);">(</span><span \
style="color:rgb(0,0,0);">i</span><span style="color:rgb(74,85,219);">)</span><span \
style="color:rgb(92,92,92);">=</span><span \
style="color:rgb(50,185,185);">toc</span><span \
style="color:rgb(74,85,219);">(</span><span \
style="color:rgb(74,85,219);">)</span><span style="color:rgb(0,0,0);">;</span> <span \
style="color:rgb(160,32,240);">end</span><span style="color:rgb(0,0,0);">;</span> \
<span style="color:rgb(50,185,185);">sum</span><span \
style="color:rgb(74,85,219);">(</span><span style="color:rgb(0,0,0);">t</span><span \
style="color:rgb(74,85,219);">)</span><span \
style="color:rgb(92,92,92);">/</span><span style="color:rgb(188,143,143);">20</span>

<span style="color:rgb(188,143,143);">6.0</span><span \
style="color:rgb(188,143,143);">.0</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">5.30</span> <span \
style="color:rgb(74,85,219);">[</span><span \
style="color:rgb(188,143,143);">1.35</span> <span \
style="color:rgb(92,92,92);">=</span><span style="color:rgb(92,92,92);">&gt;</span> \
<span style="color:rgb(188,143,143);">9.51</span><span \
style="color:rgb(74,85,219);">]</span> <span \
style="color:rgb(188,143,143);">5.5</span><span \
style="color:rgb(188,143,143);">.2</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">5.68</span> <span \
style="color:rgb(74,85,219);">[</span><span \
style="color:rgb(188,143,143);">1.77</span> <span \
style="color:rgb(92,92,92);">=</span><span style="color:rgb(92,92,92);">&gt;</span> \
<span style="color:rgb(188,143,143);">9.92</span><span \
style="color:rgb(74,85,219);">]</span> <span \
style="color:rgb(188,143,143);">5.5</span><span \
style="color:rgb(188,143,143);">.0</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">5.66</span> <span \
style="color:rgb(74,85,219);">[</span><span \
style="color:rgb(188,143,143);">1.82</span> <span \
style="color:rgb(92,92,92);">=</span><span style="color:rgb(92,92,92);">&gt;</span> \
<span style="color:rgb(188,143,143);">9.85</span><span \
style="color:rgb(74,85,219);">]</span> range from the #1 to #20 <span \
style="color:rgb(188,143,143);">5.4</span><span \
style="color:rgb(188,143,143);">.1</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">1.18</span> <span \
style="color:rgb(188,143,143);">5.4</span><span \
style="color:rgb(188,143,143);">.0</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">0.923</span> <span \
style="color:rgb(188,143,143);">5.3</span><span \
style="color:rgb(188,143,143);">.0</span> <span \
style="color:rgb(255,170,0);">:</span> <span \
style="color:rgb(188,143,143);">0.110</span> <span \
style="color:rgb(188,143,143);">5.1</span><span \
style="color:rgb(188,143,143);">.0</span> <span \
style="color:rgb(255,170,0);">:</span>  <span \
style="color:rgb(188,143,143);">4.1</span><span \
style="color:rgb(188,143,143);">.2</span> <span \
style="color:rgb(255,170,0);">:</span> <span style="color:rgb(188,143,143);">0.0774

<img src="cid:part1.FB5D4FAA.8A722ED5@free.fr" alt="" class="" width="340" \
height="184"></span><font face="Arial"> <img \
src="cid:part2.3CF2E434.479097E6@free.fr" alt="" class="" width="303" \
height="205"></font></pre>  </li>
      </ol>
      Samuel</blockquote>
    <p><br>
    </p>
    <p>This issue is fixed in Scilab 6.1.0, on Windows 10. Fortunately.<br>
      Here are the current Scilab 6.1.0 performances (on another
      computer than in 2017):</p>
    <p><img src="cid:part3.3FD5D1C6.F59F3850@free.fr" alt=""></p>
    <p>It is still ~5x slower than with Scilab 4.1.2 (on the same
      computer),<br>
      but it no longer depends on the number or figures currently
      opened.<br>
    </p>
    Samuel<br>
    <br>
  </body>
</html>


["jcodlckpmnenjjdp.png" (image/png)]
["jgdmiphdjmkceaap.png" (image/png)]
["gmafflebljgnpgfe.png" (image/png)]

_______________________________________________
users mailing list
users@lists.scilab.org
http://lists.scilab.org/mailman/listinfo/users


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic