lib: only memoize in csv reader when there are more than 15 cond. blocks
This commit is contained in:
		
							parent
							
								
									8844ef1b5f
								
							
						
					
					
						commit
						21349c161e
					
				| @ -333,13 +333,15 @@ defrules = CsvRules' { | |||||||
| -- | Create CsvRules from the content parsed out of the rules file | -- | Create CsvRules from the content parsed out of the rules file | ||||||
| mkrules :: CsvRulesParsed -> CsvRules | mkrules :: CsvRulesParsed -> CsvRules | ||||||
| mkrules rules = | mkrules rules = | ||||||
|   let conditionalblocks = reverse $ rconditionalblocks rules in |   let conditionalblocks = reverse $ rconditionalblocks rules | ||||||
|  |       maybeMemo = if length conditionalblocks >= 15 then memo else id | ||||||
|  |   in | ||||||
|     CsvRules' { |     CsvRules' { | ||||||
|     rdirectives=reverse $ rdirectives rules, |     rdirectives=reverse $ rdirectives rules, | ||||||
|     rcsvfieldindexes=rcsvfieldindexes rules, |     rcsvfieldindexes=rcsvfieldindexes rules, | ||||||
|     rassignments=reverse $ rassignments rules, |     rassignments=reverse $ rassignments rules, | ||||||
|     rconditionalblocks=conditionalblocks, |     rconditionalblocks=conditionalblocks, | ||||||
|     rblocksassigning = memo (\f -> filter (any ((==f).fst) . cbAssignments) conditionalblocks) |     rblocksassigning = maybeMemo (\f -> filter (any ((==f).fst) . cbAssignments) conditionalblocks) | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
| --- *** rules parsers | --- *** rules parsers | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user