Another bench on gitweb
- From
- Bruno Cesar Ribas <ribas@c3sl.ufpr.br>
- Date
- Feb 10, 2008, 03:09 UTC
- Message-ID
- <20080210030919.GA32733@c3sl.ufpr.br>
Hello,
I made another SIMPLE bench on gitweb. Testing time on git-for-each-ref.
Using my 1000 projects I ran:
8<----------------
#/bin/bash
PEGAR_ref() {
PROJ=projeto$1.git;
cd $PROJ;
printf "\tlastref = $(git-for-each-ref --sort=-committerdate --count=1\
--format='%(committer)')\n" >> config;
cd -;
}
cd $HOME/scm
for((i=1;i<=1000;i++)){ PEGAR_ref $i & }
8<----------------And at the "git_get_last_activity" instead of running git-for-each-ref i asked to get gitweb.lastref
Here are the results: "dd" means: dd if=/dev/zero of=$HOME/dd/$i bs=1M count=400000
Running 2 dd to generate disk IO. Here comes the results: NO projects_list projects_list 7m56s55 6m11s95 cached last change, using gitweb.lastref 16m30s69 15m10s74 default gitweb, using FS's owner 16m07s40 15m24s34 patched to get gitweb.owner
Now results for a 1000projects on an idle machine. (No dd running to generate IO) NO projects_list projects_list 0m26s79 0m38s70 cached last change, using gitweb.lastref 1m19s08 1m09s55 default gitweb, using FS's owner 1m17s58 1m09s55 patched to get gitweb.owner
I found out those VERY interesting, so instead of trying to think a new way to store gitweb config, we should think a way to cache those information.
-- Bruno Ribas - ribas@c3sl.ufpr.br http://web.inf.ufpr.br/ribas C3SL: http://www.c3sl.ufpr.br