Upload
asher-lang
View
276
Download
2
Tags:
Embed Size (px)
Citation preview
Slide 3
© 2012 Invensys. All Rights Reserved. The names, logos, and taglines identifying the products and services of Invensys are proprietary marks of Invensys or its subsidiaries. All third party trademarks and service marks are the proprietary marks of their respective owners.
WW TSS-03ArchestrA Graphics: Design Guidelines for Top Performance
Mirko CanelOctober, 2012
Slide 5
Agenda
We will discuss design considerations to achieve the best performance from Wonderware ArchestrA Graphics. Key topics covered:
1. Improve the performance of graphics to reduce the total time to show updated values
2. CPU Utilization Considerations
3. Memory Utilization Considerations
4. Bottleneck Investigation
5. ArchestrA IDE Performance Considerations
Slide 6
Introduction
ArchestrA Graphics overview of the technology
1. .NET considerations on memory utilization: Garbage Collector (the typical saw tooth in the memory utilization)
2. Vector graphics overview of the concepts
3. GDI+ and CPU rendering
Slide 7
Introduction GDI, GDI+
GDI GDI+
Obj_rect
Obj_line
Obj_bmp
Obj_Transparency
Obj_ Antialiasing
Obj_ Translucency
Fn1(x)
Fn2(x)
Fn3(x)Obj_Gradients
Fn4(x)
Slide 8
ArchestrA Graphics Call-Up time base concepts
Retrieve Definition
Bind Data
Render
Continuous Updates
Close
Call-Up Time
Graphic Call-up Time
Static CPU Load
Memory Utilization
Retrieve Bind Render Continuous Close
Slide 9
Call Up Time: The contributors
Simplified overview on the main contributors to the time consumption when showing an ArchestrA Graphic
• Retrieve Definition: Size and complexity of the ArchestrA Graphics
• Binding Data: Number of custom properties and references
• Rendering Time: Total number of simple and complex graphic elements, runtime graphical effects
• Waiting Data: Engine scan cycle, I/O speed, communication strategy
• Expression Evaluation: Total number, complexity, code efficiency
• Delta Rendering: Number of data changes + Total number of simple and complex graphic elements, runtime graphical effects
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 10
Call-Up Time Advanced concepts: ActiveOnDemand DDE SuiteLink
Call-Up Time
Retrieve RenderBind Continuous Close
Subscription/Activation possible inter-Engines
latencies
Waiting Data…ArchestrAGraphic
IO / AppServer
Expressions Evaluation
IO Scan Cycle possible inter-Engines latencies
OPERATOR REQUEST t
Delta Expressions Evaluation
Delta Expressions Evaluation
1 Sec. 1 Sec. 1 Sec. 1 Sec.
Default values and placeholders shown
Cached data
GoodQuality / Initializing:2012 New Feature
Behavior introduced by the Engine, always consistent across the next examples.
L00115867: InitializingQualityOnSuspend=1
BEHAVIOR FOR IOSERVER AND DASERVERS THAT DOES NOT IMPLEMENT SUBSCRIPTION MESSAGES.
NEW VALUES
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 11
Call-Up Time Advanced concepts: ActiveOnDemand DDE SuiteLink
Call-Up Time
Retrieve RenderBind Close
Waiting Data…
ArchestrAGraphic
DDESL Client
OPERATOR REQUEST NEW VALUES t
1 Sec. 1 Sec. 1 Sec. 1 Sec.
Default values and placeholders shown
DAS 1 Sec. 1 Sec. 1 Sec. 1 Sec.1 Sec.
Control Layer
Expressions Evaluation
Continuous
Subscription/Activation possible inter-Engines latencies
IO Scan Cycle possible inter-Engines latencies
Delta Expressions Evaluation
Delta Expressions Evaluation
Expressions Evaluation
ACT
XInitialUpDate
BEHAVIOR FOR DASERVERS THAT DOES IMPLEMENT SUBSCRIPTION MESSAGES.
Slide 12
Call-Up Time Advanced concepts: ActiveOnDemand OPC Client
Call-Up Time
Retrieve RenderBind Close
Waiting Data…
ArchestrAGraphic
OPC Client
OPERATOR REQUESTt
1 Sec. 1 Sec. 1 Sec. 1 Sec.
Default values and placeholders shown
OPCServer 1 Sec. 1 Sec. 1 Sec. 1 Sec.1 Sec.
Control Layer
Continuous
Subscription/Activation possible inter-Engines latencies
Expressions Evaluation
IO Scan Cycle possible inter-Engines latencies
Delta Expressions Evaluation
Delta Expressions Evaluation
Expressions Evaluation
ACT
READ
X
NEW VALUES
InitialUpDate
Slide 13
Call-Up Time Advanced concepts: ActiveAll:OPC & SL
Call-Up Time
Retrieve RenderBind Continuous Close
ArchestrAGraphic
IO / AppServer
Delta Expressions Evaluation
IO Scan Cycle possible inter-Engines latencies
t
Delta Expressions Evaluation
Delta Expressions Evaluation
1 Sec.
Expressions Evaluation
Default values and placeholders shown
1 Sec. 1 Sec. 1 Sec.1 Sec.
OPERATOR REQUEST NEW VALUES ActiveOnDemand
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 14
Call Up Time: Retrieval InTouch
=
DeserializationDefinitionFiles
Disk I/O
View.exe
Glass
Bolts
Polygon6
Polygon5
Polygon4
Polygon3
Arrow
Arc1
.
.
.
.
.
.
Objects Initialization
ArchestrA Graphic Library
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 15
Call Up Time: Retrieval InTouch
=
Glass
Bolts
Polygon6
Polygon5
Polygon4
Polygon3
Arrow
Arc1
.
.
.
.
• Graphic element information
• Animations Initialization
• Scripting Interface Initialization
• Communication Interface Initialization
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 16
Call Up Time: Retrieval InTouchGlass
Bolts
Polygon6
Polygon5
Polygon4
Polygon3
Arrow
Arc1
.
.
.
.
• Graphic element information
• Animations Initialization
• Scripting Interface Initialization
• Communication Interface Initialization
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 17
Call Up Time: Retrieval InTouch
=
Glass
Bolts
Polygon6
Polygon5
Polygon4
Polygon3
Arrow
Arc1
.
.
.
.
• Graphic element information
• Animations Initialization
• Scripting Interface Initialization
• Communication Interface Initialization
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 18
Call Up Time: Retrieval InTouchGlass
Bolts
Objects Initialization
Polygon6
Polygon5
Polygon4
Polygon3
Arrow
Arc1
.
.
.
.
• Graphic element information
• Animations Initialization
• Scripting Interface Initialization
• Communication Interface Initialization
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 19
Call Up Time: Retrieval InTouch
A simple ArchestrA Graphic Element is not just a representation on the screen, it is part and able to interact dynamically with the entire ArchestrA framework:
• Graphic Definition
• Animations
• Scripting
• Communication
Line=
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 20
The Simplest mitigation method for addressing slow retrieval of ArchestrA graphic shown using the new API ShowGraphic or the ShowSymbol animation is to use the fastest disk IO available.
• SSD vs. traditional Drives
Call Up Time: Retrieval ArchestrA
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 21
Call Up Time: Retrieval InTouch
The Simplest mitigation method for addressing slow InTouch Windows call up times is to “uncheck” load windows from disk (pre 2012)
• This does not change the initial draw times but all subsequent draw times are faster.
• This method has had limitations that have been more commonly reached when using ArchestrA graphics
– Memory limitations are reached
– When limitations are reached in WindowViewer, new opened windows can result in lower performance.
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 22
Call Up Time: Retrieval 2012
Slide 23
In-Memory Window Caching
InTouch 2012 Enhancements
• The total amount of memory accessible to WindowViewer has been extended to the maximums by default.
– 2 Gb on 32 bit OS; 3 Gb on 64 bit OS
• The memory cache will remove oldest windows from the cache to make room for new windows being opened.
– First in/First out and time based aging
• Windows that are a high priority for fast access can be designated which will result in them being always considered recent.
• ArchestrA Graphics memory footprint has been reduced by 15%
Slide 24
Call Up Time: Data BindingData binding is affected first of all by the total number of references present in your ArchestrA graphics.
• Use a clever organization of the information: 1 integer custom property instead of 16 Boolean custom properties when designing a symbol that will be used across all the graphics of your application (icons, alarm states)
• Try to avoid redundant information by reusing Custom Properties for the embedded symbols. Clever use of Private/Public
• Use of Owning Object/SetCustomProperty/ShowGraphic
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 25
InTouch tags show the last known value immediately, while ArchestrA communications will identify initializing data. Once the graphic has been fully rendered, the data required by the window must be initialized and this can result in a slow operator experience.
Call Up Time: Data Binding ShowSymbol/ShowGraphic vs. InTouch
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 26
• How to improve the binding time?
– “Round robin” considerations
• GR or not GR ?
• MyContainer / myArea / myEngine Vs Static References
– For top performance uses Static References. (me.attribute is considered static reference)
– Intouch:MemoryTags
– Redirection using OwningObject (improved reference binding algorithm)
– SetCustomPropertyValue (script execution time reduced by 80%)
– SHOW GRAPHIC IMPROVEMENTS “INTRO”
Call Up Time: Data Binding
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 27
From the OPC DI manual:
The item syntax for array elements is <sg>.Attribute(<item>)[<index>]
DI objects are special Objects with Dynamic arrays and properties.
The Attribute() keyword is used to identify which references are IO properties of the DI objects from internal dynamic properties.
ALWAYS use the Attribute keyword in your references.
L00119964 : Doc Enhancement request
L00118912 : Investigation
Call Up Time: Hitting GR Node
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 28
Possible Scenarios:
• Turning off many PLCS will cause a lot of references to go bad and will hit the GR node causing poor performance to the GR node.
• DI Objects undeploy
• Massive use of relative references
The importance of monitor binding counts:
Logger: wwpackageserver ReferenceBinding
ObjectViewer: GRNodePlatform.GR.BindCnt
Call Up Time: Hitting GR Node
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 29
Call Up Time: Hitting GR Node
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Example of anOPC DI objectUndeploy and Deploy
Slide 30
• How to improve the binding time?
– Redirection using OwningObject property (improved reference binding algorithm)
– Redirection using SetCustomPropertyValue function (script execution time reduced by 80%)
– Redirection using Show Graphic
Call Up Time: Data Binding
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 31
The new “ShowGraphic” function extends the flexibility of the product and improves the concept of OwningObject and Dynamic References: everything is now embedded parameter of the main function and natively resolved.
Call Up Time: Data Binding
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 32
Dim graphicInfo as aaGraphic.GraphicInfo;
Dim cpValues [2] as aaGraphic.CustomPropertyValuePair;
cpValues[1] = new aaGraphic.CustomPropertyValuePair("CP1", 20, true);
cpValues[2] = new aaGraphic.CustomPropertyValuePair("CP2", "Pump.PV.TagName", false);
graphicInfo.Identity = "i1";
graphicInfo.GraphicName = "S1";
graphicInfo.OwningObject = "UserDefined_001";
graphicInfo.WindowTitle = "ShowGraphic";
graphicInfo.Resizable = false;
graphicInfo.CustomProperties=cpValues;
ShowGraphic( graphicInfo );
Call Up Time: ShowGraphic
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 33
Call Up Time: RenderingThe rendering time is impacted by the high number of primitive invokes: each single line, circle, textbox we are drawing has a cost.
• Extremely high definition of small details can impact the rendering performance
• Reusing multiple times an extremely hi detailed small icon symbol can reduce the rendering performance of the entire application
• Gradients, transparencies, graphical effects that need runtime calculation can impact rendering performance (CPU vs. GPU: GDI+ vs. GDI)
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 34
Call Up Time: Rendering
The Urban Legend
Is it more efficient to include 1000 ArchestrA Graphics in one InTouch window, or to have 1 ArchestrA Graphic containing 1000 embedded ArchestrA graphics?
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
• 1 ArchestrA Graphic with 1000 graphics: as mentioned before, each invoke has a cost. 1000 InTouch calls to the ArchestrA graphic library vs.. only 1.
• 2 You are ready for the future! ArchestrA Graphics are ready to evolve taking advantage of the next evolutions of the .NET framework.
Slide 35
Call Up Time: Rendering Gradients
The definition of gradients are the colors and the type of gradients.
• All of the individual colors are calculated at runtime when initially rendered and any time an animation changes the gradient.
– When large numbers of graphic elements (1000’s) using gradients are used the impact can be severe.
• This information consumes more memory than a solid fill.
• Be careful of a larger number of small graphic elements using gradients. The effect may be minimal visually but severe in terms of performance.
• Transparencies have a similar performance impact.
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 36
Call Up Time: Rendering Gradients
Same Embedded Symbol (just resized)
• Same Detail
• Same Calculations
• Same Cost
• Different Visual Value
• A simple PNG image, is this case
perform much better.
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 37
Symbol Embedding Pitfall Example
Status Symbol is created.
This will be used on every piece of equipment.
There may be hundreds on the window.
It is made of many large detailed elements.
Slide 38
Static CPU Utilization
Once a window has been rendered on the screen there are factors that can result in a greater CPU utilization.
When this occurs there can be other impacts:
• System becomes unresponsive
• Fewer Terminal Server Sessions can be run on the server as other sessions become unresponsive.
• There are many contributing factors
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 39
Bitmaps
ArchestrA Graphics support multiple formats (BMP, GIF, JPG, TIF, PNG, ICO, EMF). Bitmaps are the most expensive but also most common.
Format Typical Compression Ratios
Description
GIF 4:1 - 10:1 Lossless for images <=256 colors. Works best for flat color, sharp-edged art. Horizontally oriented bands of color compress better than vertically oriented bands.
JPEG (High) 10:1 - 20:1 High quality - has little or no loss in image quality with continuous tone originals. Worse results for flat color and sharp-edge art.
JPEG (Medium)
30:1 - 50:1 Moderate quality - usually the best choice for the Web.
JPEG (Low) 60:1 - 100:1 Poor quality - suitable for thumbnails and previews. Visible blockiness (pixelation).
PNG 10-30% smaller than GIFs PNG's behave similarly to GIFs only better; they work best with flat-color, sharp-edged art. PNGs compress both horizontally and vertically, so solid blocks of color generally compress best.
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 40
Bitmap Common Pitfalls
• Embed a large picture and resize to
a small one
• Both take the same size on disk
• Retake image at smaller size and
save as compressed format
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
10 Mbytes picture
Slide 41
Custom Property Density
Custom Properties have been greatly optimized in InTouch 2012 which has resulted in better performance.
Some customers have ended up with 20,000 plus custom properties on a symbol.
Typically an impact of embedding many symbols at many levels.
Should consider necessity of the variables and consider if they should reside server side.
• Is it needed for graphic presentation?
• Is the value specific to only this workstation?
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 42
Multi-Variable Expressions
Each variable must be subscribed, bound and published individually.
• Can the calculation be done server side?
• Is the value specific to this specific workstation?
Expressions are ad-hoc scripts and require execution.
• The AppEngine is better suited to executing volumes of scripts and should be used to handle load where possible.
Slide 43
Expressions: code efficiencyAvoid high number of Expressions with string operations like:
• Concatenations “+”
• String find
• String replace
If you cannot avoid, use the .NET system.string class functions.
ArchestrA strings functions are designed for automation and are general purpose, the built in functions are not Top Performance functions.
System.String.Concat
System.String.Contains
System.String.IndexOf
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 44
Script Utilization
ArchestrA Graphics are extremely flexible in their ability to execute scripts (On Show, While Showing, On Close, Data Change, Condition). Carefully plan the usage of scripts that will cyclically execute.
• If you are setting a script to run every 50ms, why?
• Is every execution needed? Is the same result calculated over and over?
• How many scripts are in the symbol?
• How many instances of the symbol will be used?
• Can the script be server side?
– When large numbers of graphic elements (1000’s) using gradients are used the impact can be severe.
• This information consumes more memory than a solid fill.
• Be careful of a larger number of small graphic elements using gradients. The effect may be minimal visually but severe in terms of performance.
• Transparencies have a similar performance impact.
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 45
Symbol Embedding
The implications of embedding symbols are often not considered.
• When embedding several layers of symbols, remember that the final symbol will have every custom property, script, and graphic element from all of the individual symbols.
• Layering/stacking and then resizing symbols is very easy to do but comes at a cost.
• Are there details on the symbols that are not visible at the size it is embedded?
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 46
Symbol Embedding
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint
Symbol 1
Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint
Symbol 3
Graphic Element
Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint
Symbol 2
Nameicsizechange,anchorpoint
Symbol3
Graphic Element
Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint
Symbol 2
Nameicsizechange,anchorpoint
Symbol3
Graphic Element
Slide 47
Symbol Embedding
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint
Symbol 1
Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint
Symbol 3
Graphic Element
Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint
Symbol 2
Nameicsizechange,anchorpoint
Symbol3
Graphic Element
Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint
Symbol 2
Nameicsizechange,anchorpoint
Symbol3
Graphic Element
Definition of the Symbol cost 430 bytes
Slide 48
Symbol Embedding
430 BYTES !!!Common reaction
in the 3rd millennium.
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 49
Symbol Embedding example
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
430 bytes.
Name,X,Y,Width,Height,angle,absoluteorigin,transparency,locked,dynamicsizechange,anchorpoint
Final Valve Symbol
Graphic Elements
########
Intermediate Symbols
14 Intermediate Symbols, for the base valve symbol.
Slide 50
Symbol Embedding Impact on a huge Applications
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
430 bytes * 15 Embeds levels
* 200 graphics *337 windows/popups
=434’730’000 bytes
Alias 434 MegaBytes
Alias 0.434 GigaBytes
Slide 51
Element Grouping
When using the Grouping mechanism in graphics there is an optimization done for groups with no animation. The group is handled as an image.
The Tank on the left opens in half the time with half the static CPU load of the tank on the right. Top Performance Configuration:• 1 Base Group
Animations• 1 Base Group Static
elements.
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 52
Hardware Choices
What hardware choices can be made to give best results?
1. Fast CPU Clock – (WindowViewer only uses one processor/core, so a faster dual core is preferred over a slower quad core).
2. Available RAM – Have 3Gb available for each WindowViewer session
3. Fast Hard Drive – Solid State
4. FAST GPU
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 53
Do Graphics Have to be Simple to Perform?
Call up time is under 1 sec
and static CPU load is ~1%.
DO SIMPLE GRAPHICS
ALWAYS PERFORM ?
Slide 54
Development Performance Considerations
Performance impact on IDE using ArchestrA Graphics:
$Template1.Graphic1
CustomProperty1/ Reference1
CustomPropertyN/ ReferenceN
..
.
Slide 55
Performance impact on IDE using ArchestrA Graphics:
Development Performance Considerations
$Template1.Graphic1
Instance1.Graphic1
CustomPropertyN/ ReferenceN
..
.
CustomProperty1/ Reference1
Slide 56
Development Performance Considerations
Performance impact on IDE using ArchestrA Graphics:
$Template1.Graphic1
Instance1.Graphic1
Instance2.Graphic1
Instance3.Graphic1
Instance4.Graphic1
Instance5.Graphic1
Slide 57
Development Performance Considerations
Performance impact on IDE using ArchestrA Graphics:
$Template1.Graphic1
Instance1.Graphic1
Instance2.Graphic1
Instance3.Graphic1
Instance4.Graphic1
$Template1.Graphic2
Instance1.Graphic2 Instance2.Graphic2
THIS IS NOT A BUG !
IT IS JUST A SPIDER
Slide 58
Development Performance Considerations
• Do not define 100 graphics in the base valve template if you are planning to have 5000 instances of the specific valve, propagation of a small change will take hours.
• ArchestrA System Platform 2012 has a lot of improvements to address
IDE performance.
• Invensys development is still working to improve in future versions
IDE performance.
Slide 59
1. Development Performance vs.. Runtime Performance
1.Never use the Development experience to evaluate the performance of your ArchestrA Graphic application. Short overview and description on the ArchestrA Graphics SQL storage layer and architecture.
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Development Performance Considerations
Slide 60
Bottleneck investigation
How to understand where the time is wasted; Parameters to monitor
• Measure the performance of a generic InTouch window with ArchestrA Graphics
• Measure the performance of a specific ArchestrA Graphic
– Example using ShowGraphic and log flags
• Log Flags for InTouch vs.. ArchestrA Graphics
• External tools: Process explorer
Slide 61
Bottleneck investigation [Case Studies]Dim graphicInfo as aaGraphic.GraphicInfo;Dim cpValues [2] as aaGraphic.CustomPropertyValuePair;cpValues[1] = new aaGraphic.CustomPropertyValuePair("CP1", 20, true);cpValues[2] = new aaGraphic.CustomPropertyValuePair("CP2", "Pump.PV.TagName", false);graphicInfo.Identity = "i1";graphicInfo.GraphicName = "S1";graphicInfo.OwningObject = "UserDefined_001";graphicInfo.WindowTitle = "ShowGraphic";graphicInfo.Resizable = false;graphicInfo.CustomProperties=cpValues;LogMessage(“ShowGraphic Start:”);ShowGraphic( graphicInfo );LogMessage(“ShowGraphic Stop:”);
CloseRetrieve RenderBind Waiting Data… Expression Evaluation
Render
Slide 62
Bottleneck investigation [Case Studies]
Slide 63
Bottleneck investigation [Case Studies]
Simple AAPKG to exercise all or a limited subset of the galaxy ArchestrA Graphics and log the loading time.
$WindowScanner.zip
Slide 64
Bottleneck investigation [Case Studies]
SELECT visual_element_name FROM [dbo].[internal_visual_element_description_view]where [hierarchical_visual_element_name]
How to create the list of symbols to exercise:
Save the query result as a txt file with the same name of the instance
Slide 65
Bottleneck investigation [Case Studies]
Configuration:
CreateLog: log an entry for each graphic slower than ‘CreateLog’ ms.
ExecutionRate: delay in seconds to open and close the graphic
FileLocation: File Path for the Symbols list and log file.
Slide 66
Visualization Stability Enhancements in InTouch 2012
Problems
• Windows based on A2 Graphics
– Render slow compared to native InTouch
– Consume more memory than comparable native InTouch
• InTouch runs on CPU-0 regardless of the number of cores
InTouch 2012 Approach
• Refactored various internal components of A2 Graphics to reduce memory
footprint in runtime (Removed design time data from runtime environment)
• Refactored Custom Property code and SetCustomPropertyValue function for
improved data binding performance
• Support binding to any core in the computer (still runs in a single core)
Slide 67
References
Tech Note 628
Advanced Communication Management for Application Server
Tech Note 644
Improving Application Performance with ArchestrA Graphics
Slide 68
Contributors
• Marilou Aguinaldo, Invensys Senior Technical Support Engineer
• John Krajewski, Invensys Director, Product Management, HMI/SCADA
• Ryan Van Slooten, Invensys ArchestrA Application Specialist
• Ken Cook, Invensys ArchestrA Applications Consultant
• Bruce Schultz, Invensys Principal Software Development Engineer
• TopoGigia
Slide 69
Questions?
THANK YOU