Skip to content

MMVshiny 1.2.2

Latest

Choose a tag to compare

@venelin venelin released this 10 Sep 14:02
1b6dac7

Performance

  • GetType() no longer re-derives the same lookup dozens of times per compound during file
    upload: InitState() computes each parameter's type once and threads it into NAVal() (now
    takes an optional type = to skip its own internal GetType() call).
  • GetType()/GetSource() now use an indexed on = "ID" lookup instead of a full-table scan of
    spec.
  • GetGuiLabel()/GetReportLabel() batch-join all requested ids in one call instead of scanning
    spec once per id — this turned out to matter more than the GetType() fix above, since
    SetSCRawData() calls GetGuiLabel() once per row of the raw Science Cloud upload file, not
    once per spec parameter.
  • CalculateSCInputs() batch-looks-up SCFILTER/SCVALUE/TYPE for all ids once instead of
    scanning state$spec per id inside its loop.

Measured against real uploads through the running MMVFree/MMVSola apps (chromote-driven browser
against a real Shiny reactive session, not a synthetic benchmark): total upload time 4.74s → 3.05s
for MMVFree (28-param spec, 1.55x), 16.1s → 11.8s for MMVSola (166-param spec, 1.37x).

No API changes other than the new optional NAVal(..., type =) argument (additive, backwards
compatible).

Closes #8.