Skip to content

Performance Issues, ~6x longer to render than regular django forms #62

@troygrosfield

Description

@troygrosfield

Here's the script that was used for the test:

from datetime import datetime

from bootstrapform.templatetags.bootstrap import bootstrap
from django import forms


class SomeTestForm(forms.Form):
    field_1 = forms.CharField(max_length=20)
    field_2 = forms.CharField(max_length=20)
    field_3 = forms.CharField(max_length=20)
    field_4 = forms.CharField(max_length=20)
    field_5 = forms.CharField(max_length=20)


def create_form():
    initial = {
        'field_1': 'Some random string 1.',
        'field_2': 'Some random string 2.',
        'field_3': 'Some random string 3.',
        'field_4': 'Some random string 4.',
        'field_5': 'Some random string 5.'
    }
    return SomeTestForm(initial=initial)

# Test rendering 1000 forms
forms = [create_form() for f in range(1000)]

# render using django form render
start_time_django_rendering = datetime.utcnow()

for form in forms:
    form.as_table()

end_time_django_rendering = datetime.utcnow()
total_django_rendering_time = (end_time_django_rendering - start_time_django_rendering)

print('Total django rendering time: {0}'.format(total_django_rendering_time))

# render using bootstrap form renderer
start_time_bootstrap = datetime.utcnow()

for form in forms:
    bootstrap(form)

end_time_bootstrap = datetime.utcnow()
total_bootstrap_time = end_time_bootstrap - start_time_bootstrap

print('Total bootstrap rendering time: {0}'.format(total_bootstrap_time))

Result test runs:
Run 1:

Total django rendering time:    0:00:01.293791
Total bootstrap rendering time: 0:00:06.579422

Run 2:

Total django rendering time:    0:00:01.298067
Total bootstrap rendering time: 0:00:06.548636

Run 3:

Total django rendering time:    0:00:01.304047
Total bootstrap rendering time: 0:00:06.530172

Run 4:

Total django rendering time:    0:00:01.293400
Total bootstrap rendering time: 0:00:06.584375

Run 5:

Total django rendering time:    0:00:01.294149
Total bootstrap rendering time: 0:00:06.550580

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions