Applicable to:Futurama Batch and Futurama WebService
When you are using Futurama Website (Futurama 18.04+), Futurama Webservice or Futurama Export (either by using Futurama Server or by using Futurama Console) you can speed up the calculations by using compiled code. When you use the “Compile” option Futurama will generate your Futurama model to C# code and execute that code for the calculation process. Depending on the calculations this can make a big difference in speed.
Be aware that when you use the Compile setting Futurama generates code for maximum efficiency. That means that the standard check for invalid recursions is bypassed. If the combination of your application model and your input data has an invalid recursion, this might lead to an application crash. If that occurs we advise you to change the setting to Off. Then you will be able to analyse the problem and fix it. After that you can reset the calculationmode to compile.
Within the configuration element (of the config of either Futurama Website (Futurama 18.04+), Futurama Webservice or Futurama Batch of Futurama Editor) the next code has to be included:
<section type="ActuIT.Futurama.Config.CalculationSection, ActuIT.Futurama.Engine, Culture=neutral, PublicKeyToken=null" name="calculation"></section>
Next to this code, also within the configuration element the next code has to be included:
<calculation compilationMode="Off" numProcessors="4" generatePerformanceAnalyticsFile="true" performanceAnalyticsFileName="c:\temp\analysis.xlsx"></calculation>
The futuramaSettings element is the general part for more configuration settings. Within this element the calculation element is set.
Within the calculation element some other elements and their attributes can be set. Below the explanation of these elements and attributes.
This property can be “Compile” or “Off“
numProcessors (Futurama 18.02+)
Indicate how many parallel processors must be created for the Loadbalancing feature explained here. This allows some optimization in the form of load balancing on a single system with multiple processors. This might increase the memory- and processor usage of the server.
This property can be "true" or "false". If you enable this property you must specify 'performanceAnalyticsFileName'. This property enables a performance analytics mode. This will output an Excel sheet with an indication of the time required per calculation. Currently this property is only supported in WebService mode. Be carefull when using this property, use it only to analyse the performance of a webservice. The performance of the webservice will be much slower when using this property, but it gives you insight into the potential bottlenecks in the calculation.
If a WarmUp is being used it should be commentend out like this:
- If the application has formulas with an AllowedRange, the formula for the AllowedRange cant direclty reference to a UserVarariable. For example: AllowedRange = Range(1,UserVariable,1) would cause a "Parameter Miscount" Error. This can be solved by not directly using a Reference to the UserVariable. So for example a formula: EndPointRange = 0 + Uservariable ---> AllowedRange = Range(1,EndPointRange,1).
The filename of the Excelsheet that is generated with the performance analysis.