More Benchmarks
Joel Peshkin
bugreport at peshkin.net
Fri Sep 6 14:22:33 UTC 2002
At bbaetz's request, I reran one of these with the code hacked to use
$::db->prepare("SELECT stuff WHERE field = ?")
outside the critical loops and $sth->execute($value) inside instead of
using SendSQL.
Doing this only on a the inner loop of the 500 group rederivation (one
prepare, and 500 executes), this sped up the
function by a nearly factor of 2 from 1.3sec to 0.7sec
Bring on Bugzilla::DBI
-Joel
Joel Peshkin wrote:
>
> Benchmarks on current schema in the Groups_20020716_Branch....
>
> AMD Duron 950 system hosting both BZ and mysqld
>
> 10000 users 500 open groups, 500 closed groups (i.e. almost all
> users are members of 500
> of the 1000 defined groups)
>
> Rederivation of group membership happens on the first login by each
> user after a group definition change has occurred,
>
> rederive 1.3 sec wall time each user for membership in 500 groups (60%
> cpu=perl, 40% cpu=sql)
> With only 50 groups this falls to 0.13 sec each
>
> fetching all bugs and then calling CanSeeBug on each.....
> 500 bugs retrieved by search but only 3 visible --> 2 seconds elapsed
> wall time
> 50000 bugs retrieved by search but only 3 visible --> 140 seconds
> elapsed wall time
>
> Building a join to bug_group_map into the query.....
> 50000 bugs retrieved by search but only 3 visible --> 10 seconds
> elapsed wall time
>
> Size of user_group_map for 116 users in 500 groups each = 1.2MB
>
> I think this is scalable enough based on this. If anyone can provide
> some numbers from large BZ sites to plug into this analysis, please
> post them.
>
> -Joel
>
More information about the developers
mailing list