37b1bc9bf0ae8bca50b53051cf8d3dee5c617db9
[scilab.git] / scilab / modules / functions / macros / showprofile.sci
1 // Scilab ( http://www.scilab.org/ ) - This file is part of Scilab
2 // Copyright (C) INRIA
3 // Copyright (C) 2013 - Samuel GOUGEON
4 // Copyright (C) 2014 - Scilab Enterprises
5 //
6 // This file must be used under the terms of the CeCILL.
7 // This source file is licensed as described in the file COPYING, which
8 // you should have received as part of this distribution.  The terms
9 // are also available at
10 // http://www.cecill.info/licences/Licence_CeCILL_V2.1-en.txt
11
12 function showprofile(fun)
13     if argn(2) < 1 then
14         error(sprintf(_("%s: Wrong number of input argument(s): %d expected.\n"), "showprofile", 1));
15     end
16
17     // get profiling results
18     lst = macr2lst(fun);
19     prof = profile(lst);
20
21     // convert to string profiling results
22     nb_calls = string(prof(:,1));
23     cpu_time = string(round(100*prof(:,2))/100);
24     effort = string(prof(:,3));
25
26     // get function code
27     code = fun2string(lst, "fun");
28
29     // left justify
30     nb_calls = justify(nb_calls, "l");
31     cpu_time = justify(cpu_time, "l");
32     effort = justify(effort, "l");
33
34     printf("|%s|%s|%s|%s\n", nb_calls, cpu_time, effort, code);
35 endfunction