Complete.Org: Mailing Lists: Archives: freeciv-dev: October 2003:
[Freeciv-Dev] Re: gtk clients: translate_menu_path
Home

[Freeciv-Dev] Re: gtk clients: translate_menu_path

[Top] [All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index] [Thread Index]
Cc: freeciv-dev@xxxxxxxxxxx
Subject: [Freeciv-Dev] Re: gtk clients: translate_menu_path
From: Jason Short <jshort@xxxxxxxxxxxxxx>
Date: Thu, 16 Oct 2003 17:54:15 -0400

--On Thursday, October 16, 2003 3:58 PM +0100 Vasco Alexandre Da Silva Costa <vasc@xxxxxxxxxxxxxx> wrote:

On Thu, 16 Oct 2003, Per I. Mathisen wrote:

I just read an old profile of the gtk2 client done by Thomas, and I
noticed that 18% of CPU time was spent inside translate_menu_path(). This
is a function that is called once every menu item every turn, at least.

It is a quite expensive function. Is it not possible to make this
function calculate the result once only, and cache it? Surely the result
does not change throughout the game for the same set of input. How about
putting the translated string into hashlist, for instance?
Alternatively, we could the uses of it turn it into a macro, and make
some fancy use of static strings to hold this data. This would be even
faster.

I can make it faster, but I doubt it is what is making the unit moves
slower.

Actually it could be. The new flush code passes control back to gdk during each flush, and gdk may do other updates as well. It's possible that it re-translates the menu during this time.

That might explain why I've never been able to reproduce this problem...

jason



[Prev in Thread] Current Thread [Next in Thread]