On 6 syys, 19:17, Anssi Kääriäinen <anssi.kaariai...@thl.fi> wrote:
> I now have a pretty good WIP approach of tracking changes in testing.
> The changes can be found from here: [https://github.com/akaariai/
> django/tree/fast_tests_merged]. The approach relies on existing
> signals + a new "model_changed" signal, which is used to signal
> bulk_create and .update() changes, and could be used for raw SQL
> changes, too.
>
> The results are promising:
>   - PostgreSQL with selenium tests, master 33m4s, patched: 9m51s
>   - SQLite, no selenium tests, master: 7m35s, patched: 3m6s.

I did a little bit more tuning, and now the runtime for SQLite is
2m34s (of which 30s is spent in time.sleep()). I can't see any more
easy targets for performance improvements. The only thing that comes
to mind is making fixture_loading use bulk_insert, but that has some
problems (signals and multitable models aren't well supported by
bulk_create).

The changes done compared to the last try:
    - Made validation skip already validated models
    - Made contenttype fetching in permission creation more efficient
    - Skip permission creation when there is nothing to create

I also tested MySQL and Oracle, MySQL was around 9m30s without
selenium tests and Oracle ran in 16m, no selenium tests. On Oracle the
database creation takes 7m, actually running the tests 9m.

For those interested there is a pyprofile at: 
http://users.tkk.fi/~akaariai/sqlite.pyprofile.gz

As said, there doesn't seem to be anything too easy to squash any
more.

 - Anssi

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" group.
To post to this group, send email to django-developers@googlegroups.com.
To unsubscribe from this group, send email to 
django-developers+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-developers?hl=en.

Reply via email to