DavidArno / SuccincT

Discriminated unions, pattern matching and partial applications for C#
MIT License
267 stars 15 forks source link

Union<T1, T2> Creation Performance #30

Closed megafinz closed 7 years ago

megafinz commented 7 years ago

Improved Union<T1, T2> creation performance (10 times less allocations, 20+ times less CPU time).

If everything is OK I'll do the same for other Union types.

megafinz commented 7 years ago

Not familiar with the CI build process, don't know what to fix : (

DavidArno commented 7 years ago

@megafinz,

No worries; I'll take a look and see if I can work it out.

DavidArno commented 7 years ago

I looked at the output from appveyor ... and don't understand what it's doing. It might be related to the fact that they've updated their VS2017 compilation process now that VS2017 is RTM. All SuccincT builds are going through the VS2017 compiler on appveyor at the moment. So I might need some config changes to make the builds work. I'm busy this weekend, but I'll take a look at it on Monday, if that's OK?

megafinz commented 7 years ago

No problem, I can't do anything useful anyway : )

DavidArno commented 7 years ago

OK, I made a change to the appveyor.yml file and pushed it, and all built OK. So I re-ran this PR on appveyor. It now is reporting errors about BenchmarkDotNet, Version=0.10.3.0 being missing. Is what you checked in just missing a nuget reference?

megafinz commented 7 years ago

I don't think so, package.config file is fine and project file references correct library from packages folder.

I added a console application project in that commit, maybe AppVeyor needs some additional configuration to build it? Build log file shows that none of that console app's dependencies are found, so I guess package restore is not working for that console app.

megafinz commented 7 years ago

https://www.appveyor.com/blog/2014/03/18/about-nuget-package-restore/

That seems to help.