-
Notifications
You must be signed in to change notification settings - Fork 5
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Feature/net 6 support #62
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the contribution, this looks good overall. I have a couple notes that I would like resolved.
In the meantime, I am going to see what I can do about the benchmarking to see if we can include it in this PR
framework: 'net6' | ||
- os: windows-2019 | ||
architecture: 'x64' | ||
framework: 'net6' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The winforms build is out of sync with what is happening in the PR build. Can you take a look and make sure the build_main.yml
is correct. There should only be 1 build command like this:
- name: Build WinForms App
run: dotnet build -c Release /p:Platform=${{ matrix.architecture }}
working-directory: ./samples/WinformsApp/WinformsApp.${{ matrix.framework }}
FileOnQ.Imaging.Heif.sln
Outdated
# Visual Studio Version 16 | ||
VisualStudioVersion = 16.0.30114.105 | ||
# Visual Studio Version 17 | ||
VisualStudioVersion = 17.0.32014.148 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This project doesn't official support Visual Studio 2022, this statement should not be updated. The C++ code fails when using the compilers in Visual Studio 2022 and we only support 2019.
…aging.Heif into feature/net-6-support
/benchmark |
I updated the benchmark project to support running under net48, net5, and net6. After a successful run we will need to update the saved results as the table will be slightly different from what is stored in the repository. The benefit here is we will be able to look at differences between all our supported platforms. Let's wait and see with the CI says, I noticed locally there is a very small memory leak in net6 and net48 - under 200 bytes |
benchmarks failed because .NET 6 wasn't installed on job |
/benchmark |
I just peaked at the result of the benchmark build for Thumbnails and it includes net48 and net6 but not net 6. We need to add another ensure .NET SDK command to ensure .NET 5 is installed. See output https://github.com/FileOnQ/Imaging.Heif/actions/runs/1678150679
|
/benchmark |
@kenny-sellers can you take a look at the memory leak noted for .NET 4.8 |
@ahoefling Just for documentation purposes. We are also seeing a memory leak with Primary images. That one is 234B. |
Thanks for confirming the issue. I don't think we should have the memory leak or benchmarking hold up this PR. @kenny-sellers can you create a new issue to track the memory leak and include the .NET Framework benchmarks to document the problem. I will make another pass at the code here and see what we need to do to close this out |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@kenny-sellers I noted all the benchmark changes that need to be reverted, can you make the changes and update the PR
.github/workflows/benchmark.yml
Outdated
@@ -3,7 +3,7 @@ name: Benchmark | |||
on: | |||
pull_request_target: | |||
branches: [ main ] | |||
types: [ opened ] | |||
types: [ opened, synchronize ] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Remove testing action trigger
types: [ opened, synchronize ] | |
types: [ opened ] |
@@ -73,7 +73,7 @@ jobs: | |||
- name: Setup .NET SDK | |||
uses: actions/setup-dotnet@v1 | |||
with: | |||
dotnet-version: 5.0.302 | |||
dotnet-version: 6.0.101 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revert benchmark build changes, this will be captured in another work item
dotnet-version: 6.0.101 | |
dotnet-version: 5.0.302 |
.github/workflows/benchmark.yml
Outdated
architecture: 'AnyCPU' | ||
platform: 'net5' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revert benchmark build changes, this will be captured in another work item
architecture: 'AnyCPU' | |
platform: 'net5' |
.github/workflows/benchmark.yml
Outdated
@@ -135,7 +137,7 @@ jobs: | |||
working-directory: ./benchmarks/tools | |||
|
|||
- name: Benchmark | |||
run: dotnet run -c Release -b ${{ matrix.benchmark }} | |||
run: dotnet run -c Release -f net6.0 -b ${{ matrix.benchmark }} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revert benchmark build changes, this will be captured in another work item
run: dotnet run -c Release -f net6.0 -b ${{ matrix.benchmark }} | |
run: dotnet run -c Release -b ${{ matrix.benchmark }} |
@@ -1,7 +1,7 @@ | |||
<?xml version="1.0" encoding="utf-8" ?> | |||
<Project ToolsVersion="15.0"> | |||
|
|||
<Target Name="ClearPackageCache" BeforeTargets="Build" Condition="'$(CI)' == 'false'"> | |||
<Target Name="ClearPackageCache" BeforeTargets="DispatchToInnerBuilds" Condition="'$(CI)' == 'false'"> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revert benchmark changes
<Target Name="ClearPackageCache" BeforeTargets="DispatchToInnerBuilds" Condition="'$(CI)' == 'false'"> | |
<Target Name="ClearPackageCache" BeforeTargets="Build" Condition="'$(CI)' == 'false'"> |
@@ -2,7 +2,7 @@ | |||
|
|||
<PropertyGroup> | |||
<OutputType>Exe</OutputType> | |||
<TargetFramework>net5.0</TargetFramework> | |||
<TargetFrameworks>net48;net5.0;net6.0</TargetFrameworks> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revert benchmark changes
<TargetFrameworks>net48;net5.0;net6.0</TargetFrameworks> | |
<TargetFramework>net5.0</TargetFramework> |
benchmarks/tools/PrimaryImage.cs
Outdated
@@ -7,7 +7,9 @@ | |||
|
|||
namespace FileOnQ.Imaging.Heif.Benchmarks | |||
{ | |||
[SimpleJob(RuntimeMoniker.Net48, launchCount: 1, invocationCount: 1)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revert benchmark changes
[SimpleJob(RuntimeMoniker.Net48, launchCount: 1, invocationCount: 1)] |
benchmarks/tools/PrimaryImage.cs
Outdated
[SimpleJob(RuntimeMoniker.Net50, launchCount: 1, invocationCount: 1)] | ||
[SimpleJob(RuntimeMoniker.Net60, launchCount: 1, invocationCount: 1)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revert benchmark changes
[SimpleJob(RuntimeMoniker.Net60, launchCount: 1, invocationCount: 1)] |
benchmarks/tools/Thumbnail.cs
Outdated
@@ -7,7 +7,9 @@ | |||
|
|||
namespace FileOnQ.Imaging.Heif.Benchmarks | |||
{ | |||
[SimpleJob(RuntimeMoniker.Net48, launchCount: 1, invocationCount: 1)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revert benchmark changes
[SimpleJob(RuntimeMoniker.Net48, launchCount: 1, invocationCount: 1)] |
benchmarks/tools/Thumbnail.cs
Outdated
[SimpleJob(RuntimeMoniker.Net50, launchCount: 1, invocationCount: 1)] | ||
[SimpleJob(RuntimeMoniker.Net60, launchCount: 1, invocationCount: 1)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Revert benchmark changes
[SimpleJob(RuntimeMoniker.Net60, launchCount: 1, invocationCount: 1)] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ahoefling I pushed the reverts!
/benchmark |
As long as the builds and benchmarks succeed, we can merge this PR |
Benchmark is failing, because we need the script updated in main. We will clean this up in #66. If the current build passes we will merge this PR |
Fixes: #46
Description
Adding .NET 6 Support
Merge Checklist