RESOLVED FIXED 146156
JetStream should include a JavaScript version of the CDx real-time benchmark
https://bugs.webkit.org/show_bug.cgi?id=146156
Summary JetStream should include a JavaScript version of the CDx real-time benchmark
Filip Pizlo
Reported 2015-06-19 13:16:28 PDT
JetStream tries to emphasize latency. Our current latency testing story involves code load tests, short-running tests that offer only small opportunities for warm-up, and tests that measure performance above the 95th percentile. In academia, there is a test that was used a lot for Real Time Java. It's called CDx. It's a simple aircraft collision detection simulation. It was used in my dissertation and some of my academic papers, and I was one of the co-authors of this original test. Here's the benchmark URL: https://www.cs.purdue.edu/sss/projects/cdx/ Here are some of the publications based on this benchmark: https://www.cs.purdue.edu/sss/projects/cdx/publications/ CDx is meant to be easy to implement in different languages. It has a C implementation, for example. We should port it to JavaScript, add it to JetStream as a 95th percentile worst-case test, and retire whatever SunSpider test is least useful (probably cordic, since it's so tiny).
Attachments
the patch (84.49 KB, patch)
2015-06-19 13:32 PDT, Filip Pizlo
ggaren: review+
patch for landing (84.61 KB, patch)
2015-06-19 16:27 PDT, Filip Pizlo
no flags
Filip Pizlo
Comment 1 2015-06-19 13:32:18 PDT
Created attachment 255221 [details] the patch
WebKit Commit Bot
Comment 2 2015-06-19 13:35:10 PDT
Attachment 255221 [details] did not pass style-queue: ERROR: PerformanceTests/JetStream/cdjs/motion.js:61: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:62: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:63: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:64: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:65: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:66: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:67: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:68: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:69: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:70: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:71: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:72: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:73: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:74: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:75: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:76: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:77: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:78: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:79: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:80: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:81: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/motion.js:82: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/reduce_collision_set.js:103: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/reduce_collision_set.js:105: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/reduce_collision_set.js:106: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/reduce_collision_set.js:108: Line contains tab character. [whitespace/tab] [5] ERROR: PerformanceTests/JetStream/cdjs/reduce_collision_set.js:109: Line contains tab character. [whitespace/tab] [5] Total errors found: 27 in 23 files If any of these errors are false positives, please file a bug against check-webkit-style.
Geoffrey Garen
Comment 3 2015-06-19 13:41:45 PDT
Comment on attachment 255221 [details] the patch View in context: https://bugs.webkit.org/attachment.cgi?id=255221&action=review r=me > PerformanceTests/JetStream/cdjs/motion.js:94 > + var b = 2 * init1.minus(init2).dot(vec1.minus(vec2)); > + > + // c = -r^2 + (I2 - I1)^T * (I2 - I1) > + var c = -radius * radius + init2.minus(init1).squaredMagnitude(); > + > + var discr = b * b - 4 * a * c; > + if (discr < 0) > + return null; > + > + var v1 = (-b - Math.sqrt(discr)) / (2 * a); > + var v2 = (-b + Math.sqrt(discr)) / (2 * a); This indentation looks off.
Filip Pizlo
Comment 4 2015-06-19 16:27:26 PDT
Created attachment 255244 [details] patch for landing I think I got rid of all of those tabs that were messing up indentation.
Filip Pizlo
Comment 5 2015-06-19 16:51:41 PDT
Note You need to log in before you can comment on or make changes to this bug.