Bram Moolenaar wrote: >> After the patch, starting nerdtree in VIM's src is ~35% faster (1.7s vs >> 2.6s) and the CRT's locale handling functions no longer appear in the >> profile (and I warmed the file cache to remove disk reading from the >> times). In general this should help speed up longer running VIML scripts. > > Yeah, we've had problems with library functions before. > > I think using a table is often slower than simple compares, because a > table lookup has to access memory, while a compare is local inside the > CPU. Especially for ASCII_ISLOWER and ASCII_ISUPPER, it's just two > compares. Changing VIM_ISDIGIT() this way is likely to make it slower. > ASCII_ISALNUM() requires six compares, perhaps a table is faster then?
You can half the number of comparisons when doing range checking. Instead of doing 2 comparisons... if (c >= '0' && c <= '9') You can do it in one comparison with this trick: if ((unsigned)c - '0' < 10) And that can be faster than tables lookup because table access thrashes the L1 cache. Dominique -- -- You received this message from the "vim_dev" maillist. Do not top-post! Type your reply below the text you are replying to. For more information, visit http://www.vim.org/maillist.php --- You received this message because you are subscribed to the Google Groups "vim_dev" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
