This article aims to help users understand and troubleshoot resource-related issues when using Amalgam in Excel. It provides guidelines to identify and mitigate these issues, ensuring smoother operation of the application.
Defining Resource-Related Issues
When dealing with online applications, issues can fall into a few different categories. Software issues are when the Amalgam is mis-configured to handle a user request correctly. Connectivity issues are when Amalgam apps (web or spreadsheet based) can’t connect to online data. Data issues are when data in Amalgam’s system or other systems is corrupted or mis-configured to produce unexpected results. User errors are fairly self-explanatory. And finally, resource issues are when the system running Amalgam’s code may be producing unexpected results due to local hardware limitations.
Generally speaking, the first step of evaluating a user issue lies in determining which of these problems the issue represents. Resource-related issues are characterized by:
- No obvious user error occurring (not a user error)
- Connectivity between the User and other online applications is sound (not a connectivity error)
- Error is not persistent/consistent (not a data error)
- Error cannot be reproduced by other users (not a software error)
- Can sometimes be mitigated by running the same process in different contexts (i.e. a blank workbook)
How Amalgam Uses Resources
Amalgam has two types of processes. Our administrative functions (logging in and out, finding out what integrations a user has, listing reports, etc.) are all very small, measured in fractions of a KB. Our data access functions can be considerably larger than that (I ran a GL report that was 214KB as a test). These are still small amounts of memory by modern computer standards, representing a fraction of a percent of available RAM.
When data functions get data, they effectively copy/paste this data into the spreadsheet. This is also a fairly low-resource operation. However, as you likely know, the spreadsheet will recalculate itself after every data update. This can end up being a highly intensive process. To combat this, Amalgam suspends formula calculation until after all data has been updated in the sheet, but it is possible that certain local configurations may override this suspension.
In short, we would not expect Amalgam to be a source of resource constraints on a user’s machine, but use of Amalgam may trigger certain resource-intensive processes (spreadsheet calculations), albeit ones that would be occurring regardless.
How Resource Constraints May Affect Amalgam
Because Amalgam runs inside a spreadsheet application, it gets allocated resources by that spreadsheet program. In the case of Excel, any memory or CPU that Amalgam uses is granted to it by Excel. In times of high demand on memory or CPU, it is likely that Excel drastically reduces the resource allowance for Amalgam, to the point where it begins to trigger errors in the application.
These issues are more likely to pop up in large complex documents, in cases where lots of documents are open simultaneously, and in cases where demands on machine resources are especially high from other applications (browser tabs, video sharing, etc.). It also has to be noted that these issues are most likely to occur on older machines, or machines possessing smaller hardware capabilities.
Practices to Mitigate These Issues
The following steps may prevent resource related issues from occurring:
- Periodically restart your PC to clear out persistent processes
- Reduce the number of browser tabs open as much as possible
- Reduce the number of simultaneously open excel documents as much as possible
- Where possible, reduce the size of excel files. Note – this does not necessarily mean lower complexity, often excel wastes resources on things that serve no user purpose, like formatting that has been copied all the way down to row 1,048,576
- Consider turning off automatic calculation in the sheet temporarily
- Run reports individually, rather than using the “update all reports” feature
How Amalgam can Assist
Because resource issues are highly context-dependent, Amalgam can’t necessarily resolve them by updating data or modifying code. However, incident reports are still helpful for us, and may lead to us creating software that can be more resilient to hardware limitations.
Because we won’t necessarily be able to reproduce the errors, understanding the issue will require a detailed issue report, which technical users may be able to produce on their own, but will likely require assistance from the Amalgam team due to the overwhelming amount of information present in developer consoles.