1- # import os
2- # import time
3- # import unittest
4- # from django_react.render import render_component
5- #
6- # path_to_component = os.path.abspath(os.path.join(os.path.dirname(__file__), 'components', 'PerfTestComponent.jsx'))
7- #
8- #
9- # def median(l):
10- # half = int(len(l) / 2)
11- # l.sort()
12- # if len(l) % 2 == 0:
13- # return (l[half-1] + l[half]) / 2.0
14- # else:
15- # return l[half]
16- #
17- #
18- # class TestDjangoReactPerformance(unittest.TestCase):
19- # def test_performance(self):
20- # print('\n' + ('-' * 80))
21- # print('django-react performance test')
22- # print('-' * 80)
23- #
24- # render_component_times = []
25- # render_watched_component_times = []
26- # rendered_components = []
27- #
28- # iteration_count = 25
29- #
30- # for i in range(iteration_count):
31- # start = time.time()
32- # rendered_components.append(
33- # render_component(path_to_component, props={'name': 'world'}, to_static_markup=True)
34- # )
35- # end = time.time()
36- # render_component_times.append(end - start)
37- #
38- # for i in range(iteration_count):
39- # start = time.time()
40- # rendered_components.append(
41- # render_component(path_to_component, props={'name': 'world'}, watch_source=True, to_static_markup=True)
42- # )
43- # end = time.time()
44- # render_watched_component_times.append(end - start)
45- #
46- # for component in rendered_components:
47- # self.assertEqual(str(component), '<span>Hello world</span>')
48- #
49- # print('Total time taken to render a component {iteration_count} times: {value}'.format(
50- # iteration_count=iteration_count,
51- # value=sum(render_component_times)
52- # ))
53- # print('Times: {value}'.format(value=render_component_times))
54- # print('Max: {value}'.format(value=max(render_component_times)))
55- # print('Min: {value}'.format(value=min(render_component_times)))
56- # print('Mean: {value}'.format(value=sum(render_component_times) / len(render_component_times)))
57- # print('Median: {value}'.format(value=median(render_component_times)))
58- #
59- # print('\nTotal time taken to render a watched component {iteration_count} times: {value}'.format(
60- # iteration_count=iteration_count,
61- # value=sum(render_watched_component_times)
62- # ))
63- # print('Times: {value}'.format(value=render_watched_component_times))
64- # print('Max: {value}'.format(value=max(render_watched_component_times)))
65- # print('Min: {value}'.format(value=min(render_watched_component_times)))
66- # print('Mean: {value}'.format(value=sum(render_watched_component_times) / len(render_watched_component_times)))
67- # print('Median: {value}'.format(value=median(render_watched_component_times)))
1+ import os
2+ import time
3+ import unittest
4+ from django_react .render import render_component
5+
6+ path_to_component = os .path .abspath (os .path .join (os .path .dirname (__file__ ), 'components' , 'PerfTestComponent.jsx' ))
7+
8+
9+ def median (l ):
10+ half = int (len (l ) / 2 )
11+ l .sort ()
12+ if len (l ) % 2 == 0 :
13+ return (l [half - 1 ] + l [half ]) / 2.0
14+ else :
15+ return l [half ]
16+
17+
18+ class TestDjangoReactPerformance (unittest .TestCase ):
19+ def test_performance (self ):
20+ print ('\n ' + ('-' * 80 ))
21+ print ('django-react performance test' )
22+ print ('-' * 80 )
23+
24+ render_component_times = []
25+ render_watched_component_times = []
26+ rendered_components = []
27+
28+ iteration_count = 25
29+
30+ for i in range (iteration_count ):
31+ start = time .time ()
32+ rendered_components .append (
33+ render_component (
34+ path_to_component ,
35+ props = {'name' : 'world' },
36+ translate = True ,
37+ to_static_markup = True
38+ )
39+ )
40+ end = time .time ()
41+ render_component_times .append (end - start )
42+
43+ for i in range (iteration_count ):
44+ start = time .time ()
45+ rendered_components .append (
46+ render_component (
47+ path_to_component ,
48+ props = {'name' : 'world' },
49+ translate = True ,
50+ watch_source = True ,
51+ to_static_markup = True
52+ )
53+ )
54+ end = time .time ()
55+ render_watched_component_times .append (end - start )
56+
57+ for component in rendered_components :
58+ self .assertEqual (str (component ), '<span>Hello world</span>' )
59+
60+ print ('Total time taken to render a component {iteration_count} times: {value}' .format (
61+ iteration_count = iteration_count ,
62+ value = sum (render_component_times )
63+ ))
64+ print ('Times: {value}' .format (value = render_component_times ))
65+ print ('Max: {value}' .format (value = max (render_component_times )))
66+ print ('Min: {value}' .format (value = min (render_component_times )))
67+ print ('Mean: {value}' .format (value = sum (render_component_times ) / len (render_component_times )))
68+ print ('Median: {value}' .format (value = median (render_component_times )))
69+
70+ print ('\n Total time taken to render a watched component {iteration_count} times: {value}' .format (
71+ iteration_count = iteration_count ,
72+ value = sum (render_watched_component_times )
73+ ))
74+ print ('Times: {value}' .format (value = render_watched_component_times ))
75+ print ('Max: {value}' .format (value = max (render_watched_component_times )))
76+ print ('Min: {value}' .format (value = min (render_watched_component_times )))
77+ print ('Mean: {value}' .format (value = sum (render_watched_component_times ) / len (render_watched_component_times )))
78+ print ('Median: {value}' .format (value = median (render_watched_component_times )))
0 commit comments