Hi
There is room for performance improvements in ClosedXML.
To create a performance base line I updated the sandbox example in the branch https://closedxml.codeplex.com/SourceControl/network/forks/AlbinSunnanbo/closedxml?branch=Performance_Example to create a Excel document similar to our production code
(See change set https://closedxml.codeplex.com/SourceControl/network/forks/AlbinSunnanbo/closedxml/changeset/6aedcc8946cc210a4f81224f8e65f2f4feb0ee10 )
I created a pull request with some low hanging fruit fixes: https://closedxml.codeplex.com/SourceControl/network/forks/AlbinSunnanbo/closedxml/contribution/8065
Before the pull request the execution time on my computer was 9.8 seconds, with the pull request applied the execution time was 6.7 seconds. That's an overall 30% improvement on a generate + save cycle.
I have some further fixes in the works, I'll add comments to this issue when the are ready.
// Albin Sunnanbo @ Kentor
Comments: Hi, thanks for the merge. I had also noticed the IsMerged issue. I had note found the Contains(IXLCell cell) overload, I hade an idea of creating an overload Intersects(IXLCell cell) but this is obviously much more elegant. With your fix for IsMerged my test example runs in 5.9 seconds. 40% reduction from a before the fixes!
There is room for performance improvements in ClosedXML.
To create a performance base line I updated the sandbox example in the branch https://closedxml.codeplex.com/SourceControl/network/forks/AlbinSunnanbo/closedxml?branch=Performance_Example to create a Excel document similar to our production code
(See change set https://closedxml.codeplex.com/SourceControl/network/forks/AlbinSunnanbo/closedxml/changeset/6aedcc8946cc210a4f81224f8e65f2f4feb0ee10 )
I created a pull request with some low hanging fruit fixes: https://closedxml.codeplex.com/SourceControl/network/forks/AlbinSunnanbo/closedxml/contribution/8065
Before the pull request the execution time on my computer was 9.8 seconds, with the pull request applied the execution time was 6.7 seconds. That's an overall 30% improvement on a generate + save cycle.
I have some further fixes in the works, I'll add comments to this issue when the are ready.
// Albin Sunnanbo @ Kentor
Comments: Hi, thanks for the merge. I had also noticed the IsMerged issue. I had note found the Contains(IXLCell cell) overload, I hade an idea of creating an overload Intersects(IXLCell cell) but this is obviously much more elegant. With your fix for IsMerged my test example runs in 5.9 seconds. 40% reduction from a before the fixes!