Following are a set of situations that should be considered when designing Business Logic solutions. The situations described are cases in which the performance of the calculation Engine may be negatively impacted:
If a value of a parameter is required in the code, the creation of a global variable to assign the parameter value to it is recommended. In addition, whenever the value of the parameter is required, use the global variable instead. This prevents a situation where the Engine creates the parameters map for each parameter call.
Large global map objects in the Business Logic for Clustered Metrics should be used only with careful consideration. While the Engine is calculating a Clustered Metric it is busy loading the global variables from the previous states for each item in the cluster separately.
Filtering the Raw Data Events solely by the registration methods is recommended. Adding internal filtering using an "if" statement within the code, will result in additional processing time. More importantly, additional overhead is required by the Engine for retrieval and processing of raw data records that are not required.
Improves performance. Using this registration method means that you are registering to all resources in the system and not only to resources which have events of that specific type. Thus every change in resource impacts the Metric calculations. Another disadvantage of using this registration method comes at Metric run time when it accesses the raw data. It then needs to filter out from the raw data only the events with the specific event type and ignore the other events.
When you are using Dispatcher.Register, always verify that you specify the 3rd parameter. Registering without the 3rd parameter is exactly like doing registrations by event type (Dispatcher.RegisterByEventType). In other words, make sure that you use at least one other parameter beside the first two.
It is important to turn on only the agents that are required for calculation and drill down purposes. Calculation of all of the agent's time units is very processor intensive.
|
Copyright © 2013 CA.
All rights reserved.
|
|