CallBimlScript slow with Bidshelper + VS2013
When troubleshooting slow biml generation times on a fairly large solution of 100+ ssis packages I found out that one of the culprits are CallBimlScript() function.
I created a test showing the overhead this function generates. By examining the packages CreationDates i summarize the total time.
<Biml xmlns="http://schemas.varigence.com/biml.xsd"> <Annotations> <Annotation AnnotationType="CodeComment"><#=DateTime.Now.ToString("s")#> Biml start time</Annotation> </Annotations> <Packages> <# for (int i=0;i<1000;i++) { #> <Package Name="Package <#=i#>" CreationDate="<#=DateTime.Now.ToString("s")#>"> <Annotations> <#=CallBimlScript("TestFunction.biml") #> </Annotations> </Package> <# } #> </Packages> </Biml>
For big solutions, where you try to avoid code duplication by splitting logic into smaller biml-files, you need to carefully consider using callbimlScript() until BimlExpress is mature enough for your solution to be upgraded. For our solution, at least two bugs in BimlExpress cause us not to upgrade yet.
I created a test showing the overhead this function generates. By examining the packages CreationDates i summarize the total time.
SpeedTest.biml
<#@ template language="C#" tier="1" #><Biml xmlns="http://schemas.varigence.com/biml.xsd"> <Annotations> <Annotation AnnotationType="CodeComment"><#=DateTime.Now.ToString("s")#> Biml start time</Annotation> </Annotations> <Packages> <# for (int i=0;i<1000;i++) { #> <Package Name="Package <#=i#>" CreationDate="<#=DateTime.Now.ToString("s")#>"> <Annotations> <#=CallBimlScript("TestFunction.biml") #> </Annotations> </Package> <# } #> </Packages> </Biml>
TestFunction.biml
<Annotation AnnotationType="CodeComment">Hard-coded comment</Annotation>Result, generation times
1000 packages (seconds) | Overhead per CallBimlScript() (ms) | |
Bids Helper + Visual Studio 2013 |
132
|
132
|
Biml Express + Visual Studio 2015 |
0
|
0
|
For big solutions, where you try to avoid code duplication by splitting logic into smaller biml-files, you need to carefully consider using callbimlScript() until BimlExpress is mature enough for your solution to be upgraded. For our solution, at least two bugs in BimlExpress cause us not to upgrade yet.
Comments