Transaction register question
Geert Janssens
janssens-geert at telenet.be
Sat Aug 17 13:05:19 EDT 2013
[ Moving this to devel, as it's not really a user question anymore]
On 17-08-13 15:53, David Carlson wrote:
>
>
> Hi Robert, interested users and developers,
>
> I think that development of register2 or some other replacement for the
> current method of transaction entry is crucial to the continued success
> of GnuCash. That is not because the current register is 'bad', but
> because emulation of the current register scheme places unnecessary
> burdens on developers who seem to be trying to (sorry, folks) fit a
> square peg in a rounds hole.
>
> Generally, database interface programs use 'forms' to input data. A
> 'form' can easily be designed to help the user complete his task
> efficiently and go on to the next task. When the 'form' is separated
> from the 'table' that shows the register, it becomes possible to
> optimize one without compromising the other. That is one of the great
> features of a database interface.
>
> I think this issue needs more discussion and more alternative ideas
> considered.
>
> I propose that the transaction editing be done in a 'form' that is
> separate from the register window. That allows the register performance
> to be optimized separately from the editing process.
Hi David,
Thank you for your suggestion. But I have to disagree.
The performance issue we are currently facing is not in the data loading
end. The data is loaded completely in memory when GnuCash starts, which
makes it even more quickly to work with than a true database backend.
There are other motivations to switch to a database backend, but they
are not relevant to the performance issue we have now in the register.
The current bottleneck is purely in the widget that has to display the
transaction splits in the register (a GtkTreeView widget). If the list
of splits is too long, this widget gets slow. I don't know the exact
cause as I haven't investigated this myself. But I did use google to
check for performance issues with a GtkTreeView widget and that does
suggest several possible causes and solutions. It will be a matter of
finding the exact cause and use the appropriate solution for it. I
actually think that what Robert has done so far is already largely in
the right direction: load only a subset of splits at all times, namely
those that are visible and a few around it. The only thing still needed
is to make the standard scrollbar aware of the complete range of splits
regardless, so it can be used to scroll all the way through all splits.
This logic is now in a separate scrollbar, and that's what is
superfluous in my opinion. The same can probably be done in the main
scrollbar.
In addition to this, I don't think using a from would do anything to
improve performance. The performance hit is in trying to display the
splits. This would still have to be done even if you want to use a
separate form. If not, we would lose a lot in user-data interaction. I
perceive it as a big benefit to be able to have the neighbouring splits
around when entering new data. This context gives very useful feedback
like did I enter this transaction already, is the balance what I expect
after input,...
I can be wrong, but from what I see, I don't think a form will help me
work more efficient. And by the way, I have used several accounting
programs that do use forms. As a heavy keyboard user I have always felt
that slow me down.
As always this is just my view on the issue.
Geert
>
> Thanks.
>
> David C
> _______________________________________________
> gnucash-user mailing list
> gnucash-user at gnucash.org
> https://lists.gnucash.org/mailman/listinfo/gnucash-user
> -----
> Please remember to CC this list on all your replies.
> You can do this by using Reply-To-List or Reply-All.
More information about the gnucash-devel
mailing list