core.match

perf 3x slower for ragged rows

Details

  • Type: Enhancement Enhancement
  • Status: Resolved Resolved
  • Priority: Minor Minor
  • Resolution: Declined
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None
  • Labels:
    None

Description

In both cases, match should fail immediately on seeing the first element.

Slow case:

(let [f
        (fn [x] (match x [1 1] 1 [2] 2 :else 3))]
    (time (dotimes [_ 100000] (f [3]))))
"Elapsed time: 57.899 msecs"

Fast case:

(let [f
        (fn [x] (match x [1 1] 1 [2 _] 2 :else 3))]
    (time (dotimes [_ 100000] (f [3]))))
"Elapsed time: 16.998 msecs"

Activity

People

Vote (0)
Watch (0)

Dates

  • Created:
    Updated:
    Resolved: