Uploaded image for project: 'JikesRVM'
  1. JikesRVM
  2. RVM-160

Performance investigation: trivial loop structures result in major performance differences

    Details

    • Type: Bug
    • Status: Open
    • Priority: Medium
    • Resolution: Unresolved
    • Affects Version/s: None
    • Fix Version/s: 3.2
    • Component/s: Compiler: Optimizing
    • Labels:
      None

      Description

      Daniel has been looking into performance problems in MMTk. Here's a snippet of code from scanObject. Tracing rate is 430 on the first version, 465 on the second one. We need to look into how the opt compiler is generating code for these two versions of the loop and figure out why they aren't identical.

      while (values.isNonEmpty()) {
      ObjectReference v = values.pop();
      scanObject(v);
      };

      vs.

      if (values.isEmpty()) return;

      do {
      ObjectReference v = values.pop();
      scanObject(v);
      } while (values.isNonEmpty());

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              dgrove David Grove
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated: