ClojureScript

Large PersistentVector benchmarks

Details

  • Type: Enhancement Enhancement
  • Status: Closed Closed
  • Priority: Major Major
  • Resolution: Completed
  • Affects Version/s: None
  • Fix Version/s: None
  • Component/s: None
  • Labels:
    None

Description

We need benchmarks for large data structures, e.g. large PVs with shifts greater than 5 (a shift of 20 would perhaps be problematic due to the necessary size of the vector, so probably 10 or 15).

My first cut at a patch (to be attached in a moment) provides benchmarks for building a large vector without using transients (to get an idea of conj perf), conjing onto a large vector in a situation where this involves a push-tail operation, associng in non-tail position in a large vector and popping a large vector where this involves a pop-tail op.

The push-tail / pop-tail benchmarks, as written here, are dependent on the exact position of the tail inside the vector; as an alternative, we could benchmark conjing / popping 32 times (max tail length is probably going to be pretty stable). Thoughts?

Activity

Hide
Michał Marczyk added a comment -

As mentioned in the discussion on CLJS-299, these benchmarks could use some scrutiny in case they're not testing what they should be. Also, I wonder if the iteration counts should be greater.

Show
Michał Marczyk added a comment - As mentioned in the discussion on CLJS-299, these benchmarks could use some scrutiny in case they're not testing what they should be. Also, I wonder if the iteration counts should be greater.
Hide
David Nolen added a comment -

Will take a look and report back.

Show
David Nolen added a comment - Will take a look and report back.
Hide
David Nolen added a comment -

Looks good to me.

Show
David Nolen added a comment - Looks good to me.

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: