mmanela / diffplex

DiffPlex is Netstandard 1.0+ C# library to generate textual diffs.
Apache License 2.0
990 stars 183 forks source link

Wpf performance #87

Open codec-abc opened 2 years ago

codec-abc commented 2 years ago

Hi,

I am experimenting using this library to diff rather big YAML (10000-20000) and using the built-in WPF component the starting time is rather long (~15s for a diff between two 10000 lines long files). Is this expected?

Vicharian commented 2 years ago

I get the following error. The File is 300,000 lines of Json

Managed Debugging Assistant 'ContextSwitchDeadlock' Message=Managed Debugging Assistant 'ContextSwitchDeadlock' : 'The CLR has been unable to transition from COM context 0x16a7ab8 to COM context 0x16a7a00 for 60 seconds. The thread that owns the destination context/apartment is most likely either doing a non pumping wait or processing a very long running operation without pumping Windows messages. This situation generally has a negative performance impact and may even lead to the application becoming non responsive or memory usage accumulating continually over time. To avoid this problem, all single threaded apartment (STA) threads should use pumping wait primitives (such as CoWaitForMultipleHandles) and routinely pump messages during long running operations.'