render()

in src/PerfHistoryDisplay.js [107:226]


  render() {
    function gen_summary(delta) {
      delta = Math.round(delta * 10000) / 100;
      if (delta >= 0) {
        delta = "+" + delta;
      }
      delta += "%";
      return delta;
    }

    function is_optimized(delta) {
      return delta < -1 * THRESHOLD;
    }

    function is_regression(delta) {
      return delta > THRESHOLD;
    }

    function result_icon(result) {
      if (is_optimized(result))
        return (
          <span role="img" style={{ color: "green" }} aria-label="passed">
            0
          </span>
        );
      if (is_regression(result))
        return (
          <span role="img" style={{ color: "red" }} aria-label="failed">
            X
          </span>
        );
      return (
        <span role="img" style={{ color: "grey" }} aria-label="passed">
          -
        </span>
      );
    }

    let builds = this.state.builds;
    const visible_jobs = this.state.known_jobs.filter((name) =>
      this.shouldShowJob(name)
    );
    const visible_jobs_head = visible_jobs.map((jobName) => (
      <th className="rotate" key={jobName} width="20px;">
        <div>{jobName}</div>
      </th>
    ));
    const benchmark_index = this.state.benchmark_index;

    const rows = builds.map((build) => {
      const sb_map = build.sb_map;
      const pytorch_version =
        build.sb_map.get("machine_info")["pytorch_version"];
      const status_cols = visible_jobs.map((jobName) => {
        const sb = sb_map.get("benchmarks")[benchmark_index.get(jobName)];
        const colkey = pytorch_version + "-" + jobName;
        let cell = <Fragment />;
        const prev_delta =
          (sb["stats"]["mean"] - sb["stats"]["prev_mean"]) /
          sb["stats"]["prev_mean"];
        if (sb !== undefined) {
          cell = result_icon(prev_delta);
        }
        return (
          <Tooltip
            key={jobName}
            overlay={
              jobName +
              " Mean: " +
              round_float(sb["stats"]["mean"]) +
              ", prev mean: " +
              round_float(sb["stats"]["prev_mean"]) +
              ", delta: " +
              gen_summary(prev_delta)
            }
            mouseLeaveDelay={0}
            placement="rightTop"
            destroyTooltipOnHide={true}
          >
            <td
              key={colkey}
              className="icon-cell"
              style={{
                textAlign: "right",
                fontFamily: "sans-serif",
                padding: 0,
              }}
            >
              {" "}
              {cell}{" "}
            </td>
          </Tooltip>
        );
      });

      return (
        <tr key={pytorch_version}>
          <th className="left-cell"> torch-{pytorch_version} </th>
          {status_cols}
        </tr>
      );
    });
    return (
      <div>
        <h2>TorchBench v0 nightly testing result</h2>
        <div>
          <ul className="menu"></ul>
        </div>
        <table className="perfHistoryTable">
          <thead>
            <tr>
              <th className="left-cell">Build</th>
              {visible_jobs_head}
            </tr>
          </thead>
          <tbody>{rows}</tbody>
        </table>
      </div>
    );
  }