Skip to content

Commit 4bdb739

Browse files
committed
Add really decent performance optimization
1 parent f426c19 commit 4bdb739

File tree

2 files changed

+30
-27
lines changed

2 files changed

+30
-27
lines changed

asyncLogic.js

+15-14
Original file line numberDiff line numberDiff line change
@@ -154,20 +154,21 @@ class AsyncLogicEngine {
154154
const { above = [] } = options
155155

156156
// OPTIMIZER BLOCK //
157-
if (this.missesSinceSeen > 500) {
158-
this.disableInterpretedOptimization = true
159-
this.missesSinceSeen = 0
160-
}
161-
162-
if (!this.disableInterpretedOptimization && typeof logic === 'object' && logic && !this.optimizedMap.has(logic)) {
163-
this.optimizedMap.set(logic, optimize(logic, this, above))
164-
this.missesSinceSeen++
165-
return typeof this.optimizedMap.get(logic) === 'function' ? this.optimizedMap.get(logic)(data, above) : this.optimizedMap.get(logic)
166-
}
167-
168-
if (!this.disableInterpretedOptimization && logic && typeof logic === 'object' && this.optimizedMap.get(logic)) {
169-
this.missesSinceSeen = 0
170-
return typeof this.optimizedMap.get(logic) === 'function' ? this.optimizedMap.get(logic)(data, above) : this.optimizedMap.get(logic)
157+
if (!this.disableInterpretedOptimization && typeof logic === 'object' && logic) {
158+
if (this.missesSinceSeen > 500) {
159+
this.disableInterpretedOptimization = true
160+
this.missesSinceSeen = 0
161+
}
162+
if (!this.optimizedMap.has(logic)) {
163+
this.optimizedMap.set(logic, optimize(logic, this, above))
164+
this.missesSinceSeen++
165+
const grab = this.optimizedMap.get(logic)
166+
return typeof grab === 'function' ? grab(data, above) : grab
167+
} else {
168+
this.missesSinceSeen = 0
169+
const grab = this.optimizedMap.get(logic)
170+
return typeof grab === 'function' ? grab(data, above) : grab
171+
}
171172
}
172173
// END OPTIMIZER BLOCK //
173174

logic.js

+15-13
Original file line numberDiff line numberDiff line change
@@ -130,20 +130,22 @@ class LogicEngine {
130130
const { above = [] } = options
131131

132132
// OPTIMIZER BLOCK //
133-
if (this.missesSinceSeen > 500) {
134-
this.disableInterpretedOptimization = true
135-
this.missesSinceSeen = 0
136-
}
137-
138-
if (!this.disableInterpretedOptimization && typeof logic === 'object' && logic && !this.optimizedMap.has(logic)) {
139-
this.optimizedMap.set(logic, optimize(logic, this, above))
140-
this.missesSinceSeen++
141-
return typeof this.optimizedMap.get(logic) === 'function' ? this.optimizedMap.get(logic)(data, above) : this.optimizedMap.get(logic)
142-
}
133+
if (!this.disableInterpretedOptimization && typeof logic === 'object' && logic) {
134+
if (this.missesSinceSeen > 500) {
135+
this.disableInterpretedOptimization = true
136+
this.missesSinceSeen = 0
137+
}
143138

144-
if (!this.disableInterpretedOptimization && logic && typeof logic === 'object' && this.optimizedMap.get(logic)) {
145-
this.missesSinceSeen = 0
146-
return typeof this.optimizedMap.get(logic) === 'function' ? this.optimizedMap.get(logic)(data, above) : this.optimizedMap.get(logic)
139+
if (!this.optimizedMap.has(logic)) {
140+
this.optimizedMap.set(logic, optimize(logic, this, above))
141+
this.missesSinceSeen++
142+
const grab = this.optimizedMap.get(logic)
143+
return typeof grab === 'function' ? grab(data, above) : grab
144+
} else {
145+
this.missesSinceSeen = 0
146+
const grab = this.optimizedMap.get(logic)
147+
return typeof grab === 'function' ? grab(data, above) : grab
148+
}
147149
}
148150
// END OPTIMIZER BLOCK //
149151

0 commit comments

Comments
 (0)