The Syncfusion native Blazor components library offers 70+ UI and Data Viz web controls that are responsive and lightweight for building modern web apps.
.NET PDF framework is a high-performance and comprehensive library used to create, read, merge, split, secure, edit, view, and review PDF files in C#/VB.NET.
We have successfully deployed the Syncfusion editor as a replacement to our old and dated Active-X control, with the same level (or slightly greater) of functionality. However, we have been unable to get the performance to a widely acceptable level.
We are using the VBScript language definition with some additional syntax elements, a number of global functions and number of global objects each with their own functions and properties. The performance hit appears to be centered around the initial display of the control after defining the language.
Early attempts at defining our language syntax and intellisense hierarchy led to an unacceptable display time of ~25 seconds on a top-end system (specs below). Defining the language only on first start-up, rather than every time, lead to this large overhead being experienced only on first display. A major refactor changed the mechanism for intellisense. Rather than using the Syncfusion language definition, this is now handled in code, and the start up time is down to nearly 6 seconds. This is still an unacceptable performance burden for our users, who are used to an immeasurably short start-up time (<0.5 seconds).
Attempts to use such techniques as parallel processing have failed - the language definition appears to be bound to the script control's thread, and pre-defining it on background threads simply resulted in an exception when displaying the script control.
What we really need is some advice on our usage of the control, and possibly some internal optimizations of the code to meet our customers' expectations of performance whilst maintaining the high level of functionality required.
Reference system: Dual Xeon X5482 CPUs providing 8 effective CPUs clocked at 3.2GHz RAM 8Gb Operating System Windows Server 2008 x64
Internal logging illustrating performance by activity:
First display: 19:56:42.501 # 9 Info: Constructing control 19:56:44.402 # 9 Info: Initialised control 19:56:44.411 # 9 Info: SyncFusion.ScriptEditor Data took 00:00:00.0050005 19:56:44.413 # 9 Info: Control ready to display 19:56:44.502 # 9 Info: SyncFusion.ScriptEditor SetLanguage took 00:00:00.0610061 19:56:44.505 # 9 Info: SyncFusion.ScriptEditor SetLanguage - defining language VBScript ------------ 19:56:45.208 # 9 Info: Loaded user syntax customisations from .\Syntax.xml 19:56:45.209 # 9 Info: SyncFusion.ScriptEditor DefineLanguage took 00:00:00.7030703 19:56:48.019 # 9 Info: SyncFusion.ScriptEditor Data took 00:00:00.0060006 19:56:48.022 # 9 Info: SyncFusion.ScriptEditor Parsing text took 00:00:00.0020002 19:56:48.121 # 9 Info: SyncFusion.ScriptEditor OnLoad clearCache took 00:00:00.0910091 19:56:48.139 # 9 Info: Starting first paint 00:00:05.6385638 after control created
Subsequent calls: 19:58:16.431 # 9 Info: Constructing control 19:58:17.203 # 9 Info: Initialised control 19:58:17.207 # 9 Info: SyncFusion.ScriptEditor Data took 00:00:00.0020002 19:58:17.207 # 9 Info: Control ready to display 19:58:17.277 # 9 Info: SyncFusion.ScriptEditor SetLanguage took 00:00:00.0630063 19:58:17.278 # 9 Info: SyncFusion.ScriptEditor SetLanguage - language VBScript already defined 19:58:17.282 # 9 Info: SyncFusion.ScriptEditor Data took 00:00:00.0030003 19:58:17.282 # 9 Info: SyncFusion.ScriptEditor Parsing text took 00:00:00 19:58:17.294 # 9 Info: Starting first paint 00:00:00.8630863 after control created
From this, it appears that the initialization of the control after defining the language is the key time overhead.
For reference, the language syntax defines 11 top level classes containing in total ~600 methods and properties, and 192 global functions. Details of the language elements available on request.
KNKarikalan Natarajan Syncfusion Team May 11, 2010 08:49 AM UTC
Hi,
Thanks for your interest in Syncfusion Products.
I am afraid that i was not able to reproduce the performance issue with default XML file which is available in the source of the edit control.
On our further analysis, the performance of the Edit control while load the VB script file is as follows.
Painting at First Time:00:00:00.1220750 Painting at Second Time:00:00:00.0117192
Could you send your xml file for define the configure the language so that we could sort out the cause of the performance issue and try to resolve it at the earliest?
Please let me know if you need further information on this.