[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 & 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);">></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);">></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);">></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