-
-
Notifications
You must be signed in to change notification settings - Fork 18.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
block mutation of read-only array in series #14359
Conversation
47f5a33
to
c51bc15
Compare
regarding the travis failure: do you cache the compilation accross the runs? I noticed that I needed to ensure that the |
Here's the PR where caching was added/modified I don't really know how it works, but it doesn't seem to check |
Working on this in #14363 |
@@ -79,3 +79,6 @@ Performance Improvements | |||
|
|||
Bug Fixes | |||
~~~~~~~~~ | |||
|
|||
- Bug in ``Series.__setitem__`` which allowed mutating arrays read-only arrays |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
move to 0.19.1
@@ -59,6 +59,10 @@ cdef inline object get_value_at(ndarray arr, object loc): | |||
cdef inline set_value_at(ndarray arr, object loc, object value): | |||
cdef: | |||
Py_ssize_t i, sz | |||
|
|||
if not cnp.PyArray_ISWRITEABLE(arr): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this needs to be in the dependency chain in setup.py
(for all cython extesnsion, though you could make more fine-grained if you want)
@@ -59,6 +59,10 @@ cdef inline object get_value_at(ndarray arr, object loc): | |||
cdef inline set_value_at(ndarray arr, object loc, object value): | |||
cdef: | |||
Py_ssize_t i, sz | |||
|
|||
if not cnp.PyArray_ISWRITEABLE(arr): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This might actuallly be a performance hit. This routines is called in a lot of places. can you do some simple tests.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I might put this at a higher level with a single check per-array (and not on an individual set, even though that is technically more correct).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sure, I will profile this to see. There is a lot of python code happening in __setitem__
so I think that will drown the hit here. This is just a macro that does a bitwise and on the flags so the real cost is dereferencing the array, but we need to do that later in the function anyways.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It looks like this may actually be slowing things down slightly. I will see if I can make up that time somewhere else. If we cache at a per-array level then what should be do if someone changes the flags on the underlying array between setitem calls?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, I profiled __setitem__
to see if I could make back the time I was adding to the write, I think I have come up with something reasonable here. My changes remove a getattr and a builtin lookup which were measurable amounts of the call times. I confimed that with cProfile and line_profile and tested my changes with perf.
master
........................................
Metadata:
- aslr: Full randomization
- boot_time: 2016-10-03T11:28:53
- cpu_config: 0-3=driver:intel_pstate, intel_pstate:turbo, governor:powersave; idle:intel_idle
- cpu_count: 4
- cpu_model_name: Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz
- hostname: funami
- loops: 2^15
- name: timeit
- perf_version: 0.7.12
- platform: Linux-4.7.5-1-ARCH-x86_64-with-arch
- python_cflags: -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
- python_executable: /home/yui/.virtualenvs/databazaar/bin/python
- python_implementation: cpython
- python_version: 3.4.3 (64-bit) revision b4cbecbc0781
- timeit_setup: 'import pandas as pd;s = pd.Series([1, 2, 3])'
- timeit_stmt: 's[0] = 1'
- timer: clock_gettime(CLOCK_MONOTONIC), resolution: 1.00 ns
Run 1: warmup (36): 579 us (+13803%), 37.9 us (+812%), 18.1 us (+334%), 13.6 us (+227%), 10.9 us (+161%), 10.2 us (+145%), 8.81 us (+112%), 14.7 us (+253%), 6.76 us (+62%), 4.40 us (+6%), 4.21 us, 4.25 us, 4.44 us (+7%), 6.34 us (+52%), 4.01 us, 6.79 us (+63%), 4.37 us (+5%), 4.11 us, 4.64 us (+12%), 4.21 us, 4.08 us, 4.04 us, 4.11 us, 4.13 us, 4.08 us, 4.06 us, 4.09 us, 4.15 us, 4.12 us, 4.07 us, 4.13 us, 4.08 us, 4.09 us, 4.07 us, 4.10 us, 4.09 us; samples (50): 4.37 us (+5%), 4.72 us (+13%), 4.63 us (+11%), 4.13 us, 4.19 us, 4.11 us, 4.08 us, 4.06 us, 4.06 us, 4.08 us, 4.33 us, 4.74 us (+14%), 4.64 us (+12%), 4.15 us, 4.08 us, 4.07 us, 4.10 us, 4.16 us, 4.06 us, 4.10 us, 4.12 us, 4.15 us, 4.18 us, 4.12 us, 4.09 us, 4.12 us, 4.09 us, 4.20 us, 4.23 us, 4.17 us, 4.12 us, 4.19 us, 4.15 us, 4.19 us, 4.24 us, 4.18 us, 4.11 us, 4.05 us, 4.15 us, 4.05 us, 4.10 us, 4.08 us, 4.07 us, 4.07 us, 4.11 us, 4.09 us, 4.09 us, 4.07 us, 4.06 us, 4.13 us
Run 2: warmup (20): 3.98 us, 4.06 us, 4.10 us, 4.06 us, 4.09 us, 4.02 us, 4.07 us, 4.06 us, 4.06 us, 4.04 us, 4.08 us, 4.02 us, 4.07 us, 4.05 us, 4.07 us, 4.07 us, 4.07 us, 4.05 us, 4.00 us, 4.04 us; samples (50): 4.08 us, 4.04 us, 4.09 us, 4.10 us, 4.06 us, 4.07 us, 4.12 us, 4.12 us, 4.06 us, 4.08 us, 4.08 us, 4.10 us, 4.07 us, 4.07 us, 4.07 us, 4.04 us, 4.05 us, 4.10 us, 4.06 us, 4.01 us, 4.06 us, 4.07 us, 4.10 us, 4.11 us, 4.12 us, 4.11 us, 4.08 us, 4.12 us, 4.14 us, 4.14 us, 4.16 us, 4.13 us, 4.06 us, 4.07 us, 4.05 us, 4.08 us, 4.05 us, 4.06 us, 4.03 us, 4.05 us, 3.99 us, 4.06 us, 4.01 us, 4.04 us, 4.07 us, 4.13 us, 4.04 us, 4.04 us, 4.09 us, 4.03 us
Run 3: warmup (20): 4.06 us, 4.10 us, 4.19 us, 4.14 us, 4.12 us, 4.16 us, 4.07 us, 4.08 us, 4.17 us, 4.12 us, 4.11 us, 4.13 us, 4.12 us, 4.12 us, 4.09 us, 4.09 us, 4.10 us, 4.20 us, 4.10 us, 4.10 us; samples (50): 4.09 us, 4.09 us, 4.11 us, 4.10 us, 4.08 us, 4.10 us, 4.10 us, 4.08 us, 4.06 us, 4.12 us, 4.16 us, 4.12 us, 4.12 us, 4.19 us, 4.17 us, 4.13 us, 4.12 us, 4.14 us, 4.12 us, 4.08 us, 4.06 us, 4.14 us, 4.08 us, 4.10 us, 4.15 us, 4.14 us, 4.11 us, 4.19 us, 4.12 us, 4.16 us, 4.14 us, 4.13 us, 4.11 us, 4.09 us, 4.10 us, 4.14 us, 4.20 us, 4.10 us, 4.11 us, 4.10 us, 4.09 us, 4.11 us, 4.12 us, 4.08 us, 4.07 us, 4.07 us, 4.10 us, 4.08 us, 4.07 us, 4.11 us
Run 4: warmup (20): 3.99 us, 4.02 us, 4.07 us, 4.54 us (+9%), 5.09 us (+22%), 4.58 us (+10%), 3.99 us, 4.02 us, 3.96 us, 4.01 us, 4.03 us, 4.02 us, 4.01 us, 4.02 us, 4.02 us, 4.02 us, 4.13 us, 4.04 us, 4.72 us (+13%), 4.03 us; samples (50): 3.96 us, 4.01 us, 4.00 us, 3.97 us, 3.99 us, 4.01 us, 3.99 us, 3.98 us, 4.20 us, 4.01 us, 3.99 us, 4.00 us, 4.12 us, 4.00 us, 4.01 us, 3.97 us, 3.96 us, 4.04 us, 4.01 us, 4.02 us, 4.06 us, 4.00 us, 4.09 us, 4.79 us (+15%), 5.80 us (+39%), 6.24 us (+50%), 5.94 us (+43%), 5.88 us (+41%), 6.07 us (+46%), 5.93 us (+43%), 5.54 us (+33%), 5.78 us (+39%), 5.03 us (+21%), 4.87 us (+17%), 5.47 us (+31%), 6.10 us (+47%), 5.62 us (+35%), 4.84 us (+16%), 4.84 us (+16%), 4.72 us (+14%), 4.49 us (+8%), 5.38 us (+29%), 4.73 us (+14%), 4.88 us (+17%), 4.87 us (+17%), 4.98 us (+20%), 4.97 us (+19%), 5.20 us (+25%), 4.90 us (+18%), 5.97 us (+43%)
Run 5: warmup (20): 6.90 us (+66%), 5.43 us (+30%), 5.60 us (+35%), 5.76 us (+38%), 5.98 us (+44%), 5.64 us (+36%), 5.16 us (+24%), 4.36 us, 4.58 us (+10%), 4.41 us (+6%), 4.38 us (+5%), 4.32 us, 4.33 us, 4.34 us, 4.31 us, 4.37 us (+5%), 4.42 us (+6%), 4.33 us, 4.64 us (+12%), 5.09 us (+22%); samples (50): 4.55 us (+9%), 4.32 us, 4.30 us, 4.31 us, 4.33 us, 4.31 us, 4.19 us, 4.17 us, 4.31 us, 4.48 us (+8%), 4.29 us, 4.43 us (+7%), 4.33 us, 4.33 us, 4.31 us, 4.33 us, 4.40 us (+6%), 4.33 us, 4.75 us (+14%), 4.38 us (+5%), 4.31 us, 4.44 us (+7%), 4.36 us, 4.45 us (+7%), 4.33 us, 4.34 us, 4.28 us, 4.30 us, 4.46 us (+7%), 4.37 us (+5%), 4.32 us, 4.36 us, 4.33 us, 4.33 us, 4.37 us (+5%), 4.34 us, 4.16 us, 4.21 us, 4.25 us, 4.29 us, 4.22 us, 4.32 us, 4.36 us, 4.22 us, 4.18 us, 4.27 us, 4.24 us, 4.19 us, 4.12 us, 4.17 us
Run 6: warmup (20): 4.23 us, 4.25 us, 4.28 us, 4.21 us, 4.23 us, 4.23 us, 4.21 us, 4.25 us, 4.25 us, 4.24 us, 4.27 us, 4.20 us, 4.21 us, 4.25 us, 4.31 us, 4.21 us, 4.25 us, 4.21 us, 4.47 us (+8%), 4.27 us; samples (50): 4.26 us, 4.21 us, 4.87 us (+17%), 5.10 us (+22%), 4.32 us, 4.25 us, 4.22 us, 4.22 us, 4.21 us, 4.32 us, 4.19 us, 4.20 us, 4.27 us, 4.22 us, 4.26 us, 4.19 us, 4.18 us, 4.23 us, 4.20 us, 4.19 us, 4.22 us, 4.22 us, 4.26 us, 4.19 us, 4.23 us, 4.22 us, 4.18 us, 4.19 us, 4.19 us, 4.18 us, 4.21 us, 4.20 us, 4.17 us, 4.15 us, 4.17 us, 4.16 us, 4.20 us, 4.21 us, 4.23 us, 4.17 us, 4.21 us, 4.11 us, 4.18 us, 4.22 us, 4.16 us, 4.17 us, 4.15 us, 4.16 us, 4.17 us, 4.16 us
Run 7: warmup (20): 4.13 us, 4.12 us, 4.15 us, 4.24 us, 4.05 us, 4.70 us (+13%), 4.07 us, 4.07 us, 4.07 us, 4.04 us, 4.07 us, 4.09 us, 4.05 us, 4.10 us, 4.20 us, 4.09 us, 4.08 us, 4.13 us, 4.08 us, 4.07 us; samples (50): 4.08 us, 4.10 us, 4.07 us, 4.08 us, 4.07 us, 4.07 us, 4.10 us, 4.12 us, 4.13 us, 4.14 us, 4.05 us, 4.12 us, 4.11 us, 4.07 us, 4.14 us, 4.11 us, 4.11 us, 4.11 us, 4.12 us, 4.11 us, 4.70 us (+13%), 4.13 us, 4.09 us, 4.07 us, 4.21 us, 4.17 us, 4.19 us, 4.16 us, 4.15 us, 4.20 us, 4.19 us, 4.17 us, 4.17 us, 4.20 us, 4.18 us, 4.19 us, 4.15 us, 4.13 us, 4.12 us, 4.16 us, 4.10 us, 4.10 us, 4.11 us, 4.19 us, 4.53 us (+9%), 4.59 us (+10%), 4.10 us, 4.13 us, 4.08 us, 4.08 us
Run 8: warmup (20): 3.95 us (-5%), 4.01 us, 3.96 us, 3.91 us (-6%), 3.93 us (-6%), 3.90 us (-6%), 3.98 us, 3.93 us (-6%), 3.90 us (-6%), 3.92 us (-6%), 3.88 us (-7%), 3.94 us (-5%), 3.97 us, 3.93 us (-6%), 3.91 us (-6%), 3.91 us (-6%), 3.91 us (-6%), 3.96 us, 3.95 us (-5%), 3.94 us (-5%); samples (50): 3.98 us, 3.93 us (-6%), 3.93 us (-6%), 3.93 us (-6%), 3.89 us (-6%), 3.93 us (-6%), 3.95 us, 3.93 us (-6%), 3.88 us (-7%), 3.93 us (-6%), 3.94 us (-5%), 3.91 us (-6%), 3.92 us (-6%), 3.93 us (-6%), 3.97 us, 3.96 us, 3.99 us, 3.99 us, 3.94 us (-5%), 3.92 us (-6%), 3.99 us, 3.91 us (-6%), 3.95 us, 3.96 us, 3.96 us, 4.24 us, 3.99 us, 3.98 us, 3.96 us, 3.94 us (-5%), 3.95 us, 3.94 us (-5%), 3.96 us, 3.95 us (-5%), 3.96 us, 3.94 us (-5%), 3.93 us (-5%), 3.94 us (-5%), 3.90 us (-6%), 3.93 us (-6%), 4.36 us, 4.29 us, 3.91 us (-6%), 3.92 us (-6%), 4.02 us, 3.89 us (-6%), 3.92 us (-6%), 3.89 us (-7%), 3.86 us (-7%), 3.90 us (-6%)
Run 9: warmup (20): 4.09 us, 4.26 us, 4.38 us (+5%), 4.87 us (+17%), 4.72 us (+13%), 4.66 us (+12%), 4.67 us (+12%), 4.97 us (+19%), 5.02 us (+21%), 4.77 us (+15%), 4.73 us (+14%), 4.70 us (+13%), 4.79 us (+15%), 4.25 us, 4.19 us, 4.16 us, 4.29 us, 4.21 us, 4.20 us, 4.12 us; samples (50): 4.16 us, 4.72 us (+13%), 4.07 us, 4.15 us, 4.07 us, 4.11 us, 4.09 us, 4.44 us (+7%), 4.32 us, 4.12 us, 4.11 us, 4.09 us, 4.12 us, 4.03 us, 4.13 us, 4.20 us, 4.47 us (+7%), 4.17 us, 4.01 us, 4.07 us, 4.06 us, 4.06 us, 4.07 us, 4.12 us, 4.04 us, 4.35 us, 4.03 us, 4.11 us, 4.10 us, 4.21 us, 4.08 us, 4.05 us, 4.07 us, 4.05 us, 4.11 us, 4.07 us, 4.09 us, 4.03 us, 4.11 us, 4.08 us, 4.03 us, 4.08 us, 4.13 us, 4.11 us, 4.05 us, 4.06 us, 4.02 us, 4.12 us, 4.07 us, 4.10 us
Run 10: warmup (20): 4.06 us, 4.14 us, 4.18 us, 4.14 us, 4.11 us, 4.21 us, 4.15 us, 4.13 us, 4.10 us, 4.16 us, 4.16 us, 4.18 us, 4.18 us, 4.22 us, 4.24 us, 4.16 us, 4.20 us, 4.09 us, 4.11 us, 4.11 us; samples (50): 4.09 us, 4.12 us, 4.12 us, 4.10 us, 4.07 us, 4.12 us, 4.04 us, 4.12 us, 4.10 us, 4.11 us, 4.12 us, 4.08 us, 4.08 us, 4.15 us, 4.13 us, 4.07 us, 4.10 us, 4.12 us, 4.10 us, 4.12 us, 4.10 us, 4.17 us, 4.12 us, 4.11 us, 4.12 us, 4.15 us, 4.11 us, 4.13 us, 4.15 us, 4.14 us, 4.13 us, 4.13 us, 4.15 us, 4.14 us, 4.10 us, 4.07 us, 4.08 us, 4.09 us, 4.07 us, 4.07 us, 4.09 us, 4.09 us, 4.12 us, 4.10 us, 4.13 us, 4.09 us, 4.07 us, 4.06 us, 4.07 us, 4.07 us
Run 11: warmup (20): 3.88 us (-7%), 3.97 us, 4.02 us, 4.00 us, 4.03 us, 4.01 us, 4.02 us, 4.03 us, 5.91 us (+42%), 6.05 us (+45%), 5.71 us (+37%), 4.88 us (+17%), 5.08 us (+22%), 5.01 us (+20%), 5.24 us (+26%), 5.06 us (+22%), 5.07 us (+22%), 5.20 us (+25%), 5.20 us (+25%), 5.31 us (+28%); samples (50): 5.07 us (+22%), 5.15 us (+24%), 5.21 us (+25%), 5.15 us (+24%), 5.11 us (+23%), 4.90 us (+18%), 5.17 us (+24%), 5.52 us (+33%), 5.22 us (+25%), 5.31 us (+27%), 5.64 us (+36%), 5.26 us (+26%), 8.55 us (+105%), 6.71 us (+61%), 4.04 us, 4.32 us, 4.31 us, 4.19 us, 4.12 us, 4.08 us, 4.12 us, 4.30 us, 4.12 us, 4.17 us, 4.10 us, 4.08 us, 4.15 us, 4.08 us, 4.44 us (+7%), 4.52 us (+9%), 4.16 us, 4.09 us, 3.99 us, 3.97 us, 3.97 us, 4.01 us, 4.06 us, 3.95 us (-5%), 3.95 us (-5%), 3.99 us, 3.98 us, 3.98 us, 3.97 us, 3.96 us, 3.94 us (-5%), 3.91 us (-6%), 3.96 us, 3.93 us (-6%), 3.91 us (-6%), 3.94 us (-5%)
Run 12: warmup (20): 3.94 us (-5%), 4.06 us, 4.04 us, 4.05 us, 4.02 us, 4.09 us, 4.06 us, 4.02 us, 4.05 us, 4.00 us, 4.05 us, 4.51 us (+8%), 4.44 us (+7%), 4.05 us, 4.31 us, 4.57 us (+10%), 4.49 us (+8%), 4.23 us, 4.05 us, 4.00 us; samples (50): 4.06 us, 4.04 us, 4.00 us, 4.01 us, 4.04 us, 3.98 us, 4.01 us, 3.98 us, 4.07 us, 3.98 us, 4.00 us, 4.04 us, 4.00 us, 4.03 us, 3.99 us, 4.03 us, 3.96 us, 4.02 us, 3.98 us, 4.05 us, 4.01 us, 4.01 us, 3.98 us, 4.04 us, 3.97 us, 3.98 us, 4.06 us, 3.98 us, 4.03 us, 4.01 us, 4.07 us, 4.06 us, 4.05 us, 4.07 us, 4.01 us, 3.96 us, 4.04 us, 4.03 us, 4.08 us, 4.05 us, 4.01 us, 3.98 us, 4.01 us, 4.04 us, 4.01 us, 4.08 us, 4.03 us, 4.00 us, 4.02 us, 4.03 us
Run 13: warmup (20): 4.11 us, 4.22 us, 4.19 us, 4.20 us, 4.20 us, 4.17 us, 4.18 us, 4.19 us, 4.21 us, 4.14 us, 4.14 us, 4.19 us, 4.18 us, 4.21 us, 4.17 us, 4.17 us, 4.19 us, 4.16 us, 4.14 us, 4.12 us; samples (50): 4.17 us, 4.12 us, 4.10 us, 4.07 us, 4.07 us, 4.12 us, 4.16 us, 4.11 us, 4.08 us, 4.12 us, 4.14 us, 4.15 us, 4.16 us, 4.17 us, 4.17 us, 4.18 us, 4.15 us, 4.20 us, 4.11 us, 4.09 us, 4.10 us, 4.14 us, 4.16 us, 4.17 us, 4.16 us, 4.18 us, 4.10 us, 4.11 us, 4.09 us, 4.11 us, 4.08 us, 4.10 us, 4.10 us, 4.13 us, 4.14 us, 4.19 us, 4.20 us, 4.08 us, 4.21 us, 4.06 us, 4.07 us, 4.16 us, 4.16 us, 4.13 us, 4.18 us, 4.20 us, 4.18 us, 4.11 us, 4.12 us, 4.11 us
Run 14: warmup (20): 4.42 us (+6%), 4.45 us (+7%), 4.49 us (+8%), 4.47 us (+7%), 4.40 us (+6%), 4.46 us (+7%), 4.47 us (+7%), 4.45 us (+7%), 4.43 us (+7%), 4.41 us (+6%), 4.45 us (+7%), 4.47 us (+7%), 4.40 us (+6%), 4.43 us (+6%), 4.42 us (+6%), 4.49 us (+8%), 4.44 us (+7%), 4.40 us (+6%), 4.40 us (+6%), 4.37 us (+5%); samples (50): 4.38 us (+5%), 4.40 us (+6%), 4.34 us, 4.31 us, 4.41 us (+6%), 4.32 us, 4.41 us (+6%), 4.31 us, 4.29 us, 4.34 us, 4.37 us (+5%), 4.30 us, 4.30 us, 4.42 us (+6%), 4.42 us (+6%), 4.37 us (+5%), 4.41 us (+6%), 4.43 us (+6%), 4.38 us (+5%), 4.41 us (+6%), 4.43 us (+6%), 4.48 us (+8%), 4.45 us (+7%), 4.45 us (+7%), 4.47 us (+7%), 4.45 us (+7%), 4.37 us (+5%), 5.25 us (+26%), 5.45 us (+31%), 4.43 us (+6%), 4.54 us (+9%), 4.63 us (+11%), 4.38 us (+5%), 4.42 us (+6%), 4.43 us (+7%), 4.42 us (+6%), 4.44 us (+7%), 4.40 us (+6%), 4.41 us (+6%), 4.54 us (+9%), 4.42 us (+6%), 4.35 us, 4.42 us (+6%), 4.52 us (+9%), 4.46 us (+7%), 4.43 us (+7%), 4.44 us (+7%), 4.97 us (+19%), 4.43 us (+6%), 4.29 us
Run 15: warmup (20): 4.24 us, 4.25 us, 4.18 us, 4.22 us, 4.17 us, 4.25 us, 4.21 us, 4.30 us, 4.30 us, 4.29 us, 4.24 us, 4.40 us (+6%), 4.23 us, 4.28 us, 4.32 us, 4.28 us, 4.40 us (+6%), 4.30 us, 4.38 us (+5%), 4.27 us; samples (50): 4.29 us, 4.26 us, 4.30 us, 4.33 us, 4.24 us, 4.25 us, 4.26 us, 4.29 us, 4.29 us, 4.29 us, 4.38 us (+5%), 4.32 us, 4.32 us, 4.38 us (+5%), 4.28 us, 4.26 us, 4.30 us, 4.22 us, 4.26 us, 4.35 us, 4.28 us, 4.23 us, 4.23 us, 4.22 us, 4.27 us, 4.31 us, 4.25 us, 4.28 us, 4.27 us, 4.31 us, 4.30 us, 4.32 us, 4.28 us, 4.20 us, 4.26 us, 4.30 us, 4.20 us, 4.21 us, 4.19 us, 4.21 us, 4.24 us, 4.19 us, 4.26 us, 4.29 us, 4.25 us, 4.33 us, 4.28 us, 4.31 us, 4.41 us (+6%), 4.29 us
Run 16: warmup (20): 4.01 us, 4.10 us, 4.08 us, 4.07 us, 4.09 us, 4.09 us, 4.05 us, 4.13 us, 4.07 us, 4.06 us, 4.06 us, 4.00 us, 4.08 us, 4.10 us, 4.06 us, 4.08 us, 4.07 us, 4.24 us, 4.10 us, 4.08 us; samples (50): 4.06 us, 4.11 us, 4.08 us, 4.06 us, 4.08 us, 4.18 us, 4.15 us, 4.01 us, 4.05 us, 4.04 us, 4.05 us, 4.07 us, 4.05 us, 4.07 us, 4.12 us, 4.10 us, 4.06 us, 4.12 us, 4.05 us, 4.02 us, 4.05 us, 4.02 us, 4.09 us, 4.12 us, 4.17 us, 4.15 us, 4.17 us, 4.18 us, 4.23 us, 4.20 us, 4.16 us, 4.10 us, 4.10 us, 4.10 us, 4.21 us, 4.10 us, 4.11 us, 4.00 us, 3.98 us, 4.04 us, 3.98 us, 4.00 us, 4.10 us, 4.14 us, 4.05 us, 4.02 us, 4.00 us, 3.99 us, 3.97 us, 4.05 us
Run 17: warmup (20): 3.96 us, 4.08 us, 4.13 us, 4.13 us, 4.08 us, 4.13 us, 4.18 us, 4.12 us, 4.07 us, 4.13 us, 4.09 us, 4.19 us, 4.10 us, 4.13 us, 4.12 us, 4.10 us, 4.09 us, 4.09 us, 4.02 us, 4.03 us; samples (50): 4.05 us, 4.09 us, 4.06 us, 4.09 us, 4.10 us, 4.11 us, 4.15 us, 4.31 us, 4.14 us, 4.08 us, 4.07 us, 4.08 us, 4.41 us (+6%), 4.84 us (+16%), 4.92 us (+18%), 4.99 us (+20%), 4.07 us, 4.09 us, 4.06 us, 4.30 us, 4.98 us (+20%), 4.56 us (+10%), 4.21 us, 4.07 us, 4.04 us, 4.24 us, 6.99 us (+68%), 5.76 us (+38%), 5.55 us (+33%), 5.10 us (+22%), 5.21 us (+25%), 5.33 us (+28%), 5.16 us (+24%), 5.52 us (+33%), 6.22 us (+49%), 5.94 us (+43%), 5.71 us (+37%), 5.18 us (+24%), 5.26 us (+26%), 5.28 us (+27%), 5.17 us (+24%), 5.45 us (+31%), 5.23 us (+26%), 4.97 us (+19%), 5.39 us (+30%), 5.30 us (+27%), 5.15 us (+24%), 5.27 us (+27%), 5.44 us (+31%), 5.55 us (+33%)
Run 18: warmup (20): 5.94 us (+43%), 5.10 us (+23%), 5.29 us (+27%), 6.49 us (+56%), 5.07 us (+22%), 5.17 us (+24%), 5.20 us (+25%), 4.98 us (+20%), 4.63 us (+11%), 4.22 us, 4.24 us, 4.20 us, 4.21 us, 4.21 us, 4.21 us, 4.20 us, 4.20 us, 4.21 us, 4.19 us, 4.20 us; samples (50): 4.42 us (+6%), 5.17 us (+24%), 4.26 us, 4.19 us, 4.21 us, 4.22 us, 4.16 us, 4.17 us, 4.18 us, 4.18 us, 4.22 us, 4.21 us, 4.17 us, 4.19 us, 4.20 us, 4.15 us, 4.06 us, 4.19 us, 4.21 us, 4.21 us, 4.19 us, 4.19 us, 4.18 us, 4.17 us, 4.20 us, 4.19 us, 4.17 us, 4.25 us, 4.23 us, 4.97 us (+19%), 5.33 us (+28%), 4.20 us, 4.20 us, 4.21 us, 4.19 us, 4.19 us, 4.20 us, 4.19 us, 4.12 us, 4.20 us, 4.11 us, 4.22 us, 4.26 us, 4.20 us, 4.20 us, 4.16 us, 4.15 us, 4.14 us, 4.12 us, 4.15 us
Run 19: warmup (20): 3.95 us (-5%), 5.68 us (+36%), 4.10 us, 4.24 us, 3.99 us, 3.95 us, 3.97 us, 4.02 us, 3.98 us, 3.92 us (-6%), 3.96 us, 3.96 us, 3.93 us (-6%), 3.93 us (-5%), 3.92 us (-6%), 3.95 us (-5%), 3.96 us, 3.95 us (-5%), 3.91 us (-6%), 3.91 us (-6%); samples (50): 3.92 us (-6%), 3.90 us (-6%), 3.89 us (-6%), 3.88 us (-7%), 3.88 us (-7%), 3.91 us (-6%), 3.89 us (-6%), 3.90 us (-6%), 4.98 us (+20%), 3.97 us, 3.98 us, 3.92 us (-6%), 3.90 us (-6%), 3.90 us (-6%), 3.93 us (-6%), 3.99 us, 3.95 us (-5%), 4.18 us, 3.93 us (-5%), 4.43 us (+6%), 4.70 us (+13%), 4.24 us, 4.22 us, 4.29 us, 4.24 us, 4.26 us, 4.27 us, 4.02 us, 4.30 us, 4.07 us, 3.96 us, 4.13 us, 4.94 us (+19%), 4.33 us, 4.01 us, 4.00 us, 4.19 us, 4.58 us (+10%), 4.05 us, 4.00 us, 4.00 us, 3.96 us, 4.10 us, 4.10 us, 4.08 us, 4.14 us, 4.01 us, 4.62 us (+11%), 4.10 us, 4.12 us
Run 20: warmup (20): 5.35 us (+29%), 4.13 us, 4.78 us (+15%), 4.23 us, 4.19 us, 4.60 us (+11%), 4.22 us, 4.28 us, 4.09 us, 3.98 us, 3.94 us (-5%), 3.94 us (-5%), 3.95 us (-5%), 3.97 us, 3.95 us (-5%), 3.98 us, 3.94 us (-5%), 3.96 us, 4.00 us, 3.94 us (-5%); samples (50): 3.97 us, 3.95 us (-5%), 3.94 us (-5%), 3.98 us, 3.93 us (-5%), 4.00 us, 4.09 us, 3.93 us (-6%), 3.91 us (-6%), 3.96 us, 3.94 us (-5%), 3.93 us (-6%), 5.96 us (+43%), 5.13 us (+23%), 3.92 us (-6%), 3.95 us (-5%), 3.97 us, 4.00 us, 3.95 us (-5%), 4.00 us, 3.97 us, 3.98 us, 3.93 us (-5%), 3.98 us, 3.96 us, 3.97 us, 4.01 us, 3.99 us, 3.97 us, 3.98 us, 3.91 us (-6%), 3.87 us (-7%), 3.87 us (-7%), 3.89 us (-7%), 3.87 us (-7%), 3.88 us (-7%), 3.97 us, 3.91 us (-6%), 3.89 us (-7%), 3.88 us (-7%), 3.88 us (-7%), 3.87 us (-7%), 5.58 us (+34%), 5.65 us (+36%), 3.86 us (-7%), 3.93 us (-6%), 3.89 us (-6%), 3.87 us (-7%), 3.87 us (-7%), 3.90 us (-6%)
Run 21: warmup (20): 4.02 us, 4.12 us, 4.11 us, 4.09 us, 4.06 us, 4.10 us, 4.08 us, 4.05 us, 4.01 us, 4.04 us, 4.07 us, 4.13 us, 4.08 us, 4.16 us, 4.09 us, 4.07 us, 4.09 us, 4.10 us, 4.08 us, 4.07 us; samples (50): 4.06 us, 4.10 us, 4.12 us, 4.10 us, 4.13 us, 4.15 us, 4.12 us, 4.12 us, 4.36 us, 4.69 us (+13%), 4.35 us, 4.08 us, 4.44 us (+7%), 4.15 us, 4.06 us, 4.04 us, 4.09 us, 4.09 us, 4.29 us, 4.09 us, 4.06 us, 4.08 us, 4.09 us, 4.08 us, 4.10 us, 4.11 us, 4.07 us, 4.06 us, 4.05 us, 4.05 us, 4.11 us, 4.12 us, 4.03 us, 4.03 us, 4.07 us, 4.10 us, 4.02 us, 4.05 us, 4.00 us, 4.00 us, 4.00 us, 4.00 us, 4.02 us, 4.02 us, 3.99 us, 4.01 us, 4.07 us, 4.04 us, 4.03 us, 3.98 us
Run 22: warmup (20): 4.09 us, 4.13 us, 4.12 us, 4.60 us (+10%), 4.77 us (+15%), 5.14 us (+23%), 4.78 us (+15%), 4.96 us (+19%), 5.02 us (+21%), 5.42 us (+30%), 4.65 us (+12%), 4.70 us (+13%), 4.73 us (+14%), 4.10 us, 4.18 us, 4.08 us, 4.15 us, 4.52 us (+9%), 4.15 us, 4.52 us (+9%); samples (50): 4.08 us, 4.45 us (+7%), 4.12 us, 4.08 us, 4.23 us, 4.17 us, 4.10 us, 4.32 us, 4.15 us, 4.10 us, 4.09 us, 4.12 us, 4.12 us, 4.09 us, 4.12 us, 4.14 us, 4.11 us, 4.10 us, 4.15 us, 4.09 us, 4.12 us, 4.13 us, 4.10 us, 4.10 us, 4.10 us, 4.14 us, 4.07 us, 4.12 us, 4.09 us, 4.14 us, 4.13 us, 4.12 us, 4.10 us, 4.13 us, 4.12 us, 4.09 us, 4.11 us, 4.10 us, 4.09 us, 4.08 us, 4.05 us, 4.06 us, 4.08 us, 4.10 us, 4.09 us, 4.13 us, 4.05 us, 4.08 us, 4.09 us, 4.08 us
Run 23: warmup (20): 4.08 us, 4.11 us, 4.20 us, 4.15 us, 4.36 us, 4.33 us, 4.21 us, 4.07 us, 4.07 us, 4.07 us, 4.10 us, 4.12 us, 4.06 us, 4.17 us, 4.12 us, 4.09 us, 4.11 us, 4.02 us, 4.00 us, 4.01 us; samples (50): 3.99 us, 4.07 us, 4.01 us, 4.02 us, 4.06 us, 4.01 us, 4.06 us, 4.06 us, 4.16 us, 4.15 us, 4.12 us, 4.05 us, 4.05 us, 4.11 us, 4.17 us, 4.24 us, 4.14 us, 4.11 us, 4.11 us, 4.07 us, 4.10 us, 4.10 us, 4.08 us, 4.10 us, 4.12 us, 4.09 us, 4.08 us, 4.07 us, 4.09 us, 4.06 us, 4.08 us, 4.10 us, 4.11 us, 4.10 us, 4.14 us, 4.06 us, 4.12 us, 4.06 us, 4.03 us, 4.08 us, 4.06 us, 4.07 us, 4.10 us, 4.06 us, 4.09 us, 4.11 us, 4.08 us, 4.09 us, 4.10 us, 4.06 us
Run 24: warmup (20): 4.14 us, 4.13 us, 4.23 us, 4.15 us, 4.17 us, 4.20 us, 4.21 us, 4.17 us, 4.17 us, 4.25 us, 4.21 us, 4.71 us (+13%), 5.30 us (+27%), 5.08 us (+22%), 5.15 us (+24%), 6.00 us (+44%), 5.31 us (+28%), 4.85 us (+16%), 5.92 us (+42%), 6.52 us (+57%); samples (50): 5.60 us (+35%), 4.90 us (+18%), 5.00 us (+20%), 5.43 us (+31%), 5.86 us (+41%), 5.12 us (+23%), 4.95 us (+19%), 5.08 us (+22%), 4.97 us (+19%), 5.10 us (+23%), 5.34 us (+28%), 5.39 us (+30%), 6.41 us (+54%), 5.16 us (+24%), 5.29 us (+27%), 5.56 us (+34%), 4.37 us, 4.33 us, 4.32 us, 4.34 us, 4.34 us, 4.36 us, 4.97 us (+19%), 4.46 us (+7%), 4.33 us, 4.36 us, 4.39 us (+5%), 4.33 us, 4.91 us (+18%), 4.33 us, 4.28 us, 4.18 us, 4.21 us, 4.35 us, 4.25 us, 4.45 us (+7%), 4.16 us, 4.17 us, 4.17 us, 4.19 us, 4.19 us, 4.16 us, 4.15 us, 4.24 us, 4.24 us, 4.18 us, 4.24 us, 4.13 us, 4.28 us, 4.18 us
Run 25: warmup (20): 4.09 us, 4.14 us, 4.10 us, 4.11 us, 4.13 us, 4.12 us, 4.10 us, 4.10 us, 4.12 us, 4.08 us, 4.08 us, 4.10 us, 4.12 us, 4.09 us, 4.13 us, 4.11 us, 4.08 us, 4.09 us, 4.05 us, 4.08 us; samples (50): 4.10 us, 4.07 us, 4.11 us, 4.10 us, 4.12 us, 4.11 us, 4.11 us, 4.15 us, 4.07 us, 4.10 us, 4.08 us, 4.08 us, 4.05 us, 4.05 us, 4.06 us, 4.09 us, 4.12 us, 4.11 us, 4.10 us, 4.12 us, 4.11 us, 4.10 us, 4.13 us, 4.69 us (+13%), 6.03 us (+45%), 4.66 us (+12%), 4.16 us, 4.14 us, 4.12 us, 4.13 us, 4.10 us, 4.12 us, 4.09 us, 4.08 us, 4.09 us, 4.11 us, 5.98 us (+44%), 6.57 us (+58%), 5.00 us (+20%), 4.15 us, 4.08 us, 4.12 us, 4.13 us, 4.14 us, 4.13 us, 4.09 us, 4.06 us, 4.08 us, 4.08 us, 4.10 us
Run 26: warmup (20): 4.19 us, 4.23 us, 4.22 us, 4.23 us, 4.24 us, 4.21 us, 4.41 us (+6%), 4.49 us (+8%), 4.21 us, 4.23 us, 4.26 us, 4.24 us, 4.19 us, 4.25 us, 4.19 us, 4.22 us, 4.18 us, 4.25 us, 4.17 us, 4.13 us; samples (50): 4.15 us, 4.17 us, 4.14 us, 4.22 us, 4.15 us, 4.21 us, 4.17 us, 4.20 us, 4.22 us, 4.19 us, 4.17 us, 4.17 us, 4.15 us, 4.24 us, 4.20 us, 4.20 us, 4.18 us, 4.24 us, 4.18 us, 4.25 us, 5.86 us (+41%), 6.70 us (+61%), 5.53 us (+33%), 4.16 us, 4.19 us, 4.19 us, 4.19 us, 4.24 us, 4.17 us, 4.18 us, 4.18 us, 4.25 us, 4.21 us, 4.22 us, 4.21 us, 4.16 us, 4.19 us, 4.16 us, 4.17 us, 4.12 us, 4.15 us, 4.18 us, 4.18 us, 4.18 us, 4.23 us, 4.16 us, 4.29 us, 4.16 us, 4.20 us, 4.20 us
Run 27: warmup (20): 4.53 us (+9%), 4.38 us (+5%), 4.21 us, 4.22 us, 4.10 us, 4.09 us, 4.12 us, 4.07 us, 4.12 us, 4.09 us, 4.09 us, 4.43 us (+6%), 4.44 us (+7%), 4.15 us, 4.17 us, 4.15 us, 4.12 us, 4.35 us, 4.51 us (+8%), 4.32 us; samples (50): 4.12 us, 4.09 us, 4.19 us, 4.25 us, 4.13 us, 4.15 us, 4.17 us, 4.18 us, 4.16 us, 4.16 us, 4.16 us, 4.35 us, 4.24 us, 4.90 us (+18%), 4.15 us, 4.16 us, 4.10 us, 4.21 us, 5.43 us (+31%), 6.56 us (+58%), 4.56 us (+9%), 4.16 us, 4.15 us, 4.19 us, 4.14 us, 4.14 us, 4.10 us, 4.17 us, 4.15 us, 4.22 us, 4.26 us, 4.21 us, 6.23 us (+50%), 6.26 us (+50%), 4.14 us, 4.26 us, 4.18 us, 4.17 us, 4.13 us, 4.08 us, 4.06 us, 4.06 us, 4.09 us, 4.02 us, 4.13 us, 4.11 us, 4.11 us, 4.12 us, 4.09 us, 4.07 us
Run 28: warmup (20): 4.18 us, 4.21 us, 4.23 us, 4.25 us, 4.42 us (+6%), 4.29 us, 4.30 us, 4.26 us, 4.30 us, 4.31 us, 4.30 us, 4.25 us, 4.20 us, 4.19 us, 4.19 us, 4.21 us, 4.42 us (+6%), 4.22 us, 4.53 us (+9%), 4.16 us; samples (50): 4.22 us, 4.19 us, 4.18 us, 4.17 us, 4.24 us, 4.83 us (+16%), 4.47 us (+7%), 4.18 us, 4.18 us, 4.22 us, 4.22 us, 4.14 us, 4.65 us (+12%), 4.16 us, 4.18 us, 4.17 us, 4.18 us, 4.15 us, 4.17 us, 4.17 us, 4.16 us, 4.16 us, 4.16 us, 4.17 us, 4.13 us, 4.21 us, 4.16 us, 4.24 us, 4.10 us, 4.71 us (+13%), 4.94 us (+19%), 4.33 us, 4.26 us, 4.32 us, 4.16 us, 4.10 us, 4.18 us, 4.28 us, 4.15 us, 4.12 us, 4.15 us, 4.12 us, 4.10 us, 4.16 us, 4.28 us, 4.26 us, 4.15 us, 4.12 us, 4.47 us (+7%), 4.69 us (+13%)
Run 29: warmup (20): 4.05 us, 4.11 us, 4.05 us, 4.02 us, 4.01 us, 4.00 us, 4.05 us, 4.07 us, 4.07 us, 4.07 us, 4.23 us, 4.04 us, 4.03 us, 4.06 us, 4.07 us, 4.09 us, 4.04 us, 4.05 us, 4.08 us, 4.05 us; samples (50): 4.05 us, 4.01 us, 4.06 us, 4.06 us, 4.06 us, 4.05 us, 4.04 us, 4.06 us, 4.03 us, 4.08 us, 4.04 us, 4.05 us, 4.05 us, 4.00 us, 4.07 us, 4.01 us, 4.00 us, 3.97 us, 4.04 us, 3.97 us, 3.97 us, 3.94 us (-5%), 4.16 us, 4.26 us, 4.17 us, 3.99 us, 4.03 us, 4.11 us, 4.10 us, 4.10 us, 4.18 us, 4.06 us, 4.02 us, 4.03 us, 4.04 us, 4.04 us, 3.95 us (-5%), 3.94 us (-5%), 3.95 us (-5%), 3.94 us (-5%), 3.98 us, 3.94 us (-5%), 3.94 us (-5%), 3.97 us, 4.01 us, 3.94 us (-5%), 4.00 us, 4.03 us, 3.98 us, 4.00 us
Run 30: warmup (20): 4.16 us, 4.20 us, 4.16 us, 4.26 us, 4.15 us, 4.16 us, 4.20 us, 4.27 us, 4.15 us, 4.20 us, 4.15 us, 4.16 us, 4.12 us, 4.14 us, 4.24 us, 4.26 us, 4.20 us, 4.30 us, 4.96 us (+19%), 4.41 us (+6%); samples (50): 4.23 us, 4.16 us, 4.21 us, 4.25 us, 4.32 us, 5.44 us (+31%), 5.21 us (+25%), 5.07 us (+22%), 7.74 us (+86%), 4.20 us, 4.16 us, 4.24 us, 4.22 us, 4.27 us, 4.16 us, 4.18 us, 4.14 us, 4.10 us, 4.09 us, 4.18 us, 4.19 us, 4.23 us, 4.17 us, 4.77 us (+15%), 5.01 us (+20%), 7.23 us (+74%), 5.17 us (+24%), 4.98 us (+20%), 5.61 us (+35%), 6.96 us (+67%), 6.23 us (+50%), 5.05 us (+21%), 5.18 us (+25%), 5.10 us (+23%), 6.35 us (+53%), 5.06 us (+22%), 5.23 us (+26%), 5.07 us (+22%), 5.07 us (+22%), 5.32 us (+28%), 5.12 us (+23%), 5.26 us (+26%), 5.17 us (+24%), 6.21 us (+49%), 5.41 us (+30%), 5.07 us (+22%), 6.64 us (+60%), 6.62 us (+59%), 5.30 us (+27%), 5.25 us (+26%)
Run 31: warmup (20): 5.82 us (+40%), 5.96 us (+43%), 5.49 us (+32%), 5.65 us (+36%), 5.76 us (+38%), 4.75 us (+14%), 4.46 us (+7%), 4.41 us (+6%), 4.37 us, 4.37 us (+5%), 4.41 us (+6%), 4.39 us (+6%), 4.40 us (+6%), 4.42 us (+6%), 4.35 us, 4.42 us (+6%), 4.35 us, 4.34 us, 4.29 us, 4.47 us (+7%); samples (50): 4.29 us, 4.31 us, 4.39 us (+5%), 4.92 us (+18%), 4.53 us (+9%), 4.41 us (+6%), 4.37 us (+5%), 4.44 us (+7%), 4.46 us (+7%), 4.71 us (+13%), 4.97 us (+19%), 4.39 us (+6%), 4.31 us, 4.31 us, 4.25 us, 4.28 us, 5.03 us (+21%), 4.39 us (+5%), 4.27 us, 4.34 us, 4.32 us, 4.32 us, 4.51 us (+8%), 4.45 us (+7%), 5.08 us (+22%), 4.71 us (+13%), 4.64 us (+11%), 4.32 us, 4.36 us, 8.54 us (+105%), 8.24 us (+98%), 6.47 us (+55%), 4.90 us (+18%), 4.53 us (+9%), 4.50 us (+8%), 4.32 us, 4.47 us (+7%), 4.35 us, 4.43 us (+6%), 5.37 us (+29%), 4.61 us (+11%), 4.38 us (+5%), 4.32 us, 5.23 us (+26%), 5.66 us (+36%), 7.15 us (+72%), 9.15 us (+120%), 5.28 us (+27%), 8.12 us (+95%), 8.83 us (+112%)
Run 32: warmup (20): 5.00 us (+20%), 4.65 us (+12%), 4.31 us, 4.30 us, 5.78 us (+39%), 4.48 us (+8%), 4.74 us (+14%), 4.84 us (+16%), 4.42 us (+6%), 4.66 us (+12%), 4.33 us, 4.24 us, 4.17 us, 4.24 us, 6.27 us (+51%), 5.14 us (+24%), 4.96 us (+19%), 4.65 us (+12%), 5.72 us (+37%), 5.40 us (+30%); samples (50): 5.17 us (+24%), 8.48 us (+104%), 8.12 us (+95%), 4.50 us (+8%), 4.34 us, 4.16 us, 4.18 us, 4.13 us, 4.21 us, 4.20 us, 4.16 us, 4.24 us, 4.16 us, 4.21 us, 4.23 us, 4.15 us, 4.20 us, 4.25 us, 4.18 us, 4.24 us, 4.17 us, 4.28 us, 4.18 us, 4.21 us, 4.25 us, 4.23 us, 4.18 us, 4.34 us, 4.27 us, 4.32 us, 4.15 us, 4.19 us, 4.14 us, 4.18 us, 4.14 us, 4.16 us, 4.21 us, 4.15 us, 4.15 us, 4.18 us, 4.17 us, 4.18 us, 4.08 us, 4.91 us (+18%), 6.70 us (+61%), 5.54 us (+33%), 4.15 us, 4.11 us, 4.15 us, 4.14 us
Run 33: warmup (20): 4.85 us (+17%), 4.83 us (+16%), 4.88 us (+17%), 4.98 us (+20%), 4.94 us (+19%), 4.79 us (+15%), 4.87 us (+17%), 4.78 us (+15%), 4.73 us (+14%), 5.14 us (+23%), 4.82 us (+16%), 4.79 us (+15%), 4.76 us (+14%), 4.77 us (+15%), 4.84 us (+16%), 4.76 us (+14%), 4.67 us (+12%), 4.78 us (+15%), 4.82 us (+16%), 4.86 us (+17%); samples (50): 4.81 us (+16%), 4.85 us (+17%), 4.90 us (+18%), 4.86 us (+17%), 4.91 us (+18%), 5.03 us (+21%), 5.07 us (+22%), 4.74 us (+14%), 4.76 us (+14%), 4.85 us (+16%), 4.73 us (+14%), 4.76 us (+14%), 4.70 us (+13%), 4.79 us (+15%), 4.72 us (+14%), 4.69 us (+13%), 4.71 us (+13%), 4.72 us (+13%), 4.73 us (+14%), 4.68 us (+12%), 4.74 us (+14%), 4.76 us (+14%), 4.76 us (+14%), 4.71 us (+13%), 4.73 us (+14%), 4.73 us (+14%), 4.73 us (+14%), 4.70 us (+13%), 4.68 us (+12%), 4.68 us (+12%), 4.91 us (+18%), 4.88 us (+17%), 4.76 us (+14%), 4.73 us (+14%), 4.70 us (+13%), 4.70 us (+13%), 5.08 us (+22%), 4.69 us (+13%), 4.69 us (+13%), 4.67 us (+12%), 4.65 us (+12%), 4.68 us (+13%), 4.66 us (+12%), 4.72 us (+13%), 4.96 us (+19%), 4.66 us (+12%), 4.71 us (+13%), 4.77 us (+15%), 4.78 us (+15%), 4.71 us (+13%)
Run 34: warmup (20): 4.78 us (+15%), 4.94 us (+19%), 4.85 us (+17%), 4.79 us (+15%), 5.00 us (+20%), 4.84 us (+16%), 5.25 us (+26%), 5.12 us (+23%), 4.86 us (+17%), 4.93 us (+18%), 4.91 us (+18%), 4.80 us (+15%), 4.85 us (+17%), 4.94 us (+19%), 4.75 us (+14%), 4.79 us (+15%), 4.72 us (+13%), 4.73 us (+14%), 4.72 us (+13%), 4.69 us (+13%); samples (50): 4.70 us (+13%), 4.83 us (+16%), 4.67 us (+12%), 4.68 us (+13%), 4.77 us (+15%), 5.28 us (+27%), 5.01 us (+20%), 4.70 us (+13%), 4.69 us (+13%), 4.75 us (+14%), 4.68 us (+12%), 4.73 us (+14%), 4.71 us (+13%), 4.68 us (+12%), 4.70 us (+13%), 4.80 us (+15%), 4.71 us (+13%), 4.73 us (+14%), 4.74 us (+14%), 4.65 us (+12%), 4.72 us (+14%), 4.72 us (+13%), 4.77 us (+15%), 4.75 us (+14%), 4.83 us (+16%), 4.71 us (+13%), 4.78 us (+15%), 4.69 us (+13%), 4.76 us (+14%), 4.76 us (+14%), 4.75 us (+14%), 4.84 us (+16%), 4.78 us (+15%), 4.73 us (+14%), 4.74 us (+14%), 4.72 us (+14%), 4.78 us (+15%), 4.70 us (+13%), 4.72 us (+13%), 4.70 us (+13%), 4.75 us (+14%), 4.72 us (+13%), 4.75 us (+14%), 4.74 us (+14%), 4.75 us (+14%), 4.72 us (+13%), 4.70 us (+13%), 4.71 us (+13%), 4.71 us (+13%), 4.72 us (+13%)
Run 35: warmup (20): 3.95 us (-5%), 4.15 us, 4.48 us (+8%), 4.64 us (+12%), 4.17 us, 4.17 us, 4.24 us, 4.14 us, 4.27 us, 4.66 us (+12%), 4.06 us, 3.98 us, 3.90 us (-6%), 4.06 us, 5.36 us (+29%), 4.50 us (+8%), 3.98 us, 4.13 us, 4.00 us, 3.97 us; samples (50): 3.94 us (-5%), 3.93 us (-6%), 4.00 us, 4.02 us, 4.06 us, 3.99 us, 4.03 us, 4.00 us, 4.01 us, 4.01 us, 4.03 us, 3.99 us, 4.00 us, 4.07 us, 4.05 us, 4.02 us, 4.04 us, 3.96 us, 3.99 us, 4.00 us, 3.99 us, 4.01 us, 3.99 us, 3.96 us, 3.99 us, 3.95 us (-5%), 3.93 us (-6%), 3.92 us (-6%), 4.01 us, 4.00 us, 3.93 us (-6%), 3.98 us, 3.95 us, 3.99 us, 3.93 us (-6%), 4.02 us, 4.37 us (+5%), 4.10 us, 4.15 us, 4.11 us, 4.08 us, 4.14 us, 4.06 us, 4.12 us, 4.31 us, 4.11 us, 4.03 us, 4.01 us, 4.00 us, 4.04 us
Run 36: warmup (20): 4.89 us (+17%), 4.21 us, 4.29 us, 4.26 us, 4.25 us, 4.21 us, 4.26 us, 4.22 us, 4.17 us, 4.19 us, 4.16 us, 4.20 us, 4.14 us, 4.55 us (+9%), 4.63 us (+11%), 4.33 us, 4.20 us, 4.15 us, 4.15 us, 4.13 us; samples (50): 4.19 us, 5.19 us (+25%), 4.43 us (+6%), 4.37 us, 4.21 us, 4.18 us, 4.17 us, 4.09 us, 4.23 us, 4.25 us, 4.14 us, 4.33 us, 4.60 us (+10%), 4.18 us, 4.23 us, 4.30 us, 4.28 us, 4.15 us, 5.12 us (+23%), 5.57 us (+34%), 6.00 us (+44%), 5.58 us (+34%), 6.27 us (+51%), 7.99 us (+92%), 5.60 us (+35%), 6.21 us (+49%), 6.34 us (+52%), 5.02 us (+21%), 6.13 us (+47%), 4.96 us (+19%), 5.16 us (+24%), 5.15 us (+24%), 5.00 us (+20%), 4.98 us (+20%), 5.10 us (+23%), 5.50 us (+32%), 6.25 us (+50%), 5.10 us (+23%), 4.94 us (+19%), 5.11 us (+23%), 7.11 us (+71%), 5.35 us (+29%), 5.29 us (+27%), 4.94 us (+19%), 5.26 us (+26%), 6.18 us (+49%), 5.52 us (+33%), 5.01 us (+20%), 5.11 us (+23%), 5.13 us (+23%)
Run 37: warmup (20): 5.23 us (+26%), 4.72 us (+13%), 4.23 us, 4.16 us, 4.18 us, 4.17 us, 4.16 us, 4.22 us, 4.20 us, 4.22 us, 4.24 us, 4.80 us (+15%), 4.47 us (+7%), 4.24 us, 4.85 us (+17%), 4.26 us, 4.40 us (+6%), 4.25 us, 4.26 us, 4.15 us; samples (50): 4.12 us, 4.16 us, 4.15 us, 4.13 us, 4.12 us, 4.15 us, 4.12 us, 4.13 us, 4.11 us, 4.09 us, 4.11 us, 4.16 us, 4.15 us, 4.09 us, 4.07 us, 4.10 us, 4.14 us, 4.18 us, 4.16 us, 4.16 us, 4.11 us, 4.17 us, 4.18 us, 4.19 us, 4.23 us, 4.12 us, 4.18 us, 4.13 us, 4.19 us, 4.39 us (+5%), 4.18 us, 4.17 us, 4.29 us, 4.95 us (+19%), 4.44 us (+7%), 4.20 us, 4.43 us (+7%), 4.48 us (+8%), 4.17 us, 4.19 us, 4.17 us, 4.23 us, 4.30 us, 4.25 us, 4.24 us, 4.22 us, 4.28 us, 4.29 us, 4.27 us, 4.20 us
Run 38: warmup (20): 4.28 us, 4.34 us, 4.33 us, 4.31 us, 4.33 us, 4.29 us, 4.38 us (+5%), 4.29 us, 4.22 us, 4.28 us, 4.31 us, 4.44 us (+7%), 4.75 us (+14%), 4.46 us (+7%), 4.29 us, 4.34 us, 4.52 us (+9%), 4.30 us, 4.28 us, 4.30 us; samples (50): 4.26 us, 4.27 us, 4.47 us (+7%), 4.28 us, 4.27 us, 4.28 us, 4.28 us, 4.33 us, 4.22 us, 4.30 us, 4.29 us, 4.27 us, 4.28 us, 4.30 us, 4.28 us, 4.52 us (+9%), 4.26 us, 4.31 us, 4.28 us, 4.30 us, 4.28 us, 4.34 us, 4.30 us, 4.31 us, 4.34 us, 4.34 us, 4.34 us, 4.37 us (+5%), 4.39 us (+6%), 4.34 us, 4.37 us (+5%), 4.87 us (+17%), 4.29 us, 4.27 us, 4.26 us, 4.29 us, 4.28 us, 4.36 us, 4.28 us, 4.28 us, 4.30 us, 4.28 us, 4.28 us, 4.25 us, 4.22 us, 4.22 us, 4.23 us, 4.23 us, 4.20 us, 4.20 us
Run 39: warmup (20): 4.37 us (+5%), 4.45 us (+7%), 4.41 us (+6%), 4.46 us (+7%), 4.45 us (+7%), 4.48 us (+8%), 4.44 us (+7%), 4.38 us (+5%), 4.42 us (+6%), 4.45 us (+7%), 4.48 us (+8%), 4.46 us (+7%), 4.44 us (+7%), 4.44 us (+7%), 4.41 us (+6%), 4.48 us (+8%), 4.44 us (+7%), 4.49 us (+8%), 4.37 us (+5%), 4.40 us (+6%); samples (50): 4.43 us (+6%), 4.50 us (+8%), 4.45 us (+7%), 4.49 us (+8%), 4.50 us (+8%), 4.49 us (+8%), 4.52 us (+9%), 4.49 us (+8%), 4.45 us (+7%), 4.42 us (+6%), 4.45 us (+7%), 4.45 us (+7%), 4.44 us (+7%), 4.41 us (+6%), 4.45 us (+7%), 4.44 us (+7%), 4.40 us (+6%), 4.41 us (+6%), 4.42 us (+6%), 4.47 us (+8%), 4.45 us (+7%), 4.45 us (+7%), 4.42 us (+6%), 4.38 us (+5%), 4.46 us (+7%), 4.48 us (+8%), 4.45 us (+7%), 4.38 us (+5%), 4.41 us (+6%), 4.44 us (+7%), 4.44 us (+7%), 4.47 us (+7%), 4.50 us (+8%), 4.44 us (+7%), 4.46 us (+7%), 4.46 us (+7%), 4.46 us (+7%), 4.36 us, 4.41 us (+6%), 4.47 us (+7%), 4.42 us (+6%), 4.35 us, 4.40 us (+6%), 4.39 us (+6%), 4.34 us, 4.39 us (+6%), 4.41 us (+6%), 4.40 us (+6%), 4.42 us (+6%), 4.37 us
Run 40: warmup (20): 3.91 us (-6%), 3.96 us, 3.97 us, 3.97 us, 3.94 us (-5%), 3.96 us, 4.00 us, 3.97 us, 3.96 us, 3.99 us, 3.97 us, 3.95 us, 3.96 us, 3.96 us, 3.92 us (-6%), 3.96 us, 3.93 us (-6%), 3.96 us, 4.04 us, 4.13 us; samples (50): 4.08 us, 3.98 us, 3.94 us (-5%), 4.00 us, 4.08 us, 4.03 us, 4.01 us, 3.99 us, 4.13 us, 4.15 us, 5.44 us (+31%), 4.15 us, 4.31 us, 5.36 us (+29%), 4.42 us (+6%), 4.07 us, 4.19 us, 4.95 us (+19%), 4.83 us (+16%), 4.69 us (+13%), 4.91 us (+18%), 4.67 us (+12%), 4.27 us, 4.44 us (+7%), 4.14 us, 4.30 us, 4.06 us, 4.22 us, 4.09 us, 4.87 us (+17%), 4.86 us (+17%), 4.53 us (+9%), 4.21 us, 4.27 us, 4.04 us, 4.01 us, 4.00 us, 3.98 us, 3.98 us, 4.04 us, 3.98 us, 4.02 us, 3.97 us, 4.02 us, 4.02 us, 4.01 us, 4.04 us, 3.98 us, 3.96 us, 4.65 us (+12%)
3.70 us: 119 #######
3.97 us: 1156 #################################################################
4.23 us: 371 #####################
4.50 us: 116 #######
4.76 us: 77 ####
5.02 us: 64 ####
5.29 us: 32 ##
5.55 us: 15 #
5.82 us: 12 #
6.08 us: 14 #
6.35 us: 4 |
6.61 us: 5 |
6.88 us: 3 |
7.14 us: 2 |
7.40 us: 0 |
7.67 us: 1 |
7.93 us: 3 |
8.20 us: 1 |
8.46 us: 3 |
8.73 us: 1 |
8.99 us: 1 |
WARNING: the benchmark seems unstable, the standard deviation is high (stdev/median: 13%)
Try to rerun the benchmark with more runs, samples and/or loops
Median +- std dev: 4.16 us +- 0.53 us
with changes
........................................
Metadata:
- aslr: Full randomization
- boot_time: 2016-10-03T11:28:53
- cpu_config: 0-3=driver:intel_pstate, intel_pstate:turbo, governor:powersave; idle:intel_idle
- cpu_count: 4
- cpu_model_name: Intel(R) Core(TM) i7-5600U CPU @ 2.60GHz
- hostname: funami
- loops: 2^15
- name: timeit
- perf_version: 0.7.12
- platform: Linux-4.7.5-1-ARCH-x86_64-with-arch
- python_cflags: -Wno-unused-result -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes
- python_executable: /home/yui/.virtualenvs/databazaar/bin/python
- python_implementation: cpython
- python_version: 3.4.3 (64-bit) revision b4cbecbc0781
- timeit_setup: 'import pandas as pd;s = pd.Series([1, 2, 3])'
- timeit_stmt: 's[0] = 1'
- timer: clock_gettime(CLOCK_MONOTONIC), resolution: 1.00 ns
Run 1: warmup (36): 1.04 ms (+26664%), 26.9 us (+596%), 14.8 us (+283%), 10.6 us (+174%), 8.62 us (+123%), 7.60 us (+97%), 7.21 us (+86%), 7.11 us (+84%), 6.85 us (+77%), 7.09 us (+83%), 6.98 us (+80%), 6.64 us (+72%), 3.75 us, 3.63 us (-6%), 3.66 us (-5%), 3.71 us, 3.74 us, 3.83 us, 3.79 us, 3.65 us (-6%), 3.72 us, 3.70 us, 3.71 us, 3.73 us, 3.73 us, 3.66 us (-5%), 3.83 us, 4.85 us (+25%), 3.73 us, 3.74 us, 4.29 us (+11%), 3.71 us, 3.77 us, 3.75 us, 3.74 us, 3.67 us (-5%); samples (50): 3.67 us (-5%), 3.64 us (-6%), 3.65 us (-6%), 3.65 us (-6%), 3.73 us, 4.11 us (+6%), 4.20 us (+9%), 3.68 us, 4.48 us (+16%), 4.63 us (+20%), 3.79 us, 3.63 us (-6%), 3.73 us, 3.64 us (-6%), 3.63 us (-6%), 3.63 us (-6%), 3.64 us (-6%), 3.72 us, 3.70 us, 3.70 us, 3.82 us, 3.83 us, 3.79 us, 3.74 us, 3.63 us (-6%), 3.69 us, 3.79 us, 3.83 us, 3.75 us, 3.89 us, 3.73 us, 3.75 us, 3.77 us, 4.33 us (+12%), 4.78 us (+23%), 4.14 us (+7%), 4.85 us (+25%), 4.02 us, 3.98 us, 3.96 us, 3.83 us, 3.72 us, 3.73 us, 3.76 us, 3.73 us, 3.77 us, 3.68 us, 3.68 us, 4.08 us (+6%), 3.73 us
Run 2: warmup (20): 4.53 us (+17%), 4.47 us (+16%), 4.45 us (+15%), 4.44 us (+15%), 4.30 us (+11%), 4.36 us (+13%), 4.32 us (+12%), 4.31 us (+11%), 4.25 us (+10%), 4.26 us (+10%), 4.35 us (+12%), 4.34 us (+12%), 4.31 us (+11%), 4.31 us (+11%), 4.42 us (+14%), 4.41 us (+14%), 4.34 us (+12%), 4.32 us (+12%), 4.41 us (+14%), 4.34 us (+12%); samples (50): 4.57 us (+18%), 4.36 us (+13%), 4.30 us (+11%), 4.29 us (+11%), 4.40 us (+14%), 4.38 us (+13%), 4.31 us (+11%), 4.21 us (+9%), 4.36 us (+13%), 4.83 us (+25%), 4.37 us (+13%), 4.35 us (+13%), 4.43 us (+15%), 4.40 us (+14%), 4.41 us (+14%), 4.41 us (+14%), 4.53 us (+17%), 4.39 us (+13%), 4.98 us (+29%), 5.35 us (+38%), 6.78 us (+75%), 5.24 us (+36%), 5.14 us (+33%), 4.31 us (+11%), 4.32 us (+12%), 4.27 us (+10%), 4.34 us (+12%), 4.33 us (+12%), 4.36 us (+13%), 4.40 us (+14%), 4.45 us (+15%), 4.57 us (+18%), 5.20 us (+35%), 4.31 us (+11%), 4.49 us (+16%), 5.58 us (+44%), 6.60 us (+71%), 6.91 us (+79%), 6.67 us (+72%), 5.98 us (+55%), 5.44 us (+41%), 5.60 us (+45%), 5.56 us (+44%), 5.58 us (+44%), 6.68 us (+73%), 6.60 us (+71%), 6.24 us (+61%), 4.78 us (+24%), 6.12 us (+58%), 8.45 us (+118%)
Run 3: warmup (20): 6.46 us (+67%), 4.96 us (+28%), 4.88 us (+26%), 4.73 us (+22%), 4.28 us (+11%), 4.33 us (+12%), 4.29 us (+11%), 4.98 us (+29%), 7.88 us (+104%), 5.76 us (+49%), 5.82 us (+50%), 4.56 us (+18%), 4.71 us (+22%), 8.21 us (+112%), 8.16 us (+111%), 6.01 us (+56%), 6.12 us (+58%), 4.57 us (+18%), 3.90 us, 3.82 us; samples (50): 3.85 us, 3.80 us, 3.79 us, 3.81 us, 3.79 us, 3.80 us, 3.85 us, 3.83 us, 3.91 us, 4.41 us (+14%), 4.11 us (+6%), 3.91 us, 3.91 us, 3.77 us, 3.83 us, 3.82 us, 3.81 us, 3.96 us, 3.84 us, 3.84 us, 3.92 us, 3.85 us, 3.84 us, 3.84 us, 3.86 us, 3.86 us, 3.85 us, 3.82 us, 3.82 us, 3.84 us, 3.83 us, 3.89 us, 3.94 us, 3.84 us, 3.82 us, 3.87 us, 4.95 us (+28%), 4.62 us (+19%), 3.87 us, 3.85 us, 4.75 us (+23%), 7.72 us (+100%), 4.54 us (+17%), 4.41 us (+14%), 4.28 us (+11%), 4.02 us, 3.94 us, 3.90 us, 3.89 us, 3.84 us
Run 4: warmup (20): 4.04 us, 4.11 us (+6%), 4.01 us, 4.02 us, 4.02 us, 3.98 us, 4.03 us, 4.02 us, 3.96 us, 3.96 us, 3.96 us, 3.95 us, 3.96 us, 3.94 us, 3.92 us, 3.95 us, 3.96 us, 3.92 us, 3.93 us, 3.95 us; samples (50): 3.92 us, 3.95 us, 3.99 us, 3.92 us, 3.92 us, 3.96 us, 4.04 us, 3.96 us, 3.97 us, 3.93 us, 3.96 us, 3.94 us, 3.97 us, 3.92 us, 3.93 us, 3.90 us, 3.95 us, 3.95 us, 3.95 us, 3.95 us, 3.99 us, 4.03 us, 4.01 us, 3.97 us, 3.95 us, 3.96 us, 3.99 us, 4.06 us, 4.07 us (+5%), 3.96 us, 3.89 us, 3.93 us, 3.93 us, 3.93 us, 3.88 us, 3.92 us, 3.94 us, 3.95 us, 3.86 us, 3.88 us, 4.45 us (+15%), 4.32 us (+12%), 4.17 us (+8%), 4.26 us (+10%), 4.01 us, 3.92 us, 3.92 us, 3.95 us, 3.89 us, 3.93 us
Run 5: warmup (20): 3.96 us, 3.75 us, 4.10 us (+6%), 5.04 us (+30%), 3.77 us, 3.71 us, 3.99 us, 4.08 us (+5%), 3.76 us, 3.73 us, 3.73 us, 3.75 us, 3.68 us, 3.70 us, 3.71 us, 3.69 us, 3.72 us, 3.72 us, 3.73 us, 3.70 us; samples (50): 3.72 us, 3.72 us, 3.77 us, 3.69 us, 3.72 us, 3.68 us, 3.75 us, 3.82 us, 3.75 us, 3.75 us, 3.73 us, 3.76 us, 3.78 us, 3.74 us, 3.71 us, 3.76 us, 3.72 us, 3.71 us, 3.70 us, 3.69 us, 3.66 us (-5%), 3.73 us, 3.74 us, 3.69 us, 3.69 us, 3.68 us, 3.68 us, 3.69 us, 3.71 us, 3.69 us, 3.70 us, 3.70 us, 3.70 us, 3.69 us, 3.67 us (-5%), 3.67 us (-5%), 3.73 us, 3.68 us, 3.68 us, 3.71 us, 3.77 us, 3.69 us, 3.67 us (-5%), 3.70 us, 3.70 us, 3.72 us, 3.68 us, 3.72 us, 3.78 us, 3.72 us
Run 6: warmup (20): 3.79 us, 3.81 us, 3.83 us, 3.82 us, 3.83 us, 4.03 us, 3.84 us, 3.81 us, 3.96 us, 4.11 us (+6%), 4.34 us (+12%), 4.21 us (+9%), 4.14 us (+7%), 4.19 us (+8%), 4.02 us, 4.07 us (+5%), 3.90 us, 3.89 us, 3.87 us, 3.89 us; samples (50): 3.81 us, 3.81 us, 3.85 us, 3.88 us, 3.84 us, 4.09 us (+6%), 4.30 us (+11%), 4.41 us (+14%), 4.12 us (+6%), 4.18 us (+8%), 4.06 us (+5%), 4.75 us (+23%), 5.03 us (+30%), 3.83 us, 4.94 us (+28%), 3.82 us, 3.88 us, 3.84 us, 3.83 us, 3.85 us, 3.82 us, 3.83 us, 3.81 us, 3.86 us, 3.88 us, 4.20 us (+8%), 3.87 us, 3.81 us, 3.85 us, 3.84 us, 3.82 us, 3.83 us, 3.81 us, 3.88 us, 3.85 us, 3.84 us, 3.89 us, 4.04 us, 3.90 us, 3.80 us, 3.82 us, 3.80 us, 3.77 us, 3.77 us, 3.79 us, 4.14 us (+7%), 3.93 us, 3.80 us, 3.86 us, 3.79 us
Run 7: warmup (20): 3.67 us (-5%), 3.79 us, 3.75 us, 3.76 us, 3.76 us, 3.86 us, 3.77 us, 3.79 us, 3.84 us, 3.78 us, 3.75 us, 3.80 us, 3.76 us, 3.77 us, 3.74 us, 3.74 us, 4.38 us (+13%), 5.60 us (+45%), 3.69 us, 3.71 us; samples (50): 3.74 us, 3.72 us, 3.68 us, 3.72 us, 5.38 us (+39%), 5.94 us (+54%), 5.90 us (+52%), 3.72 us, 3.76 us, 3.75 us, 4.12 us (+7%), 5.96 us (+54%), 5.15 us (+33%), 3.70 us, 3.88 us, 3.77 us, 3.74 us, 3.77 us, 3.86 us, 3.74 us, 3.72 us, 3.73 us, 3.72 us, 3.76 us, 4.02 us, 4.36 us (+13%), 4.09 us (+6%), 3.87 us, 3.78 us, 3.75 us, 3.74 us, 3.74 us, 3.70 us, 3.74 us, 3.73 us, 3.87 us, 3.74 us, 3.75 us, 3.73 us, 3.73 us, 3.74 us, 3.75 us, 3.76 us, 3.73 us, 3.73 us, 3.74 us, 3.78 us, 3.77 us, 3.74 us, 3.75 us
Run 8: warmup (20): 3.69 us, 3.74 us, 3.73 us, 3.75 us, 3.75 us, 3.71 us, 3.74 us, 3.76 us, 3.70 us, 3.69 us, 3.70 us, 3.74 us, 3.74 us, 3.70 us, 3.72 us, 3.72 us, 3.78 us, 3.75 us, 3.74 us, 3.74 us; samples (50): 3.72 us, 3.77 us, 3.70 us, 3.75 us, 3.72 us, 3.74 us, 3.72 us, 3.77 us, 3.74 us, 3.78 us, 3.77 us, 3.77 us, 3.73 us, 3.77 us, 3.73 us, 3.73 us, 3.74 us, 3.72 us, 3.72 us, 3.74 us, 3.74 us, 3.75 us, 3.76 us, 3.75 us, 3.73 us, 3.74 us, 3.74 us, 3.72 us, 3.73 us, 3.73 us, 3.70 us, 3.69 us, 3.77 us, 3.72 us, 3.72 us, 3.68 us, 3.71 us, 3.71 us, 3.68 us, 3.73 us, 3.70 us, 3.71 us, 3.71 us, 3.74 us, 3.73 us, 3.72 us, 3.74 us, 3.71 us, 3.74 us, 3.70 us
Run 9: warmup (20): 3.92 us, 3.90 us, 3.94 us, 4.01 us, 3.93 us, 3.89 us, 3.96 us, 3.90 us, 3.88 us, 3.90 us, 3.96 us, 4.18 us (+8%), 3.88 us, 3.94 us, 3.88 us, 3.88 us, 4.12 us (+6%), 3.86 us, 3.87 us, 4.00 us; samples (50): 3.89 us, 3.90 us, 3.92 us, 4.00 us, 4.69 us (+21%), 3.90 us, 3.85 us, 3.86 us, 3.92 us, 3.90 us, 3.93 us, 3.91 us, 3.92 us, 3.93 us, 3.93 us, 4.18 us (+8%), 3.87 us, 3.92 us, 4.01 us, 3.98 us, 3.91 us, 3.99 us, 3.97 us, 4.31 us (+11%), 4.00 us, 3.98 us, 5.13 us (+33%), 6.13 us (+58%), 6.07 us (+57%), 5.33 us (+38%), 5.94 us (+54%), 5.90 us (+52%), 5.11 us (+32%), 5.02 us (+30%), 5.09 us (+32%), 4.93 us (+27%), 4.89 us (+26%), 5.04 us (+30%), 5.02 us (+30%), 5.17 us (+34%), 4.98 us (+29%), 4.81 us (+24%), 4.99 us (+29%), 4.96 us (+28%), 5.54 us (+43%), 5.90 us (+53%), 5.78 us (+49%), 6.18 us (+60%), 5.09 us (+31%), 5.07 us (+31%)
Run 10: warmup (20): 6.41 us (+66%), 6.36 us (+64%), 6.70 us (+73%), 6.65 us (+72%), 5.99 us (+55%), 5.48 us (+42%), 6.16 us (+59%), 6.14 us (+59%), 4.08 us (+6%), 4.00 us, 4.01 us, 4.06 us, 4.13 us (+7%), 4.12 us (+7%), 4.03 us, 4.08 us (+5%), 4.05 us, 4.11 us (+6%), 4.04 us, 4.16 us (+7%); samples (50): 4.01 us, 3.98 us, 4.04 us, 3.99 us, 3.97 us, 3.94 us, 4.00 us, 5.32 us (+37%), 4.82 us (+25%), 3.96 us, 3.96 us, 4.02 us, 4.05 us, 4.11 us (+6%), 3.97 us, 4.06 us (+5%), 4.05 us, 4.01 us, 3.98 us, 4.08 us (+5%), 3.99 us, 4.02 us, 4.08 us (+5%), 4.07 us (+5%), 3.98 us, 4.04 us, 4.03 us, 5.59 us (+45%), 4.98 us (+29%), 3.99 us, 4.05 us, 4.05 us, 4.00 us, 3.98 us, 4.01 us, 3.99 us, 4.00 us, 4.02 us, 4.05 us, 3.99 us, 3.95 us, 4.33 us (+12%), 6.48 us (+68%), 4.07 us (+5%), 4.06 us, 4.04 us, 4.04 us, 3.99 us, 3.96 us, 4.01 us
Run 11: warmup (20): 3.78 us, 3.78 us, 3.75 us, 4.67 us (+21%), 5.66 us (+46%), 3.80 us, 3.80 us, 3.77 us, 3.78 us, 3.75 us, 3.80 us, 3.77 us, 3.75 us, 3.77 us, 3.76 us, 3.77 us, 3.78 us, 3.78 us, 3.78 us, 3.74 us; samples (50): 3.75 us, 3.76 us, 3.74 us, 3.76 us, 3.77 us, 3.78 us, 3.71 us, 3.76 us, 3.74 us, 3.80 us, 3.73 us, 3.77 us, 3.76 us, 3.77 us, 3.78 us, 3.82 us, 3.75 us, 3.78 us, 3.77 us, 3.74 us, 3.73 us, 3.79 us, 3.78 us, 3.73 us, 3.78 us, 3.77 us, 3.78 us, 3.75 us, 3.74 us, 3.80 us, 3.80 us, 5.09 us (+32%), 5.45 us (+41%), 3.74 us, 3.77 us, 3.75 us, 3.75 us, 3.78 us, 3.74 us, 3.73 us, 3.72 us, 3.76 us, 3.72 us, 3.75 us, 3.75 us, 3.72 us, 3.97 us, 6.03 us (+56%), 4.36 us (+13%), 3.77 us
Run 12: warmup (20): 3.73 us, 3.80 us, 3.80 us, 3.79 us, 3.79 us, 3.81 us, 3.80 us, 3.80 us, 3.77 us, 3.81 us, 3.77 us, 3.82 us, 3.84 us, 3.80 us, 3.80 us, 3.81 us, 3.83 us, 3.77 us, 3.76 us, 3.81 us; samples (50): 3.85 us, 4.06 us, 4.17 us (+8%), 3.84 us, 3.80 us, 3.78 us, 3.76 us, 3.83 us, 3.78 us, 3.80 us, 3.81 us, 3.80 us, 4.07 us (+5%), 3.83 us, 3.83 us, 3.81 us, 3.83 us, 4.80 us (+24%), 4.29 us (+11%), 3.80 us, 4.14 us (+7%), 3.78 us, 4.82 us (+25%), 4.24 us (+10%), 3.81 us, 3.76 us, 3.78 us, 4.61 us (+19%), 4.61 us (+19%), 3.81 us, 3.82 us, 3.82 us, 4.05 us, 3.93 us, 3.78 us, 3.73 us, 3.73 us, 3.74 us, 3.72 us, 3.79 us, 3.82 us, 3.73 us, 3.79 us, 3.80 us, 3.76 us, 3.74 us, 3.74 us, 3.78 us, 3.79 us, 3.75 us
Run 13: warmup (20): 3.70 us, 3.71 us, 3.78 us, 3.76 us, 3.74 us, 3.76 us, 3.73 us, 3.75 us, 3.72 us, 3.73 us, 3.73 us, 3.72 us, 3.83 us, 3.76 us, 3.71 us, 3.74 us, 3.74 us, 3.74 us, 3.73 us, 3.72 us; samples (50): 3.73 us, 3.72 us, 3.75 us, 3.72 us, 3.73 us, 3.77 us, 3.73 us, 3.76 us, 3.76 us, 3.73 us, 3.73 us, 3.77 us, 3.76 us, 3.81 us, 3.78 us, 3.76 us, 3.73 us, 3.77 us, 3.72 us, 3.74 us, 3.74 us, 3.78 us, 3.77 us, 3.76 us, 3.76 us, 3.76 us, 3.81 us, 3.78 us, 3.73 us, 3.77 us, 3.77 us, 4.23 us (+9%), 3.78 us, 3.78 us, 3.77 us, 3.76 us, 3.77 us, 3.73 us, 3.71 us, 3.74 us, 3.67 us (-5%), 3.70 us, 3.74 us, 3.72 us, 3.72 us, 3.73 us, 3.73 us, 3.76 us, 3.71 us, 3.73 us
Run 14: warmup (20): 3.76 us, 3.76 us, 3.74 us, 3.74 us, 3.71 us, 3.71 us, 3.73 us, 3.75 us, 3.76 us, 3.70 us, 3.71 us, 3.72 us, 3.68 us, 3.76 us, 3.66 us (-5%), 3.70 us, 3.67 us (-5%), 3.69 us, 3.74 us, 3.68 us; samples (50): 3.69 us, 3.77 us, 3.71 us, 3.70 us, 3.71 us, 3.71 us, 3.73 us, 3.71 us, 3.80 us, 3.73 us, 3.72 us, 3.76 us, 3.72 us, 3.76 us, 3.73 us, 3.73 us, 3.77 us, 3.76 us, 3.77 us, 3.73 us, 3.72 us, 3.81 us, 3.70 us, 3.74 us, 3.76 us, 3.74 us, 3.79 us, 3.74 us, 3.76 us, 3.71 us, 3.75 us, 3.75 us, 3.68 us, 3.72 us, 3.68 us, 3.70 us, 3.72 us, 3.71 us, 3.69 us, 3.69 us, 3.69 us, 3.76 us, 3.71 us, 3.70 us, 3.71 us, 3.70 us, 3.74 us, 3.70 us, 3.71 us, 3.72 us
Run 15: warmup (20): 3.73 us, 3.83 us, 3.78 us, 3.86 us, 3.83 us, 3.81 us, 3.80 us, 3.88 us, 3.81 us, 3.79 us, 3.76 us, 3.80 us, 3.73 us, 3.80 us, 3.74 us, 3.80 us, 3.77 us, 3.68 us, 3.78 us, 3.74 us; samples (50): 3.72 us, 3.74 us, 3.70 us, 3.70 us, 3.73 us, 3.69 us, 3.74 us, 3.72 us, 3.71 us, 3.78 us, 3.76 us, 3.79 us, 3.70 us, 3.74 us, 3.76 us, 3.71 us, 3.78 us, 3.75 us, 3.72 us, 3.80 us, 3.71 us, 3.74 us, 3.75 us, 3.76 us, 3.77 us, 3.71 us, 3.75 us, 3.75 us, 3.72 us, 3.74 us, 3.78 us, 3.83 us, 3.74 us, 3.72 us, 3.74 us, 3.75 us, 3.74 us, 3.68 us, 3.68 us, 3.73 us, 3.70 us, 3.72 us, 3.77 us, 3.81 us, 3.76 us, 3.68 us, 3.71 us, 3.72 us, 3.70 us, 3.70 us
Run 16: warmup (20): 4.29 us (+11%), 4.58 us (+19%), 4.49 us (+16%), 4.34 us (+12%), 4.39 us (+13%), 4.40 us (+14%), 4.36 us (+13%), 4.35 us (+12%), 4.31 us (+12%), 4.33 us (+12%), 4.32 us (+12%), 4.36 us (+13%), 4.37 us (+13%), 4.33 us (+12%), 4.31 us (+12%), 4.33 us (+12%), 4.54 us (+17%), 4.28 us (+11%), 4.33 us (+12%), 4.31 us (+11%); samples (50): 4.32 us (+12%), 4.34 us (+12%), 4.31 us (+11%), 5.14 us (+33%), 4.38 us (+13%), 4.31 us (+12%), 4.29 us (+11%), 4.28 us (+11%), 4.27 us (+10%), 4.27 us (+10%), 4.29 us (+11%), 4.31 us (+12%), 4.32 us (+12%), 4.32 us (+12%), 4.27 us (+10%), 4.29 us (+11%), 4.29 us (+11%), 4.33 us (+12%), 4.51 us (+17%), 6.48 us (+67%), 6.42 us (+66%), 6.27 us (+62%), 6.18 us (+60%), 6.46 us (+67%), 5.97 us (+54%), 5.67 us (+47%), 5.12 us (+32%), 4.58 us (+18%), 4.48 us (+16%), 4.67 us (+21%), 5.02 us (+30%), 5.00 us (+29%), 4.96 us (+28%), 5.17 us (+34%), 5.30 us (+37%), 4.95 us (+28%), 4.97 us (+28%), 4.90 us (+27%), 4.95 us (+28%), 5.23 us (+35%), 4.44 us (+15%), 5.21 us (+35%), 4.42 us (+14%), 4.48 us (+16%), 5.01 us (+30%), 5.52 us (+43%), 5.17 us (+34%), 5.24 us (+35%), 6.49 us (+68%), 6.70 us (+73%)
Run 17: warmup (20): 3.95 us, 4.40 us (+14%), 3.87 us, 3.86 us, 3.76 us, 3.75 us, 3.71 us, 3.69 us, 3.74 us, 3.72 us, 3.75 us, 3.69 us, 3.76 us, 3.72 us, 3.75 us, 3.71 us, 3.74 us, 3.75 us, 3.69 us, 3.71 us; samples (50): 3.72 us, 3.71 us, 3.68 us, 3.70 us, 3.67 us (-5%), 3.76 us, 3.77 us, 3.73 us, 3.74 us, 3.74 us, 3.73 us, 3.73 us, 3.78 us, 3.80 us, 3.79 us, 3.81 us, 3.79 us, 3.75 us, 3.79 us, 3.81 us, 3.86 us, 3.82 us, 3.78 us, 3.76 us, 3.76 us, 3.81 us, 3.72 us, 3.71 us, 3.69 us, 3.71 us, 3.71 us, 3.71 us, 3.68 us, 3.68 us, 3.69 us, 3.70 us, 3.75 us, 3.72 us, 3.70 us, 3.71 us, 3.69 us, 3.74 us, 3.73 us, 3.72 us, 3.70 us, 3.71 us, 3.71 us, 3.72 us, 3.68 us, 3.72 us
Run 18: warmup (20): 3.94 us, 3.96 us, 4.08 us (+5%), 4.07 us (+5%), 4.01 us, 4.06 us (+5%), 4.06 us, 4.01 us, 4.02 us, 3.99 us, 4.00 us, 4.04 us, 3.99 us, 4.03 us, 4.81 us (+24%), 3.98 us, 4.04 us, 3.99 us, 4.02 us, 4.00 us; samples (50): 3.99 us, 4.04 us, 3.99 us, 4.00 us, 4.00 us, 4.02 us, 4.12 us (+6%), 4.02 us, 4.03 us, 5.03 us (+30%), 3.98 us, 4.01 us, 4.00 us, 4.00 us, 4.05 us, 3.97 us, 4.03 us, 4.02 us, 3.97 us, 4.87 us (+26%), 3.97 us, 4.04 us, 3.97 us, 4.27 us (+11%), 4.06 us, 4.06 us, 4.08 us (+5%), 4.01 us, 4.02 us, 4.04 us, 4.00 us, 4.11 us (+6%), 4.08 us (+5%), 4.04 us, 4.07 us (+5%), 4.17 us (+8%), 4.18 us (+8%), 3.98 us, 4.28 us (+11%), 4.69 us (+21%), 3.95 us, 4.02 us, 3.98 us, 3.98 us, 3.97 us, 3.98 us, 4.01 us, 3.98 us, 3.96 us, 3.95 us
Run 19: warmup (20): 4.14 us (+7%), 4.59 us (+19%), 3.86 us, 3.85 us, 3.89 us, 3.84 us, 3.92 us, 3.82 us, 3.80 us, 3.92 us, 3.87 us, 3.86 us, 3.87 us, 3.95 us, 3.88 us, 3.83 us, 4.94 us (+28%), 3.85 us, 3.83 us, 3.92 us; samples (50): 3.89 us, 3.90 us, 3.89 us, 3.96 us, 3.85 us, 3.89 us, 3.83 us, 3.90 us, 3.86 us, 3.89 us, 3.84 us, 4.21 us (+9%), 3.82 us, 3.85 us, 3.86 us, 3.93 us, 3.86 us, 3.88 us, 3.82 us, 3.82 us, 3.80 us, 3.85 us, 4.81 us (+24%), 3.82 us, 4.04 us, 4.36 us (+13%), 4.82 us (+25%), 4.51 us (+17%), 3.87 us, 3.89 us, 3.97 us, 3.86 us, 3.89 us, 4.79 us (+24%), 4.59 us (+19%), 3.90 us, 3.90 us, 3.85 us, 3.83 us, 3.87 us, 3.89 us, 3.86 us, 3.92 us, 3.92 us, 3.82 us, 3.84 us, 3.81 us, 3.84 us, 3.96 us, 3.82 us
Run 20: warmup (20): 3.89 us, 3.88 us, 3.84 us, 3.81 us, 3.79 us, 3.82 us, 3.77 us, 3.77 us, 3.78 us, 3.80 us, 3.78 us, 3.77 us, 3.76 us, 3.79 us, 3.77 us, 3.74 us, 3.77 us, 3.75 us, 3.74 us, 3.78 us; samples (50): 3.75 us, 3.77 us, 3.75 us, 3.77 us, 3.77 us, 3.76 us, 3.76 us, 3.81 us, 3.81 us, 3.83 us, 3.80 us, 3.82 us, 3.77 us, 3.76 us, 3.74 us, 3.80 us, 3.76 us, 3.80 us, 3.76 us, 3.75 us, 3.80 us, 3.77 us, 3.74 us, 3.78 us, 3.76 us, 3.77 us, 3.81 us, 3.74 us, 3.75 us, 3.77 us, 3.75 us, 3.79 us, 3.80 us, 3.74 us, 3.74 us, 3.79 us, 3.83 us, 3.79 us, 3.78 us, 3.79 us, 3.79 us, 3.77 us, 3.76 us, 3.76 us, 3.79 us, 3.83 us, 3.76 us, 3.74 us, 3.77 us, 3.78 us
Run 21: warmup (20): 4.01 us, 4.10 us (+6%), 4.02 us, 4.03 us, 4.07 us (+5%), 4.06 us, 4.04 us, 4.04 us, 4.05 us, 3.98 us, 3.97 us, 4.03 us, 4.00 us, 4.00 us, 4.02 us, 4.00 us, 4.00 us, 4.01 us, 4.01 us, 3.94 us; samples (50): 4.00 us, 4.00 us, 4.00 us, 4.05 us, 4.00 us, 3.99 us, 4.13 us (+7%), 4.01 us, 3.97 us, 3.99 us, 4.03 us, 4.01 us, 3.97 us, 4.03 us, 4.06 us (+5%), 4.06 us, 4.02 us, 4.05 us, 4.01 us, 4.03 us, 4.23 us (+9%), 4.45 us (+15%), 4.49 us (+16%), 4.16 us (+8%), 4.13 us (+7%), 4.07 us (+5%), 3.97 us, 3.96 us, 3.94 us, 4.24 us (+10%), 4.06 us, 4.00 us, 3.98 us, 4.09 us (+6%), 3.94 us, 4.05 us, 3.97 us, 3.97 us, 3.92 us, 3.93 us, 4.01 us, 3.97 us, 3.99 us, 3.97 us, 3.96 us, 4.17 us (+8%), 3.97 us, 4.01 us, 4.06 us, 3.99 us
Run 22: warmup (20): 4.07 us (+5%), 4.05 us, 4.09 us (+6%), 4.22 us (+9%), 4.02 us, 4.17 us (+8%), 4.18 us (+8%), 4.53 us (+17%), 5.20 us (+34%), 4.02 us, 4.04 us, 4.10 us (+6%), 4.05 us, 4.04 us, 4.02 us, 4.05 us, 4.09 us (+6%), 4.09 us (+6%), 4.02 us, 4.01 us; samples (50): 4.01 us, 4.10 us (+6%), 4.06 us, 3.97 us, 3.98 us, 4.08 us (+5%), 4.07 us (+5%), 4.05 us, 4.04 us, 4.06 us, 4.08 us (+5%), 4.08 us (+5%), 3.99 us, 4.05 us, 4.08 us (+5%), 4.07 us (+5%), 4.05 us, 4.03 us, 4.04 us, 3.99 us, 3.97 us, 4.00 us, 4.01 us, 4.03 us, 4.12 us (+7%), 4.07 us (+5%), 4.03 us, 4.01 us, 4.05 us, 4.12 us (+7%), 4.00 us, 5.51 us (+42%), 4.14 us (+7%), 4.10 us (+6%), 4.08 us (+5%), 4.01 us, 4.14 us (+7%), 4.00 us, 4.00 us, 4.06 us (+5%), 4.08 us (+5%), 4.01 us, 4.03 us, 4.10 us (+6%), 4.00 us, 4.06 us (+5%), 4.20 us (+9%), 4.05 us, 4.01 us, 4.05 us
Run 23: warmup (20): 3.94 us, 3.99 us, 3.98 us, 4.00 us, 3.99 us, 4.01 us, 3.97 us, 4.05 us, 3.99 us, 3.99 us, 3.99 us, 3.99 us, 3.99 us, 4.01 us, 4.01 us, 4.03 us, 4.00 us, 4.00 us, 3.96 us, 3.93 us; samples (50): 3.93 us, 3.94 us, 3.97 us, 3.96 us, 3.95 us, 3.95 us, 3.95 us, 3.95 us, 6.29 us (+63%), 6.04 us (+56%), 4.51 us (+17%), 6.12 us (+58%), 6.09 us (+57%), 6.34 us (+64%), 6.77 us (+75%), 5.96 us (+54%), 6.38 us (+65%), 7.50 us (+94%), 8.22 us (+112%), 6.06 us (+57%), 6.12 us (+58%), 6.97 us (+80%), 6.13 us (+58%), 5.72 us (+48%), 6.41 us (+66%), 6.50 us (+68%), 6.40 us (+65%), 5.80 us (+50%), 7.34 us (+90%), 6.54 us (+69%), 6.44 us (+67%), 8.51 us (+120%), 6.14 us (+59%), 4.52 us (+17%), 4.33 us (+12%), 4.97 us (+29%), 4.59 us (+19%), 4.21 us (+9%), 4.27 us (+10%), 4.14 us (+7%), 4.23 us (+9%), 4.19 us (+8%), 4.02 us, 4.73 us (+22%), 4.00 us, 4.00 us, 4.03 us, 4.02 us, 4.00 us, 4.01 us
Run 24: warmup (20): 3.73 us, 3.80 us, 3.79 us, 3.77 us, 3.76 us, 3.80 us, 3.87 us, 3.78 us, 3.72 us, 3.75 us, 3.76 us, 3.76 us, 3.74 us, 3.76 us, 3.74 us, 3.78 us, 3.76 us, 3.77 us, 3.75 us, 3.83 us; samples (50): 3.74 us, 3.75 us, 3.76 us, 3.76 us, 3.78 us, 4.66 us (+20%), 4.31 us (+11%), 3.78 us, 4.41 us (+14%), 5.06 us (+31%), 3.91 us, 4.40 us (+14%), 3.89 us, 4.49 us (+16%), 3.99 us, 3.84 us, 3.75 us, 4.44 us (+15%), 4.40 us (+14%), 4.58 us (+18%), 4.41 us (+14%), 4.42 us (+14%), 6.83 us (+76%), 4.38 us (+13%), 3.87 us, 3.91 us, 3.88 us, 4.59 us (+19%), 4.30 us (+11%), 4.58 us (+18%), 4.06 us (+5%), 3.85 us, 3.81 us, 3.79 us, 3.84 us, 3.84 us, 3.83 us, 3.80 us, 3.76 us, 3.78 us, 3.72 us, 3.75 us, 3.73 us, 4.67 us (+21%), 3.73 us, 3.74 us, 3.74 us, 3.76 us, 3.79 us, 3.75 us
Run 25: warmup (20): 3.73 us, 3.75 us, 3.74 us, 3.79 us, 3.73 us, 3.73 us, 3.75 us, 3.76 us, 3.74 us, 3.74 us, 3.74 us, 3.76 us, 3.74 us, 3.76 us, 3.73 us, 3.78 us, 3.71 us, 3.73 us, 3.72 us, 3.74 us; samples (50): 3.77 us, 3.72 us, 3.72 us, 3.73 us, 3.74 us, 3.75 us, 3.74 us, 3.77 us, 3.75 us, 3.79 us, 3.76 us, 3.77 us, 3.73 us, 3.73 us, 3.78 us, 3.79 us, 3.78 us, 3.78 us, 3.76 us, 3.74 us, 3.77 us, 3.76 us, 3.73 us, 3.75 us, 3.76 us, 3.74 us, 3.77 us, 3.79 us, 3.76 us, 3.75 us, 3.78 us, 3.76 us, 3.78 us, 3.77 us, 3.75 us, 3.79 us, 3.79 us, 3.77 us, 3.74 us, 3.72 us, 3.73 us, 3.78 us, 3.71 us, 3.74 us, 3.74 us, 3.72 us, 3.70 us, 3.75 us, 3.72 us, 3.76 us
Run 26: warmup (20): 4.23 us (+9%), 4.33 us (+12%), 4.35 us (+12%), 4.30 us (+11%), 4.30 us (+11%), 4.31 us (+11%), 4.29 us (+11%), 4.30 us (+11%), 4.27 us (+10%), 4.33 us (+12%), 4.28 us (+11%), 4.27 us (+11%), 4.28 us (+11%), 4.30 us (+11%), 4.30 us (+11%), 4.34 us (+12%), 4.27 us (+11%), 4.31 us (+11%), 4.25 us (+10%), 4.30 us (+11%); samples (50): 4.31 us (+11%), 4.30 us (+11%), 4.31 us (+11%), 4.29 us (+11%), 4.28 us (+11%), 4.28 us (+11%), 4.26 us (+10%), 4.27 us (+10%), 4.34 us (+12%), 4.28 us (+11%), 4.32 us (+12%), 4.26 us (+10%), 4.26 us (+10%), 4.24 us (+10%), 4.26 us (+10%), 4.34 us (+12%), 4.29 us (+11%), 4.28 us (+11%), 4.28 us (+11%), 4.27 us (+11%), 4.32 us (+12%), 4.33 us (+12%), 4.27 us (+10%), 4.30 us (+11%), 4.22 us (+9%), 4.28 us (+11%), 4.31 us (+11%), 4.30 us (+11%), 4.30 us (+11%), 5.48 us (+42%), 6.22 us (+61%), 4.33 us (+12%), 4.37 us (+13%), 4.29 us (+11%), 4.29 us (+11%), 4.28 us (+11%), 4.28 us (+11%), 4.25 us (+10%), 4.23 us (+9%), 4.23 us (+9%), 4.26 us (+10%), 4.27 us (+10%), 4.25 us (+10%), 4.21 us (+9%), 4.83 us (+25%), 6.66 us (+72%), 6.63 us (+71%), 6.76 us (+75%), 6.68 us (+73%), 4.26 us (+10%)
Run 27: warmup (20): 3.75 us, 3.83 us, 3.78 us, 3.73 us, 3.79 us, 3.75 us, 3.78 us, 3.76 us, 3.77 us, 3.72 us, 3.76 us, 3.77 us, 3.75 us, 3.76 us, 4.08 us (+5%), 4.60 us (+19%), 4.25 us (+10%), 3.77 us, 3.89 us, 3.78 us; samples (50): 3.79 us, 3.78 us, 3.78 us, 3.78 us, 3.80 us, 3.76 us, 3.91 us, 3.90 us, 3.96 us, 3.80 us, 3.81 us, 3.82 us, 3.80 us, 3.81 us, 3.83 us, 3.87 us, 5.96 us (+54%), 5.97 us (+54%), 4.94 us (+28%), 3.78 us, 3.77 us, 3.78 us, 3.78 us, 3.76 us, 4.80 us (+24%), 5.61 us (+45%), 3.76 us, 3.74 us, 3.77 us, 4.04 us, 5.98 us (+55%), 5.52 us (+43%), 3.73 us, 3.73 us, 3.75 us, 3.78 us, 3.80 us, 3.76 us, 3.74 us, 3.76 us, 3.75 us, 3.72 us, 3.73 us, 3.77 us, 3.75 us, 3.81 us, 3.77 us, 3.73 us, 3.79 us, 3.74 us
Run 28: warmup (20): 3.75 us, 3.86 us, 3.81 us, 3.79 us, 3.74 us, 3.75 us, 3.76 us, 3.78 us, 3.74 us, 3.77 us, 3.74 us, 3.73 us, 3.73 us, 3.76 us, 3.71 us, 3.76 us, 3.75 us, 3.74 us, 3.91 us, 3.79 us; samples (50): 3.73 us, 3.74 us, 3.78 us, 3.72 us, 5.63 us (+46%), 5.95 us (+54%), 5.32 us (+38%), 3.76 us, 3.77 us, 3.77 us, 3.75 us, 3.80 us, 3.77 us, 3.78 us, 3.75 us, 3.78 us, 3.75 us, 3.75 us, 3.73 us, 3.77 us, 3.72 us, 3.72 us, 3.77 us, 3.74 us, 3.74 us, 3.74 us, 3.85 us, 3.76 us, 3.77 us, 3.74 us, 3.73 us, 3.78 us, 3.76 us, 3.71 us, 3.73 us, 3.74 us, 3.74 us, 3.74 us, 3.75 us, 3.75 us, 3.76 us, 3.77 us, 3.77 us, 3.75 us, 3.77 us, 3.72 us, 3.74 us, 3.75 us, 3.81 us, 3.75 us
Run 29: warmup (20): 3.84 us, 3.90 us, 3.93 us, 3.96 us, 3.96 us, 3.91 us, 3.90 us, 3.87 us, 3.85 us, 3.88 us, 3.93 us, 3.89 us, 3.93 us, 3.91 us, 3.88 us, 3.90 us, 3.87 us, 3.87 us, 3.86 us, 3.92 us; samples (50): 3.90 us, 3.94 us, 4.89 us (+27%), 4.41 us (+14%), 3.90 us, 3.95 us, 3.85 us, 3.88 us, 3.91 us, 3.92 us, 3.90 us, 3.97 us, 4.18 us (+8%), 4.76 us (+23%), 3.93 us, 3.92 us, 3.92 us, 3.93 us, 3.85 us, 3.94 us, 3.91 us, 3.90 us, 3.94 us, 3.95 us, 3.99 us, 3.90 us, 3.90 us, 3.90 us, 3.84 us, 4.74 us (+23%), 4.12 us (+7%), 4.01 us, 3.88 us, 3.85 us, 3.87 us, 3.94 us, 3.88 us, 3.90 us, 3.88 us, 3.87 us, 3.87 us, 3.88 us, 3.86 us, 4.84 us (+25%), 3.92 us, 4.04 us, 3.94 us, 3.96 us, 3.90 us, 3.87 us
Run 30: warmup (20): 3.87 us, 3.85 us, 3.78 us, 3.74 us, 3.77 us, 3.78 us, 3.82 us, 3.85 us, 4.82 us (+25%), 4.43 us (+14%), 4.00 us, 3.90 us, 3.89 us, 3.86 us, 3.85 us, 3.88 us, 3.85 us, 3.85 us, 3.96 us, 3.87 us; samples (50): 3.89 us, 3.84 us, 3.86 us, 3.85 us, 4.14 us (+7%), 3.87 us, 3.77 us, 3.87 us, 3.87 us, 3.86 us, 3.85 us, 3.86 us, 3.88 us, 3.87 us, 3.83 us, 3.88 us, 3.90 us, 3.87 us, 3.85 us, 3.88 us, 4.01 us, 4.42 us (+14%), 6.62 us (+71%), 4.36 us (+13%), 3.92 us, 3.87 us, 3.89 us, 4.98 us (+29%), 4.65 us (+20%), 4.65 us (+20%), 4.43 us (+15%), 4.42 us (+14%), 4.76 us (+23%), 4.67 us (+21%), 3.89 us, 3.73 us, 3.69 us, 3.75 us, 4.62 us (+19%), 4.82 us (+25%), 3.83 us, 3.86 us, 3.77 us, 4.56 us (+18%), 3.76 us, 3.87 us, 3.84 us, 3.83 us, 4.00 us, 3.98 us
Run 31: warmup (20): 4.29 us (+11%), 4.05 us, 4.04 us, 4.67 us (+21%), 3.95 us, 3.95 us, 3.87 us, 3.88 us, 3.85 us, 3.83 us, 3.89 us, 4.09 us (+6%), 3.87 us, 3.86 us, 3.91 us, 3.86 us, 3.88 us, 3.86 us, 3.89 us, 3.84 us; samples (50): 3.87 us, 3.92 us, 3.84 us, 3.87 us, 3.84 us, 3.86 us, 3.84 us, 3.86 us, 3.81 us, 3.81 us, 5.09 us (+32%), 3.94 us, 3.83 us, 3.85 us, 3.89 us, 3.83 us, 3.90 us, 3.85 us, 3.89 us, 3.86 us, 3.85 us, 3.82 us, 3.86 us, 3.83 us, 3.82 us, 3.79 us, 3.79 us, 3.80 us, 3.89 us, 3.86 us, 3.85 us, 3.91 us, 3.84 us, 3.89 us, 3.80 us, 3.93 us, 4.03 us, 3.93 us, 3.92 us, 3.90 us, 3.90 us, 3.81 us, 3.83 us, 3.87 us, 3.81 us, 3.85 us, 3.93 us, 3.87 us, 3.82 us, 4.30 us (+11%)
Run 32: warmup (20): 3.90 us, 3.92 us, 3.94 us, 3.88 us, 3.88 us, 3.89 us, 3.82 us, 3.86 us, 3.89 us, 3.87 us, 3.85 us, 3.89 us, 3.86 us, 3.84 us, 3.82 us, 3.87 us, 3.86 us, 3.89 us, 3.87 us, 3.88 us; samples (50): 3.88 us, 3.88 us, 3.84 us, 3.89 us, 3.82 us, 3.89 us, 3.80 us, 3.92 us, 3.87 us, 3.88 us, 3.88 us, 3.88 us, 3.86 us, 3.90 us, 3.91 us, 3.88 us, 3.94 us, 3.95 us, 3.95 us, 3.92 us, 3.90 us, 3.87 us, 3.94 us, 3.88 us, 3.92 us, 3.87 us, 3.90 us, 3.95 us, 3.88 us, 3.87 us, 3.90 us, 3.89 us, 3.90 us, 3.84 us, 3.88 us, 3.89 us, 3.88 us, 3.87 us, 3.92 us, 3.88 us, 3.86 us, 3.83 us, 3.88 us, 3.85 us, 3.88 us, 3.88 us, 3.88 us, 3.85 us, 3.93 us, 3.85 us
Run 33: warmup (20): 4.10 us (+6%), 3.86 us, 3.90 us, 4.01 us, 4.02 us, 3.93 us, 5.40 us (+39%), 5.31 us (+37%), 4.17 us (+8%), 3.92 us, 3.88 us, 3.86 us, 3.90 us, 3.84 us, 3.87 us, 3.92 us, 3.88 us, 3.86 us, 3.92 us, 3.89 us; samples (50): 3.89 us, 4.87 us (+26%), 3.85 us, 3.90 us, 3.88 us, 3.88 us, 4.05 us, 4.26 us (+10%), 3.89 us, 3.88 us, 4.12 us (+6%), 4.51 us (+17%), 4.09 us (+6%), 4.77 us (+23%), 3.90 us, 3.88 us, 3.96 us, 3.98 us, 3.87 us, 3.90 us, 3.85 us, 3.97 us, 3.88 us, 3.84 us, 3.99 us, 3.85 us, 3.84 us, 4.96 us (+28%), 4.87 us (+26%), 3.91 us, 3.91 us, 4.16 us (+7%), 5.23 us (+35%), 3.86 us, 3.85 us, 4.39 us (+14%), 8.08 us (+109%), 5.39 us (+39%), 3.92 us, 4.30 us (+11%), 3.80 us, 3.89 us, 4.70 us (+21%), 4.49 us (+16%), 3.94 us, 3.81 us, 3.90 us, 4.17 us (+8%), 4.25 us (+10%), 3.82 us
Run 34: warmup (20): 3.92 us, 4.20 us (+9%), 4.29 us (+11%), 3.99 us, 4.03 us, 4.74 us (+23%), 3.92 us, 3.96 us, 3.94 us, 3.93 us, 3.97 us, 3.99 us, 3.92 us, 3.90 us, 3.88 us, 3.97 us, 3.92 us, 3.89 us, 3.89 us, 3.82 us; samples (50): 4.44 us (+15%), 4.44 us (+15%), 3.85 us, 3.83 us, 3.88 us, 3.90 us, 3.86 us, 3.87 us, 4.04 us, 4.63 us (+20%), 4.08 us (+6%), 3.89 us, 4.21 us (+9%), 4.33 us (+12%), 4.09 us (+6%), 4.32 us (+12%), 4.34 us (+12%), 4.05 us, 3.91 us, 4.13 us (+7%), 4.33 us (+12%), 4.07 us (+5%), 3.92 us, 3.91 us, 3.96 us, 3.94 us, 3.95 us, 3.98 us, 3.97 us, 3.97 us, 3.93 us, 3.91 us, 3.91 us, 3.90 us, 3.88 us, 3.96 us, 3.92 us, 3.87 us, 3.84 us, 3.88 us, 3.86 us, 3.92 us, 3.89 us, 3.90 us, 3.85 us, 3.84 us, 3.85 us, 3.93 us, 3.94 us, 3.90 us
Run 35: warmup (20): 3.78 us, 3.88 us, 3.89 us, 3.91 us, 3.91 us, 3.93 us, 3.91 us, 3.89 us, 3.87 us, 3.90 us, 3.90 us, 3.94 us, 3.89 us, 3.87 us, 3.87 us, 3.90 us, 3.93 us, 3.86 us, 3.88 us, 4.01 us; samples (50): 3.88 us, 3.81 us, 3.86 us, 3.87 us, 3.86 us, 3.85 us, 3.87 us, 3.86 us, 3.82 us, 3.81 us, 3.85 us, 3.84 us, 3.85 us, 3.84 us, 3.84 us, 3.88 us, 3.86 us, 3.89 us, 3.82 us, 3.84 us, 3.90 us, 3.82 us, 3.86 us, 3.84 us, 3.86 us, 3.85 us, 3.89 us, 3.85 us, 3.88 us, 3.85 us, 3.87 us, 3.87 us, 3.87 us, 3.83 us, 3.92 us, 3.89 us, 3.93 us, 3.84 us, 3.87 us, 3.90 us, 3.84 us, 3.83 us, 3.86 us, 3.91 us, 3.91 us, 3.86 us, 3.90 us, 3.86 us, 3.86 us, 3.81 us
Run 36: warmup (20): 3.89 us, 3.91 us, 3.96 us, 3.92 us, 3.99 us, 3.97 us, 3.93 us, 4.16 us (+8%), 4.41 us (+14%), 4.77 us (+23%), 3.91 us, 3.89 us, 3.87 us, 3.99 us, 3.92 us, 3.99 us, 3.95 us, 3.89 us, 3.90 us, 3.86 us; samples (50): 3.85 us, 3.90 us, 3.91 us, 3.89 us, 3.88 us, 3.91 us, 3.94 us, 3.93 us, 3.94 us, 3.90 us, 3.86 us, 3.93 us, 3.87 us, 3.90 us, 3.85 us, 3.93 us, 3.99 us, 4.00 us, 3.93 us, 3.95 us, 3.89 us, 3.86 us, 3.84 us, 3.87 us, 3.86 us, 3.89 us, 3.91 us, 3.87 us, 3.87 us, 3.89 us, 3.90 us, 3.92 us, 3.87 us, 3.89 us, 3.87 us, 3.92 us, 3.89 us, 3.87 us, 3.84 us, 3.86 us, 3.87 us, 4.33 us (+12%), 4.24 us (+10%), 4.34 us (+12%), 4.01 us, 3.85 us, 3.85 us, 4.16 us (+8%), 4.62 us (+20%), 4.54 us (+17%)
Run 37: warmup (20): 3.70 us, 3.88 us, 3.87 us, 3.90 us, 3.89 us, 3.87 us, 3.90 us, 4.10 us (+6%), 4.29 us (+11%), 3.88 us, 3.97 us, 3.87 us, 4.00 us, 4.04 us, 3.98 us, 3.95 us, 3.89 us, 3.90 us, 3.96 us, 3.91 us; samples (50): 3.90 us, 3.91 us, 3.85 us, 3.87 us, 3.87 us, 3.89 us, 3.97 us, 3.84 us, 3.98 us, 3.90 us, 3.91 us, 3.88 us, 3.84 us, 3.91 us, 3.98 us, 3.88 us, 3.91 us, 3.91 us, 3.93 us, 3.92 us, 3.91 us, 3.95 us, 3.93 us, 3.89 us, 3.88 us, 3.89 us, 3.90 us, 3.90 us, 3.90 us, 4.01 us, 3.88 us, 3.88 us, 3.80 us, 3.84 us, 3.83 us, 3.79 us, 3.80 us, 3.77 us, 3.77 us, 3.86 us, 3.76 us, 3.74 us, 3.76 us, 3.78 us, 3.75 us, 3.77 us, 3.75 us, 3.75 us, 3.74 us, 3.73 us
Run 38: warmup (20): 3.90 us, 3.98 us, 3.92 us, 4.00 us, 3.94 us, 4.30 us (+11%), 3.96 us, 4.00 us, 3.95 us, 4.11 us (+6%), 4.76 us (+23%), 4.50 us (+16%), 4.75 us (+23%), 4.53 us (+17%), 4.60 us (+19%), 4.75 us (+23%), 4.79 us (+24%), 4.57 us (+18%), 4.52 us (+17%), 4.45 us (+15%); samples (50): 4.47 us (+16%), 4.46 us (+15%), 4.88 us (+26%), 4.49 us (+16%), 4.54 us (+17%), 4.02 us, 3.96 us, 3.89 us, 4.07 us (+5%), 4.09 us (+6%), 4.06 us, 5.36 us (+38%), 3.91 us, 4.09 us (+6%), 4.45 us (+15%), 4.02 us, 3.90 us, 3.96 us, 3.90 us, 3.93 us, 4.37 us (+13%), 4.20 us (+8%), 4.24 us (+10%), 5.13 us (+33%), 5.43 us (+41%), 4.18 us (+8%), 4.01 us, 4.16 us (+7%), 3.96 us, 3.97 us, 3.91 us, 4.01 us, 4.00 us, 4.09 us (+6%), 4.01 us, 3.93 us, 3.97 us, 3.89 us, 3.91 us, 3.87 us, 3.91 us, 5.40 us (+40%), 6.18 us (+60%), 5.44 us (+41%), 3.94 us, 3.92 us, 3.84 us, 3.87 us, 3.86 us, 3.97 us
Run 39: warmup (20): 3.79 us, 3.80 us, 3.81 us, 3.78 us, 3.79 us, 4.32 us (+12%), 3.72 us, 3.72 us, 3.70 us, 3.72 us, 3.71 us, 3.74 us, 3.73 us, 3.75 us, 3.74 us, 3.76 us, 3.75 us, 3.80 us, 3.71 us, 3.75 us; samples (50): 3.73 us, 3.72 us, 3.72 us, 3.71 us, 3.75 us, 3.75 us, 3.74 us, 3.75 us, 3.78 us, 3.82 us, 3.78 us, 3.75 us, 3.78 us, 3.75 us, 3.82 us, 3.79 us, 3.78 us, 3.75 us, 3.74 us, 3.74 us, 3.72 us, 3.72 us, 3.76 us, 3.72 us, 3.73 us, 3.77 us, 3.74 us, 3.74 us, 3.77 us, 3.75 us, 3.78 us, 3.75 us, 3.72 us, 3.72 us, 3.75 us, 3.76 us, 3.72 us, 3.72 us, 3.76 us, 3.78 us, 3.74 us, 3.78 us, 3.73 us, 3.72 us, 3.78 us, 3.75 us, 3.84 us, 4.90 us (+27%), 4.40 us (+14%), 3.85 us
Run 40: warmup (20): 3.82 us, 3.99 us, 3.71 us, 3.72 us, 3.73 us, 3.75 us, 3.78 us, 3.71 us, 3.66 us (-5%), 3.72 us, 3.69 us, 3.72 us, 3.69 us, 3.71 us, 3.66 us (-5%), 3.69 us, 3.68 us, 3.68 us, 3.71 us, 3.74 us; samples (50): 3.70 us, 3.73 us, 3.71 us, 3.75 us, 3.73 us, 3.67 us (-5%), 4.49 us (+16%), 3.82 us, 3.82 us, 3.81 us, 3.76 us, 3.79 us, 3.78 us, 3.80 us, 3.83 us, 3.82 us, 3.77 us, 3.99 us, 3.77 us, 3.79 us, 3.74 us, 3.84 us, 3.78 us, 3.78 us, 3.75 us, 3.88 us, 4.18 us (+8%), 3.86 us, 3.74 us, 3.76 us, 3.80 us, 3.79 us, 3.80 us, 3.74 us, 3.75 us, 3.70 us, 3.73 us, 3.77 us, 4.63 us (+20%), 4.16 us (+8%), 4.01 us, 3.82 us, 3.75 us, 3.78 us, 4.26 us (+10%), 4.33 us (+12%), 3.81 us, 3.82 us, 3.83 us, 3.76 us
3.42 us: 10 #
3.66 us: 1165 #################################################################
3.90 us: 440 #########################
4.15 us: 140 ########
4.39 us: 66 ####
4.64 us: 34 ##
4.88 us: 37 ##
5.12 us: 20 #
5.37 us: 17 #
5.61 us: 6 |
5.86 us: 18 #
6.10 us: 14 #
6.34 us: 11 #
6.59 us: 13 #
6.83 us: 2 |
7.08 us: 0 |
7.32 us: 2 |
7.56 us: 1 |
7.81 us: 0 |
8.05 us: 2 |
8.29 us: 2 |
WARNING: the benchmark seems unstable, the standard deviation is high (stdev/median: 15%)
Try to rerun the benchmark with more runs, samples and/or loops
Median +- std dev: 3.87 us +- 0.57 us
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I didn't mean a single top-level set-item was really an issue. rather IIRC the low-level routine that actaully sets a single value is being called in-cython multiple times.
c51bc15
to
aeca61a
Compare
Current coverage is 85.25% (diff: 100%)@@ master #14359 diff @@
==========================================
Files 140 140
Lines 50655 50655
Methods 0 0
Messages 0 0
Branches 0 0
==========================================
Hits 43185 43185
Misses 7470 7470
Partials 0 0
|
@@ -0,0 +1,84 @@ | |||
.. _whatsnew_0191: |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
pls remove this is already done
""" | ||
Evaluate possibly callable input using obj and kwargs if it is callable, | ||
otherwise return as it is | ||
""" | ||
if callable(maybe_callable): | ||
if __callable(maybe_callable): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
? this is obfuscuating
@@ -711,67 +711,69 @@ def _get_values(self, indexer): | |||
except Exception: | |||
return self._values[indexer] | |||
|
|||
def __setitem__(self, key, value): | |||
key = com._apply_if_callable(key, self) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
why do you need to do it this way? this makes things even more complicated
Sorry about the misunderstanding around setitem vs the inner function. I will undo the micro optimizations in python and create a safe/unsafe version of the cython function. The places where we are doing things in a loop can do a check once and delegate to the unsafe version where the spot calls can use the checked version. |
aeca61a
to
efa5052
Compare
efa5052
to
9925327
Compare
rebased to fix conflict in whatsnew |
@@ -997,7 +1001,9 @@ cpdef ndarray[object] astype_str(ndarray arr): | |||
ndarray[object] result = np.empty(n, dtype=object) | |||
|
|||
for i in range(n): |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this should simply be checked once for the array (and don't call the unsafe function)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We don't need an explicit check because we created this array with np.empty so it is mutable. The unsafe
version of the function is the one that doesn't do the writeable check so this does what you describe unless I am missing something.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
right, I read them backwards.....ok
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
so perf basically the same then for non-readonly arrays?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
On this line, it is always readonly. The only places where we call this in a loop are with known writeable arrays created by empty. In those cases we are going through the exact same code path as before, the function was just renamed to set_value_at_unsafe
. In the other case, we were only doing scalar assignments so there was no looping. Those pay a very slight penalty to check the flags but in almost all cases it will return true. Also the main cost of that is dereferencing the array object but we do that in the expected case anyways.
@@ -986,7 +988,9 @@ cpdef ndarray[object] astype_unicode(ndarray arr): | |||
ndarray[object] result = np.empty(n, dtype=object) | |||
|
|||
for i in range(n): | |||
util.set_value_at(result, i, unicode(arr[i])) | |||
# we can use the unsafe version because we know `result` is mutable | |||
# since it was created from `np.empty` |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
same here (and anywhere there is a range)
thanks! maybe make an issue on pandas2 repo about this (IIRC you made a comment already), so that this is not forgotton. |
Thank you! I think this is not an issue in pandas2 because series is backed with a pandas.Array instead of an ndarray. |
… series Author: Joe Jevnik <[email protected]> Closes pandas-dev#14359 from llllllllll/series-setitem and squashes the following commits: 9925327 [Joe Jevnik] BUG: fix a bug in Series.__setitem__ that allowed the mutatation of read-only arrays (cherry picked from commit 5cf6d94)
git diff upstream/master | flake8 --diff
reproduction case:
In the case I was running into I was passing a
numpy.memmap
which is a subclass ofndarray
but was over a read only memory segment so attempting the setitem was causing a segfault. The new behavior matches the numpy behavior: