Projects/Skrooge

    From KDE TechBase
    Revision as of 11:12, 6 October 2009 by Miraks (talk | contribs)


    Skrooge


    Skrooge is a personal finances manager for KDE4, aiming at being simple and intuitive. It allows you to keep track of your expenses and incomes, categorize them, and build reports of them.

    Skrooge is a part of KDE Extragear, in the Office module

    How to debug

    Trace activation

    To activate traces, you just have to export an environment variable in your console:

    export SKGTRACE=XX

    XX is the level of traces you want. (0<=XX<=20, 10 is correct)

    Profiling

    To activate the basic profiling mechanism included in Skrooge, you just have to export an environment variable in your console:

    export SKGTRACEPERFO=1

    Then, you can find two new commands in Skrooge:

    • Restart profiling (CTRL+Pause) to initialize the profiling
    • Open profiling (ALT+Pause) to open the result of the profiling

    Then you will get something like this:

    method , nb call , millisecondes , average , min , max , own time , average own time SKGMainPanel::setNewTabContent-addTab , 1 , 38.26897848 , 38.26897848 , 38.26897848 , 38.26897848 , 25.6370585 , 25.6370585
    SKGObjectModelBase::refresh , 2 , 8.741794825 , 4.370897412 , 0.9698964357 , 7.771898389 , 8.147958875 , 4.073979437
    SKGMainPanel::setNewTabContent , 1 , 49.36599612 , 49.36599612 , 49.36599612 , 49.36599612 , 3.772916079 , 3.772916079
    SKGOperationBoardWidget::SKGOperationBoardWidget , 1 , 3.179117203 , 3.179117203 , 3.179117203 , 3.179117203 , 2.963078141 , 2.963078141
    SKGMainPanel::onOpenContext , 1 , 50.43999612 , 50.43999612 , 50.43999612 , 50.43999612 , 1.074000001 , 1.074000001
    ...

    Remark: If SKGTRACE is set then you will be able to find the execution time of each methods in traces.

    To profile only sql order, you just have to export an environment variable in your console:

    export SKGTRACESQL=XX

    Only sql order with an execution time greater then XX ms will be displayed in console.

    In the console, you will get something like:

    executeSqliteOrder :SELECT t_name, t_TYPENLS, f_CURRENTAMOUNT, t_close from v_account_display WHERE (t_type='C' OR t_type='D' OR t_type='I' OR t_type='O') ORDER BY t_TYPENLS, t_name TIME=441 ms