From 27c8079fded40c4d4345acd5aee489d29bb14470 Mon Sep 17 00:00:00 2001 From: Ingo Schwarze Date: Thu, 10 Apr 2014 02:46:21 +0000 Subject: Next speed optimization step for the new apropos(1). Split manual names out of the common "keys" table into their own "names" table. This reduces standard apropos(1) search times (i.e. searching for names and descriptions only) by typically about 70% for the full /usr/share/man database. (Yes, that multiplies with the previous optimization step, so both together have reduced search times by a factor of more than six. I'm not done yet, expect more to come.) Even with the minimal databases built with makewhatis(8) -Q, this step still reduces search times by 15-20%. For both cases, database sizes and build times hardly change (+/-2%). --- mansearch_const.c | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) (limited to 'mansearch_const.c') diff --git a/mansearch_const.c b/mansearch_const.c index 95b69acf..b7ffad40 100644 --- a/mansearch_const.c +++ b/mansearch_const.c @@ -1,4 +1,4 @@ -/* $Id: mansearch_const.c,v 1.3 2014/04/09 21:50:08 schwarze Exp $ */ +/* $Id: mansearch_const.c,v 1.4 2014/04/10 02:46:21 schwarze Exp $ */ /* * Copyright (c) 2014 Ingo Schwarze * @@ -20,13 +20,12 @@ #include "manpath.h" #include "mansearch.h" -const int mansearch_keymax = 41; +const int mansearch_keymax = 40; -const char *const mansearch_keynames[41] = { - "NAME", "Nm", "arch", "sec", "Xr", "Ar", "Fa", "Fl", - "Dv", "Fn", "Ic", "Pa", "Cm", "Li", "Em", "Cd", - "Va", "Ft", "Tn", "Er", "Ev", "Sy", "Sh", "In", - "Ss", "Ox", "An", "Mt", "St", "Bx", "At", "Nx", - "Fx", "Lk", "Ms", "Bsx", "Dx", "Rs", "Vt", "Lb", - "Nd" +const char *const mansearch_keynames[40] = { + "arch", "sec", "Xr", "Ar", "Fa", "Fl", "Dv", "Fn", + "Ic", "Pa", "Cm", "Li", "Em", "Cd", "Va", "Ft", + "Tn", "Er", "Ev", "Sy", "Sh", "In", "Ss", "Ox", + "An", "Mt", "St", "Bx", "At", "Nx", "Fx", "Lk", + "Ms", "Bsx", "Dx", "Rs", "Vt", "Lb", "Nm", "Nd" }; -- cgit v1.2.3-56-ge451