UNPKG

3.76 kBtext/coffeescriptView Raw
1Promise = require 'bluebird'
2Benchmark = require 'benchmark'
3benchmarks = require 'beautify-benchmark'
4exec = require('child_process').execSync
5fs = require 'fs-jetpack'
6path = require 'path'
7chalk = require 'chalk'
8extend = require 'extend'
9sample = ()-> path.join __dirname,'samples',arguments...
10temp = ()-> path.join __dirname,'temp',arguments...
11process.env.COFFEE_CACHE_DIR = COFFEE_CACHE_DIR = temp('.cache')
12
13fs.dir temp(),empty:true
14
15
16theImporter = null
17runClean = (type)->
18 deRegister()
19 switch type
20 when 'coffee-script/register' then require('coffee-script/register')
21 when 'coffee-register' then require('../')
22
23 theImporter()
24
25
26deRegister = ()->
27 delete require.extensions['.coffee']
28 delete require.extensions['.litcoffee']
29 delete require.extensions['.coffee.md']
30 delete require.cache[require.resolve('coffee-script/register')]
31 delete require.cache[require.resolve('coffee-script/lib/coffee-script/register')]
32 delete require.cache[require.resolve('../')]
33 samples = fs.list(sample())
34 for sampleFile in samples
35 delete require.cache[sample(sampleFile)]
36
37 cached = fs.list(temp('.cache')) or []
38 for cachedFile in cached
39 delete require.cache[temp('.cache',cachedFile)]
40
41 largeModules = Object.keys(require.cache).filter (path)-> path.includes('simplyimport') or path.includes('simplywatch')
42 for item in largeModules
43 delete require.cache[item]
44
45 return
46
47
48suite = (name, options)->
49 Benchmark.Suite(name, options)
50 .on 'start', ()-> console.log chalk.dim name
51 .on 'cycle', ()-> benchmarks.add arguments[0].target
52 .on 'complete', ()-> benchmarks.log()
53
54
55
56suite('3 small modules', {
57 onComplete: ()-> fs.dir temp(),empty:true
58 onStart: ()->
59 theImporter = ()->
60 require('./samples/small1')
61 require('./samples/small2')
62 require('./samples/small3')
63 return
64})
65 .add 'coffee-script/register', ()->
66 runClean('coffee-script/register')
67
68 .add 'coffee-register (uncached)', ()->
69 process.env.COFFEE_NO_CACHE = true
70 runClean('coffee-register')
71
72 .add 'coffee-register (cached)', ()->
73 delete process.env.COFFEE_NO_CACHE
74 runClean('coffee-register')
75
76
77 .run()
78
79
80
81suite('6 small modules', {
82 onComplete: ()-> fs.dir temp(),empty:true
83 onStart: ()->
84 theImporter = ()->
85 require('./samples/small1')
86 require('./samples/small2')
87 require('./samples/small3')
88 require('./samples/small4')
89 require('./samples/small5')
90 require('./samples/small6')
91
92})
93 .add 'coffee-script/register', ()->
94 runClean('coffee-script/register')
95
96 .add 'coffee-register (uncached)', ()->
97 process.env.COFFEE_NO_CACHE = true
98 runClean('coffee-register')
99
100 .add 'coffee-register (cached)', ()->
101 delete process.env.COFFEE_NO_CACHE
102 runClean('coffee-register')
103
104
105 .run()
106
107
108
109suite('4 medium modules', {
110 onComplete: ()-> fs.dir temp(),empty:true
111 onStart: ()->
112 theImporter = ()->
113 require('./samples/medium1')
114 require('./samples/medium2')
115 require('./samples/medium3')
116 require('./samples/medium4')
117
118})
119 .add 'coffee-script/register', ()->
120 runClean('coffee-script/register')
121
122 .add 'coffee-register (uncached)', ()->
123 process.env.COFFEE_NO_CACHE = true
124 runClean('coffee-register')
125
126 .add 'coffee-register (cached)', ()->
127 delete process.env.COFFEE_NO_CACHE
128 runClean('coffee-register')
129
130
131 .run()
132
133
134suite('2 large modules', {
135 onComplete: ()-> fs.dir temp(),empty:true
136 onStart: ()->
137 theImporter = ()->
138 require('simplyimport/lib/simplyimport')
139 require('simplywatch/lib/simplywatch')
140
141})
142 .add 'coffee-script/register', ()->
143 runClean('coffee-script/register')
144
145 .add 'coffee-register (uncached)', ()->
146 process.env.COFFEE_NO_CACHE = true
147 runClean('coffee-register')
148
149 .add 'coffee-register (cached)', ()->
150 delete process.env.COFFEE_NO_CACHE
151 runClean('coffee-register')
152
153
154 .run()
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178