handsontable / handsontable/hyperformula

Document how to optimize formulas

Open
#899 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Docs Impact: Low Performance
Dominant language
TypeScript
Stars
2.8k
Forks
171
Avg merge
1d 22h
Merged PRs (30d)
7

Description

Discussed in https://github.com/handsontable/hyperformula/discussions/871

Originally posted by rackuka December 8, 2021
I have excel workbook which I parse and provide to HyperFormula as dictionary (Record<string, string[][]>) of array of arrays. It takes 30-35 seconds for the buildFromSheets to complete loading. Profiling shows that the most of the time is consumed by buildGraph.

This time is not acceptable at all for my case where hyperformula is supposed to serve as calculation engine in server environment with the workbook be the calculation model. Latency for processing calculation request should exceed 1 second (including network latencies). So appears that loading the workbook every time is not an option (35 seconds to load).

I would appreciate for the advise as to how to improve overall time of buildFromSheets (if possible at all).

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with discussion #871 and the reported profiling of buildFromSheets and buildGraph. Determine what optimization guidance is supported by the discussion, then document the relevant steps and expected loading behavior; the work is done when users can follow the documentation to improve or assess workbook-loading performance.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
documentation
Issue type
Documentation
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
28/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.