On Mon, May 19, Michael Matz wrote:
Hi,
On Sun, 18 May 2008, josef reidiner wrote:
I still think, that the best way is different implementation for exact matching (YaST use it (?) ). Good is same index on name (is something liek that already exist on pool?) which can fast find by exact matching like some tree(O(log(n))) or hashing (O(1)). Then when user choose from UI e.g. 100 exact packaga for lock, you only need 100 quick look to index during each start.
I never ever want to see libzypp needing many megabytes of RAM any more, except if absolutely required. That's why I'm so against any indexes and try to find solutions that wouldn't require any, or could make use of data we already have.
For instance in this case: if we want to speedup searches for exact package names (and only for names), then we can reuse the
Use ResPool::byIdent_iterator ResPool::byIdentBegin( ResKind::package, name ) ResPool::byIdentEnd ( ResKind::package, name ) It's purpose is to iterate over all items with that name. It's implemementation should be 'as fast as possible', but no need for the application to know the details. If it can be improved, all users will benefit. ( ResPool::byIdent is actually based on an (Id->PoolItem) index. The only index we maintain, and the implementation provided by matz@ is reasonable fast ;) ) -- cu, Michael Andres +------------------------------------------------------------------+ Key fingerprint = 2DFA 5D73 18B1 E7EF A862 27AC 3FB8 9E3A 27C6 B0E4 +------------------------------------------------------------------+ Michael Andres YaST Development ma@novell.com SUSE LINUX Products GmbH, GF: Markus Rex, HRB 16746 (AG Nuernberg) Maxfeldstrasse 5, D-90409 Nuernberg, Germany, ++49 (0)911 - 740 53-0 +------------------------------------------------------------------+ -- To unsubscribe, e-mail: zypp-devel+unsubscribe@opensuse.org For additional commands, e-mail: zypp-devel+help@opensuse.org