Add a third benchmark to TailBench
[WebKit-https.git] / PerformanceTests / ChangeLog
index 2cab909..7862c7b 100644 (file)
@@ -1,3 +1,258 @@
+2017-11-06  Robin Morisset  <rmorisset@apple.com>
+
+        Add a third benchmark to TailBench
+        https://bugs.webkit.org/show_bug.cgi?id=178815
+
+        Reviewed by Saam Barati.
+
+        Add a new benchmark to TailBench: a BF interpreter written in a weird kinda functional style
+
+        * TailBench9000/bf-interpreter.js: Added.
+        (lookForMatchingBracket):
+        (evalRec):
+        (infiniteTape):
+        (evalShort):
+
+2017-11-06  Robin Morisset  <rmorisset@apple.com>
+
+        PerformanceTests/TailBench9000/merge-sort.js does not actually sort any of the large arrays it allocates
+        https://bugs.webkit.org/show_bug.cgi?id=178817
+
+        Reviewed by Saam Barati.
+
+        * TailBench9000/merge-sort.js:
+        (TEST_mergeSort):
+
+2017-11-02  Jon Lee  <jonlee@apple.com>
+
+        Add license for MotionMark
+        https://bugs.webkit.org/show_bug.cgi?id=179222
+
+        Reviewed by Ryosuke Niwa.
+
+        * MotionMark/about.html:
+        * MotionMark/developer.html:
+        * MotionMark/index.html:
+        * MotionMark/resources/debug-runner/graph.js:
+        * MotionMark/resources/debug-runner/motionmark.css:
+        * MotionMark/resources/debug-runner/motionmark.js:
+        * MotionMark/resources/debug-runner/tests.js:
+        * MotionMark/resources/extensions.js:
+        * MotionMark/resources/statistics.js:
+        * MotionMark/resources/strings.js:
+        * MotionMark/tests/3d/resources/webgl.js:
+        * MotionMark/tests/3d/webgl.html:
+        * MotionMark/tests/bouncing-particles/bouncing-canvas-images.html:
+        * MotionMark/tests/bouncing-particles/bouncing-canvas-shapes.html:
+        * MotionMark/tests/bouncing-particles/bouncing-css-images.html:
+        * MotionMark/tests/bouncing-particles/bouncing-css-shapes.html:
+        * MotionMark/tests/bouncing-particles/bouncing-svg-images.html:
+        * MotionMark/tests/bouncing-particles/bouncing-svg-shapes.html:
+        * MotionMark/tests/bouncing-particles/bouncing-tagged-images.html:
+        * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-images.js:
+        * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-particles.js:
+        * MotionMark/tests/bouncing-particles/resources/bouncing-canvas-shapes.js:
+        * MotionMark/tests/bouncing-particles/resources/bouncing-css-images.js:
+        * MotionMark/tests/bouncing-particles/resources/bouncing-css-shapes.js:
+        * MotionMark/tests/bouncing-particles/resources/bouncing-particles.js:
+        * MotionMark/tests/bouncing-particles/resources/bouncing-svg-images.js:
+        * MotionMark/tests/bouncing-particles/resources/bouncing-svg-particles.js:
+        * MotionMark/tests/bouncing-particles/resources/bouncing-svg-shapes.js:
+        * MotionMark/tests/bouncing-particles/resources/bouncing-tagged-images.js:
+        * MotionMark/tests/dom/compositing-transforms.html:
+        * MotionMark/tests/dom/focus.html:
+        * MotionMark/tests/dom/leaves.html:
+        * MotionMark/tests/dom/particles.html:
+        * MotionMark/tests/dom/resources/compositing-transforms.js:
+        * MotionMark/tests/dom/resources/dom-particles.js:
+        * MotionMark/tests/dom/resources/focus.js:
+        * MotionMark/tests/dom/resources/leaves.js:
+        * MotionMark/tests/master/canvas-stage.html:
+        * MotionMark/tests/master/focus.html:
+        * MotionMark/tests/master/image-data.html:
+        * MotionMark/tests/master/leaves.html:
+        * MotionMark/tests/master/multiply.html:
+        * MotionMark/tests/master/resources/canvas-stage.js:
+        * MotionMark/tests/master/resources/canvas-tests.js:
+        * MotionMark/tests/master/resources/focus.js:
+        * MotionMark/tests/master/resources/image-data.js:
+        * MotionMark/tests/master/resources/leaves.js:
+        * MotionMark/tests/master/resources/multiply.js:
+        * MotionMark/tests/master/resources/particles.js:
+        * MotionMark/tests/master/resources/svg-particles.js:
+        * MotionMark/tests/master/resources/text.js:
+        * MotionMark/tests/master/svg-particles.html:
+        * MotionMark/tests/master/text.html:
+        * MotionMark/tests/resources/main.js:
+        * MotionMark/tests/resources/math.js:
+        * MotionMark/tests/resources/stage.css:
+        * MotionMark/tests/simple/resources/simple-canvas-paths.js:
+        * MotionMark/tests/simple/resources/simple-canvas.js:
+        * MotionMark/tests/simple/resources/tiled-canvas-image.js:
+        * MotionMark/tests/simple/simple-canvas-paths.html:
+        * MotionMark/tests/simple/tiled-canvas-image.html:
+        * MotionMark/tests/template/resources/template-canvas.js:
+        * MotionMark/tests/template/resources/template-css.js:
+        * MotionMark/tests/template/resources/template-svg.js:
+        * MotionMark/tests/template/template-canvas.html:
+        * MotionMark/tests/template/template-css.html:
+        * MotionMark/tests/template/template-svg.html:
+
+2017-11-01  Jon Lee  <jonlee@apple.com>
+
+        Add about page for MotionMark
+        https://bugs.webkit.org/show_bug.cgi?id=179152
+
+        Reviewed by Ryosuke Niwa.
+
+        * MotionMark/about.html: Added.
+        * MotionMark/index.html:
+        * MotionMark/resources/runner/motionmark.css:
+
+2017-10-30  Michael Saboff  <msaboff@apple.com>
+
+        Eliminate Basic compiler test from RexBench
+        https://bugs.webkit.org/show_bug.cgi?id=179025
+
+        Reviewed by Saam Barati.
+
+        * RexBench/Basic: Removed.
+        * RexBench/Basic/ast.js: Removed.
+        * RexBench/Basic/basic.js: Removed.
+        * RexBench/Basic/benchmark.js: Removed.
+        * RexBench/Basic/caseless_map.js: Removed.
+        * RexBench/Basic/lexer.js: Removed.
+        * RexBench/Basic/number.js: Removed.
+        * RexBench/Basic/parser.js: Removed.
+        * RexBench/Basic/random.js: Removed.
+        * RexBench/Basic/state.js: Removed.
+        * RexBench/Basic/stress-test.js: Removed.
+        * RexBench/Basic/util.js: Removed.
+        * RexBench/basic_benchmark.js: Removed.
+        * RexBench/about.html:
+        * RexBench/cli.js:
+        * RexBench/glue.js:
+        * RexBench/index.html:
+
+2017-10-25  Robin Morisset  <rmorisset@apple.com>
+
+        Support the TailBench9000 benchmark in run-jsc-benchmarks
+        https://bugs.webkit.org/show_bug.cgi?id=178451
+
+        Reviewed by Saam Barati.
+
+        The separation between the definition of the benchmarks (in merge-sort.js and n-body.js) and their loops (in *-run.js)
+        was causing trouble since the load of the js files only succeeded from the same directory. So I chose to merge them, following
+        the example of the other benchmarks.
+
+        * TailBench9000/merge-sort-run.js: Removed.
+        * TailBench9000/merge-sort.js:
+        * TailBench9000/n-body-run.js: Removed.
+        * TailBench9000/n-body.js:
+
+2017-10-19  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        -Wsign-compare triggered by MallocBench
+        https://bugs.webkit.org/show_bug.cgi?id=178544
+
+        Reviewed by Ryosuke Niwa.
+
+        * MallocBench/MallocBench/Interpreter.cpp:
+        (Interpreter::Interpreter):
+
+2017-10-07  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Unreviewed, build fix for MallocBench in Linux 32bit
+        https://bugs.webkit.org/show_bug.cgi?id=177856
+
+        * MallocBench/MallocBench/Interpreter.cpp:
+        (Interpreter::Interpreter):
+        (Interpreter::readOps):
+        Suppress warnings in some GCC versions.
+
+        * MallocBench/MallocBench/big.cpp:
+        (benchmark_big):
+        * MallocBench/MallocBench/medium.cpp:
+        (benchmark_medium):
+        Build fix for Linux 32bit.
+
+        * MallocBench/MallocBench/message.cpp:
+        (benchmark_message_many):
+        Use more efficient WorkQueue allocation.
+
+2017-10-05  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        Unreviewed, use std::vector instead of variable length array
+        https://bugs.webkit.org/show_bug.cgi?id=177856
+
+        This is OK because originally this code uses dispatch queue, which
+        should have allocation inside it too.
+
+        * MallocBench/MallocBench/message.cpp:
+        (benchmark_message_many):
+
+2017-10-05  Yusuke Suzuki  <utatane.tea@gmail.com>
+
+        [Linux] Port MallocBench
+        https://bugs.webkit.org/show_bug.cgi?id=177856
+
+        Reviewed by Filip Pizlo.
+
+        We would like to optimize locking in bmalloc in Linux by using futex APIs. So we should have
+        the way to ensure this actually improves / does not regress the performance.
+
+        This patch ports MallocBench to Linux to measure/ensure the effect of bmalloc patch in Linux.
+
+        While we replace the dispatch serial queue in message.cpp, we still use libdispatch in Benchmark.cpp
+        since we do not have priority mechanism in C++11 threading implementation.
+
+        We also extend run-malloc-benchmarks to accept cmake style layout of build product directory.
+        And we also support building MallocBench in CMake environment including CMake Mac ports.
+        Currently, we do not support Windows yet.
+
+        Based on the measurement, we can say the following observation. glibc's malloc performance is not
+        so bad. While bmalloc shows 3.8x (in geomean) performance improvement, bmalloc in Linux shows 2.0x
+        improvement. Since both numbers in bmalloc are similar, we can think that bmalloc's optimization is
+        actually working in Linux too. And even though glibc's malloc perofmrnace is not so bad, bmalloc
+        still offers performance improvement.
+
+        * CMakeLists.txt: Added.
+        * MallocBench/CMakeLists.txt: Added.
+        * MallocBench/MallocBench.xcodeproj/project.pbxproj:
+        * MallocBench/MallocBench/Benchmark.cpp:
+        (Benchmark::Benchmark):
+        (Benchmark::runOnce):
+        (Benchmark::currentMemoryBytes): Deleted.
+        * MallocBench/MallocBench/Benchmark.h:
+        (Benchmark::Memory::Memory): Deleted.
+        (Benchmark::Memory::operator-): Deleted.
+        * MallocBench/MallocBench/CMakeLists.txt: Added.
+        * MallocBench/MallocBench/CPUCount.cpp:
+        (cpuCount):
+        * MallocBench/MallocBench/Interpreter.cpp:
+        (Interpreter::doMallocOp):
+        * MallocBench/MallocBench/Memory.cpp: Added.
+        (currentMemoryBytes):
+        * MallocBench/MallocBench/Memory.h: Copied from PerformanceTests/MallocBench/MallocBench/CPUCount.cpp.
+        (Memory::Memory):
+        (Memory::operator-):
+        * MallocBench/MallocBench/balloon.cpp:
+        (benchmark_balloon):
+        * MallocBench/MallocBench/mbmalloc.cpp:
+        * MallocBench/MallocBench/message.cpp:
+        (WorkQueue::WorkQueue):
+        (WorkQueue::~WorkQueue):
+        (WorkQueue::dispatchAsync):
+        (WorkQueue::dispatchSync):
+        (benchmark_message_one):
+        (benchmark_message_many):
+        * MallocBench/MallocBench/nimlang.cpp:
+        (benchmark_nimlang):
+        * MallocBench/MallocBench/stress.cpp:
+        (SizeStream::next):
+        * MallocBench/MallocBench/stress_aligned.cpp:
+        * MallocBench/run-malloc-benchmarks:
+
 2017-09-26  Mathias Bynens  <mathias@qiwi.be>
 
         Speedometer: ensure all TodoMVC tests use the complete latest CSS