Open welly87 opened 2 years ago
btw, after trying brute force for JIT runtime parameters finally arrived with this env var 🤣
export DOTNET_TieredPGO=1
export DOTNET_TieredCompilation=1
now i got better result i gues😄
Duration 1,000ms - 10,210,707 messages - 326,742,624 bytes, GC0 0, GC1 0, GC2 0
Duration 1,000ms - 10,210,836 messages - 326,746,752 bytes, GC0 0, GC1 0, GC2 0
Duration 1,000ms - 10,211,970 messages - 326,783,040 bytes, GC0 0, GC1 0, GC2 0
Duration 1,000ms - 10,212,156 messages - 326,788,992 bytes, GC0 0, GC1 0, GC2 0
Duration 1,000ms - 10,209,112 messages - 326,691,584 bytes, GC0 0, GC1 0, GC2 0
Duration 1,000ms - 10,207,238 messages - 326,631,616 bytes, GC0 0, GC1 0, GC2 0
Duration 1,000ms - 10,211,890 messages - 326,780,480 bytes, GC0 0, GC1 0, GC2 0
Duration 1,000ms - 10,211,263 messages - 326,760,416 bytes, GC0 0, GC1 0, GC2 0
Duration 1,000ms - 10,209,094 messages - 326,691,008 bytes, GC0 0, GC1 0, GC2 0
Duration 1,000ms - 10,210,013 messages - 326,720,416 bytes, GC0 0, GC1 0, GC2 0
Duration 1,000ms - 10,210,616 messages - 326,739,712 bytes, GC0 0, GC1 0, GC2 0
Interesting results. Thanks, @welly87.
Is that why you don't upgrade the dotnet and still use it for old .NET version?
Targetting the lowest common denominator from a library perspective so I hadn't got around to testing the latest and greatest .net version.
seems currently it's windows only? I might send pull request for Linux if that's interest you
We've got builds running on both windows and linux. What are you seeing that's windows only?
basically first time i clone the repo and run IpcThrougput
it show error
❯ Samples/Adaptive.Aeron.Samples.IpcThroughput/bin/Release/net6.0/Adaptive.Aeron.Samples.IpcThroughput
Unhandled exception. System.NullReferenceException: Object reference not set to an instance of an object.
at HardwareInformation.MachineInformationGatherer.GatherInformation(Boolean skipClockspeedTest, Boolean invalidateCache, ILogger`1 logger)
at Adaptive.Aeron.Samples.Common.ComputerSpecifications..ctor() in /home/ec2-user/Aeron.NET/src/Samples/Adaptive.Aeron.Samples.Common/ComputerSpecifications.cs:line 51
at Adaptive.Aeron.Samples.Common.ComputerSpecifications.Dump() in /home/ec2-user/Aeron.NET/src/Samples/Adaptive.Aeron.Samples.Common/ComputerSpecifications.cs:line 93
at Adaptive.Aeron.Samples.IpcThroughput.IpcThroughput.Main() in /home/ec2-user/Aeron.NET/src/Samples/Adaptive.Aeron.Samples.IpcThroughput/IpcThroughput.cs:line 37
i try to restore the the nuget package but seems it can't resolve the HardwareInformation
dependencies. It builds fine but have runtime errors. So i just commented this line
// ComputerSpecifications.Dump();
just to make the runtime happy....
another stuff that seems funny is when running on dotnet3.1
on Amazon Linux 2022/Graviton3
seems that nunit runner throw SSL errors when dotnet test
(even if it's there)
The active test run was aborted. Reason: Test host process crashed : No usable version of libssl was found
Test Run Aborted with error System.Exception: One or more errors occurred.
---> System.Exception: Unable to read beyond the end of the stream.
at System.IO.BinaryReader.Read7BitEncodedInt()
at System.IO.BinaryReader.ReadString()
at Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.LengthPrefixCommunicationChannel.NotifyDataAvailable()
at Microsoft.VisualStudio.TestPlatform.CommunicationUtilities.TcpClientExtensions.MessageLoopAsync(TcpClient client, ICommunicationChannel channel, Action`1 errorHandler, CancellationToken cancellationToken)
--- End of inner exception stack trace ---.
but after i upgrade to .NET 6.0 it's magically disappeared. The good stuff is .NET getting better and better each release.
Passed! - Failed: 0, Passed: 225, Skipped: 0, Total: 225, Duration: 354 ms - /home/ec2-user/Aeron.NET/src/Adaptive.Agrona.Tests/bin/Debug/net6.0/Adaptive.Agrona.Tests.dll (net6.0)
Adaptive.Aeron.Tests -> /home/ec2-user/Aeron.NET/src/Adaptive.Aeron.Tests/bin/Debug/net6.0/Adaptive.Aeron.Tests.dll
Test run for /home/ec2-user/Aeron.NET/src/Adaptive.Aeron.Tests/bin/Debug/net6.0/Adaptive.Aeron.Tests.dll (.NETCoreApp,Version=v6.0)
Microsoft (R) Test Execution Command Line Tool Version 17.3.0 (arm64)
Copyright (c) Microsoft Corporation. All rights reserved.
Starting test execution, please wait...
A total of 1 test files matched the specified pattern.
Skipped ShouldAllowConcludeOfClonedContext [< 1 ms]
Skipped ShouldNotAllowConcludeMoreThanOnce [< 1 ms]
Skipped BasicMessageTest [4 ms]
I push my experiment here if you want to take a look
https://github.com/welly87/Aeron.NET/
and put some notes here
https://github.com/welly87/Aeron.NET/blob/master/graviton.md
Thanks, @welly87. I will take a look asap.
Hi @JPWatson
I try to upgrade to
netstandard
andnetcore3.1
tonet6.0
then i run IpcThroughputhere's the result before upgrading
then after upgrading
The environment i use is
Amazon Linux 2022
on Graviton3 (ARM Neoverse V1) AWS c7g.Looks weird. Will try to find out. It's also resulting the same stuff even after i try to disable/enable PGO and Tiered Compilation.
Cheers