Author: stefan2 Date: Thu Apr 12 20:49:08 2012 New Revision: 1325507 URL: http://svn.apache.org/viewvc?rev=1325507&view=rev Log: Hash lookups are a relatively frequent operation. Use faster functions to construct the hash keys.
* subversion/libsvn_fs_fs/fs_fs.c (read_representation): use svn_fs_fs__combine_two_numbers instead of sprintf * subversion/libsvn_fs_fs/tree.c (locate_cache): use svn_fs_fs__combine_number_and_string instead of sprintf Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c subversion/trunk/subversion/libsvn_fs_fs/tree.c Modified: subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c?rev=1325507&r1=1325506&r2=1325507&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c (original) +++ subversion/trunk/subversion/libsvn_fs_fs/fs_fs.c Thu Apr 12 20:49:08 2012 @@ -3624,8 +3624,9 @@ read_representation(svn_stream_t **conte { svn_stringbuf_t *fulltext; svn_boolean_t is_cached; - fulltext_cache_key = apr_psprintf(pool, "%ld/%" APR_OFF_T_FMT, - rep->revision, rep->offset); + fulltext_cache_key = svn_fs_fs__combine_two_numbers(rep->revision, + rep->offset, + pool); SVN_ERR(svn_cache__get((void **) &fulltext, &is_cached, ffd->fulltext_cache, fulltext_cache_key, pool)); Modified: subversion/trunk/subversion/libsvn_fs_fs/tree.c URL: http://svn.apache.org/viewvc/subversion/trunk/subversion/libsvn_fs_fs/tree.c?rev=1325507&r1=1325506&r2=1325507&view=diff ============================================================================== --- subversion/trunk/subversion/libsvn_fs_fs/tree.c (original) +++ subversion/trunk/subversion/libsvn_fs_fs/tree.c Thu Apr 12 20:49:08 2012 @@ -57,6 +57,7 @@ #include "tree.h" #include "fs_fs.h" #include "id.h" +#include "temp_serializer.h" #include "private/svn_mergeinfo_private.h" #include "private/svn_fs_util.h" @@ -154,8 +155,8 @@ locate_cache(svn_cache__t **cache, { fs_fs_data_t *ffd = root->fs->fsap_data; if (cache) *cache = ffd->rev_node_cache; - if (key && path) *key = apr_psprintf(pool, "%ld%s", - root->rev, path); + if (key && path) *key + = svn_fs_fs__combine_number_and_string(root->rev, path, pool); } }