diff --git a/djangobench/benchmarks/query_all/__init__.py b/djangobench/benchmarks/query_all/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/djangobench/benchmarks/query_all/benchmark.py b/djangobench/benchmarks/query_all/benchmark.py new file mode 100644 index 0000000..ad1d988 --- /dev/null +++ b/djangobench/benchmarks/query_all/benchmark.py @@ -0,0 +1,17 @@ +from djangobench.utils import run_benchmark +from query_all.models import Book + +def benchmark(): + list(Book.objects.iterator()) + +def setup(): + for i in range(0, 3000): + Book(pk=i,title='foobar_%s' % i ).save() + +run_benchmark( + benchmark, + setup=setup, + meta = { + 'description': 'A simple Model.objects.iterator() call for large number of objects.', + } +) diff --git a/djangobench/benchmarks/query_all/models.py b/djangobench/benchmarks/query_all/models.py new file mode 100644 index 0000000..80fbbbe --- /dev/null +++ b/djangobench/benchmarks/query_all/models.py @@ -0,0 +1,4 @@ +from django.db import models + +class Book(models.Model): + title = models.CharField(max_length=100) diff --git a/djangobench/benchmarks/query_all/settings.py b/djangobench/benchmarks/query_all/settings.py new file mode 100644 index 0000000..0e3942a --- /dev/null +++ b/djangobench/benchmarks/query_all/settings.py @@ -0,0 +1,3 @@ +from djangobench.base_settings import * + +INSTALLED_APPS = ['query_all'] diff --git a/djangobench/benchmarks/query_all_multifield/__init__.py b/djangobench/benchmarks/query_all_multifield/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/djangobench/benchmarks/query_all_multifield/benchmark.py b/djangobench/benchmarks/query_all_multifield/benchmark.py new file mode 100644 index 0000000..bfa5c37 --- /dev/null +++ b/djangobench/benchmarks/query_all_multifield/benchmark.py @@ -0,0 +1,20 @@ +from djangobench.utils import run_benchmark +from query_all_multifield.models import MultiField + +def benchmark(): + list(MultiField.objects.iterator()) + +def setup(): + for i in range(0, 3000): + kwargs = {} + for j in range(1, 11): + kwargs['field%s' % j] = 'foobar_%s_%s' % (i, j) + MultiField(**kwargs).save() + +run_benchmark( + benchmark, + setup=setup, + meta = { + 'description': 'A simple Model.objects.iterator() call for large number of objects and large number of fields.', + } +) diff --git a/djangobench/benchmarks/query_all_multifield/models.py b/djangobench/benchmarks/query_all_multifield/models.py new file mode 100644 index 0000000..1fbea65 --- /dev/null +++ b/djangobench/benchmarks/query_all_multifield/models.py @@ -0,0 +1,13 @@ +from django.db import models + +class MultiField(models.Model): + field1 = models.CharField(max_length=100) + field2 = models.CharField(max_length=100) + field3 = models.CharField(max_length=100) + field4 = models.CharField(max_length=100) + field5 = models.CharField(max_length=100) + field6 = models.CharField(max_length=100) + field7 = models.CharField(max_length=100) + field8 = models.CharField(max_length=100) + field9 = models.CharField(max_length=100) + field10 = models.CharField(max_length=100) diff --git a/djangobench/benchmarks/query_all_multifield/settings.py b/djangobench/benchmarks/query_all_multifield/settings.py new file mode 100644 index 0000000..d0d8ec2 --- /dev/null +++ b/djangobench/benchmarks/query_all_multifield/settings.py @@ -0,0 +1,3 @@ +from djangobench.base_settings import * + +INSTALLED_APPS = ['query_all_multifield'] diff --git a/djangobench/benchmarks/query_raw/__init__.py b/djangobench/benchmarks/query_raw/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/djangobench/benchmarks/query_raw/benchmark.py b/djangobench/benchmarks/query_raw/benchmark.py new file mode 100644 index 0000000..964dff5 --- /dev/null +++ b/djangobench/benchmarks/query_raw/benchmark.py @@ -0,0 +1,20 @@ +from djangobench.utils import run_benchmark +from query_raw.models import MultiField + +def benchmark(): + list(MultiField.objects.raw('select * from query_raw_multifield')) + +def setup(): + for i in range(0, 1000): + kwargs = {} + for j in range(1, 11): + kwargs['field%s' % j] = 'foobar_%s_%s' % (i, j) + MultiField(**kwargs).save() + +run_benchmark( + benchmark, + setup=setup, + meta = { + 'description': 'A test for fetching large number of objects by Model.objects.all()', + } +) diff --git a/djangobench/benchmarks/query_raw/models.py b/djangobench/benchmarks/query_raw/models.py new file mode 100644 index 0000000..1fbea65 --- /dev/null +++ b/djangobench/benchmarks/query_raw/models.py @@ -0,0 +1,13 @@ +from django.db import models + +class MultiField(models.Model): + field1 = models.CharField(max_length=100) + field2 = models.CharField(max_length=100) + field3 = models.CharField(max_length=100) + field4 = models.CharField(max_length=100) + field5 = models.CharField(max_length=100) + field6 = models.CharField(max_length=100) + field7 = models.CharField(max_length=100) + field8 = models.CharField(max_length=100) + field9 = models.CharField(max_length=100) + field10 = models.CharField(max_length=100) diff --git a/djangobench/benchmarks/query_raw/settings.py b/djangobench/benchmarks/query_raw/settings.py new file mode 100644 index 0000000..fa8e51a --- /dev/null +++ b/djangobench/benchmarks/query_raw/settings.py @@ -0,0 +1,3 @@ +from djangobench.base_settings import * + +INSTALLED_APPS = ['query_raw'] diff --git a/djangobench/benchmarks/query_raw_deferred/__init__.py b/djangobench/benchmarks/query_raw_deferred/__init__.py new file mode 100644 index 0000000..e69de29 diff --git a/djangobench/benchmarks/query_raw_deferred/benchmark.py b/djangobench/benchmarks/query_raw_deferred/benchmark.py new file mode 100644 index 0000000..07eb14c --- /dev/null +++ b/djangobench/benchmarks/query_raw_deferred/benchmark.py @@ -0,0 +1,20 @@ +from djangobench.utils import run_benchmark +from query_raw_deferred.models import MultiField + +def benchmark(): + list(MultiField.objects.raw('select id from query_raw_deferred_multifield')) + +def setup(): + for i in range(0, 1000): + kwargs = {} + for j in range(1, 11): + kwargs['field%s' % j] = 'foobar_%s_%s' % (i, j) + MultiField(**kwargs).save() + +run_benchmark( + benchmark, + setup=setup, + meta = { + 'description': 'A test for fetching large number of objects by Model.objects.all() with deferred fields.', + } +) diff --git a/djangobench/benchmarks/query_raw_deferred/models.py b/djangobench/benchmarks/query_raw_deferred/models.py new file mode 100644 index 0000000..1fbea65 --- /dev/null +++ b/djangobench/benchmarks/query_raw_deferred/models.py @@ -0,0 +1,13 @@ +from django.db import models + +class MultiField(models.Model): + field1 = models.CharField(max_length=100) + field2 = models.CharField(max_length=100) + field3 = models.CharField(max_length=100) + field4 = models.CharField(max_length=100) + field5 = models.CharField(max_length=100) + field6 = models.CharField(max_length=100) + field7 = models.CharField(max_length=100) + field8 = models.CharField(max_length=100) + field9 = models.CharField(max_length=100) + field10 = models.CharField(max_length=100) diff --git a/djangobench/benchmarks/query_raw_deferred/settings.py b/djangobench/benchmarks/query_raw_deferred/settings.py new file mode 100644 index 0000000..dd91ea3 --- /dev/null +++ b/djangobench/benchmarks/query_raw_deferred/settings.py @@ -0,0 +1,3 @@ +from djangobench.base_settings import * + +INSTALLED_APPS = ['query_raw_deferred']