[grisbi-bugs] [Grisbi 0001601]: Long list of payees take very long time to be displayed

Grisbi Bug Tracker bugtracker at grisbi.org
Sat Oct 12 10:23:44 CEST 2013


A NOTE has been added to this issue. 
====================================================================== 
http://www.grisbi.org/bugsreports/view.php?id=1601 
====================================================================== 
Reported By:                fpoulain
Assigned To:                pbiava
====================================================================== 
Project:                    Grisbi
Issue ID:                   1601
Category:                   Main
Reproducibility:            always
Severity:                   major
Priority:                   normal
Status:                     assigned
OS:                         Autre(Other) 
Unstable Impact:            Yes 
Version OS:                  
Version GTK:                 
====================================================================== 
Date Submitted:             2013-09-25 22:54 CEST
Last Modified:              2013-10-12 10:23 CEST
====================================================================== 
Summary:                    Long list of payees take very long time to be
displayed
Description: 
I use Grisbi for accounting in the April French NGO. We have a long list of
payees. For a long time, displaying the payees is no longer possible due to the
size of the list (> 8000 payees).

It appears that the main CPU effort for displaying payees is due to the sorting
of the GtkTreeModel in src/metatree.c. Indeed, we can pre-sort the payee list,
at C data (low) level, before filling the GtkTreeModel. It runs 100x faster on
my computer, and allows a total payee sorting to be 10x faster, by avoiding many
expansive comparisons at the GtkTreeModel level.

Here is two patches. The first one introduces a pre-sorting feature. The second
one shows some timings. Feel free to test with and without.

I don't have a test-suite. All what I know is that on my .gsb file, there is
more than 8000 payees, and displaying payees take more than 1 minute.
====================================================================== 

---------------------------------------------------------------------- 
 (0003670) pbiava (administrator) - 2013-09-28 17:56
 http://www.grisbi.org/bugsreports/view.php?id=1601#c3670 
---------------------------------------------------------------------- 
Merci pour ton patch. Il va être commité sous peu dans la branche 1.0.x 

---------------------------------------------------------------------- 
 (0003678) pbiava (administrator) - 2013-10-12 08:00
 http://www.grisbi.org/bugsreports/view.php?id=1601#c3678 
---------------------------------------------------------------------- 
En poursuivant mes tests je me suis aperçu que ça supprimait des tiers de
manière importante. As-tu pu faire des tests et le même problème ? 

---------------------------------------------------------------------- 
 (0003679) pbiava (administrator) - 2013-10-12 09:56
 http://www.grisbi.org/bugsreports/view.php?id=1601#c3679 
---------------------------------------------------------------------- 
C'est corrigé. 

---------------------------------------------------------------------- 
 (0003680) fpoulain (reporter) - 2013-10-12 09:57
 http://www.grisbi.org/bugsreports/view.php?id=1601#c3680 
---------------------------------------------------------------------- 
Hum ... je n'ai pas remarqué ça, mais je vais faire des tests la semaine
prochaine. 

---------------------------------------------------------------------- 
 (0003681) fpoulain (reporter) - 2013-10-12 10:19
 http://www.grisbi.org/bugsreports/view.php?id=1601#c3681 
---------------------------------------------------------------------- 
Ok. Nos messages se sont croisés. :) Par curiosité, c'était quoi ? 

---------------------------------------------------------------------- 
 (0003682) pbiava (administrator) - 2013-10-12 10:23
 http://www.grisbi.org/bugsreports/view.php?id=1601#c3682 
---------------------------------------------------------------------- 
Pour reproduire tu ouvres la vue des tiers puis tu faits quelque chose et tu
sauvegardes.

J'ai juste ajouté une copie de la liste des tiers pour la liste temporaire car
le fait de la trier modifie la liste d'origine. 

Issue History 
Date Modified    Username       Field                    Change               
====================================================================== 
2013-09-25 22:54 fpoulain       New Issue                                    
2013-09-25 22:54 fpoulain       File Added: sort_payee_list.diff                
   
2013-09-25 22:55 fpoulain       File Added: add_timings.diff                    
2013-09-28 12:00 pbiava         Assigned To               => pbiava          
2013-09-28 12:00 pbiava         Status                   new => assigned     
2013-09-28 17:56 pbiava         Note Added: 0003670                          
2013-10-12 08:00 pbiava         Note Added: 0003678                          
2013-10-12 09:56 pbiava         Note Added: 0003679                          
2013-10-12 09:57 fpoulain       Note Added: 0003680                          
2013-10-12 10:19 fpoulain       Note Added: 0003681                          
2013-10-12 10:23 pbiava         Note Added: 0003682                          
======================================================================



More information about the bugsreports mailing list