[Scilab-Dev] How Core works ?

Clément David clement.david at scilab-enterprises.com
Wed Feb 22 09:44:49 CET 2017


Hi Amanda,

> Someone knows the Java VisualVM ?

Yes I used it when debugging memory issues in Xcos and other Java coded components. It provides *a
lot* of information about running but requires runtime instrumentation which is not available in
released Scilab build.

> We have something similar for SciLAB ?

We have some "inspector" gateways available in a Scilab debug build which provides
`inspectorShowItem()`, `inspectorGetItem()`, etc... This is not enabled in a released build due to
the overhead.

At runtime in release mode, Scilab 5 `who()` was able to return the size of the allocated data but
this is not implemented yet as this is not clear to us if we should return the size of the allocated
raw data or the size of the Scilab value. For exemple :

a = zeros(10,10);

 1. `a` is 10x10 matrix of double, and thus with size:  10*10*8 bytes.
 2. `a` is an ArrayOf<double> with size : sizeof(types::Double) + 10*10*8 bytes

Both computation are valuable, to determine either the data weight in memory or the memory allocated
by scilab to use them.

Note: currently our Types implementation are heavy due to the added multi-dimensional array ; on my
machine :

(gdb) p sizeof(types::Double)
$1 = 216
(gdb) p sizeof(types::ArrayOf<double>)
$2 = 208
(gdb) p sizeof(types::GenericType)
$3 = 192
(gdb) p sizeof(types::InternalType)
$4 = 40


Thanks for your questions,

--
Clément



More information about the dev mailing list