Skip to content

Commit

Permalink
Merge pull request #63 from jaredpar/alloc
Browse files Browse the repository at this point in the history
Reduce allocations
  • Loading branch information
jaredpar authored Sep 19, 2024
2 parents 3865c99 + 780b5f0 commit 66263ca
Show file tree
Hide file tree
Showing 26 changed files with 3,056 additions and 3,048 deletions.
602 changes: 301 additions & 301 deletions Src/Basic.Reference.Assemblies.AspNet80/Generated.cs

Large diffs are not rendered by default.

604 changes: 302 additions & 302 deletions Src/Basic.Reference.Assemblies.AspNet90/Generated.cs

Large diffs are not rendered by default.

98 changes: 49 additions & 49 deletions Src/Basic.Reference.Assemblies.Net20/Generated.cs

Large diffs are not rendered by default.

204 changes: 102 additions & 102 deletions Src/Basic.Reference.Assemblies.Net35/Generated.cs

Large diffs are not rendered by default.

232 changes: 116 additions & 116 deletions Src/Basic.Reference.Assemblies.Net40/Generated.cs

Large diffs are not rendered by default.

372 changes: 186 additions & 186 deletions Src/Basic.Reference.Assemblies.Net461/Generated.cs

Large diffs are not rendered by default.

470 changes: 235 additions & 235 deletions Src/Basic.Reference.Assemblies.Net472/Generated.cs

Large diffs are not rendered by default.

304 changes: 152 additions & 152 deletions Src/Basic.Reference.Assemblies.Net50/Generated.cs

Large diffs are not rendered by default.

318 changes: 159 additions & 159 deletions Src/Basic.Reference.Assemblies.Net60/Generated.cs

Large diffs are not rendered by default.

94 changes: 47 additions & 47 deletions Src/Basic.Reference.Assemblies.Net60Windows/Generated.cs

Large diffs are not rendered by default.

326 changes: 163 additions & 163 deletions Src/Basic.Reference.Assemblies.Net70/Generated.cs

Large diffs are not rendered by default.

326 changes: 163 additions & 163 deletions Src/Basic.Reference.Assemblies.Net80/Generated.cs

Large diffs are not rendered by default.

94 changes: 47 additions & 47 deletions Src/Basic.Reference.Assemblies.Net80Windows/Generated.cs

Large diffs are not rendered by default.

328 changes: 164 additions & 164 deletions Src/Basic.Reference.Assemblies.Net90/Generated.cs

Large diffs are not rendered by default.

302 changes: 151 additions & 151 deletions Src/Basic.Reference.Assemblies.NetCoreApp31/Generated.cs

Large diffs are not rendered by default.

116 changes: 58 additions & 58 deletions Src/Basic.Reference.Assemblies.NetStandard13/Generated.cs

Large diffs are not rendered by default.

232 changes: 116 additions & 116 deletions Src/Basic.Reference.Assemblies.NetStandard20/Generated.cs

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@
<PackageReference Include="xunit" Version="2.4.0" />
<PackageReference Include="xunit.runner.visualstudio" Version="2.4.0" />
<PackageReference Include="coverlet.collector" Version="1.2.0" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="4.9.2" />
<PackageReference Include="Microsoft.CodeAnalysis.CSharp" Version="$(RoslynVersion)" />
</ItemGroup>

<ItemGroup>
Expand Down
8 changes: 8 additions & 0 deletions Src/Basic.Reference.Assemblies.UnitTests/SanityUnitTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -203,4 +203,12 @@ public static string Go()
var actual = CompilationUtil.CompileAndRun(source, nameof(RunTuple), references);
Assert.Equal("(1, 2)", actual);
}

[Fact]
public void LoadAll()
{
Net461.References.All.ToList();
Net40.References.All.ToList();
Net70.References.All.ToList();
}
}
470 changes: 235 additions & 235 deletions Src/Basic.Reference.Assemblies/Generated.Net472.cs

Large diffs are not rendered by default.

326 changes: 163 additions & 163 deletions Src/Basic.Reference.Assemblies/Generated.Net80.cs

Large diffs are not rendered by default.

232 changes: 116 additions & 116 deletions Src/Basic.Reference.Assemblies/Generated.NetStandard20.cs

Large diffs are not rendered by default.

1 change: 1 addition & 0 deletions Src/Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
<SignAssembly>true</SignAssembly>
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
<AssemblyOriginatorKeyFile>$(MSBuildThisFileDirectory)Key.snk</AssemblyOriginatorKeyFile>
<RoslynVersion>4.11.0</RoslynVersion>

<!-- NuGet Properties -->
<PackageLicenseExpression>MIT</PackageLicenseExpression>
Expand Down
2 changes: 1 addition & 1 deletion Src/Directory.Build.targets
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
</ItemGroup>

<ItemGroup>
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="4.9.2" />
<PackageReference Include="Microsoft.CodeAnalysis.Common" Version="$(RoslynVersion)" />
</ItemGroup>

<ItemGroup Condition="'$(IsPackable)' == 'true'">
Expand Down
2 changes: 1 addition & 1 deletion Src/Generate/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -478,7 +478,7 @@ public static PortableExecutableReference {{propName}}
{
if ({{fieldName}} is null)
{
{{fieldName}} = AssemblyMetadata.CreateFromImage(Resources.{{propName}}).GetReference(filePath: "{{dllName}}", display: "{{dll}} ({{lowerName}})");
{{fieldName}} = AssemblyMetadata.CreateFromImage(ResourceLoader.GetResourceBlobAsImmutable("{{logicalName}}")).GetReference(filePath: "{{dllName}}", display: "{{dll}} ({{lowerName}})");
}
return {{fieldName}};
}
Expand Down
39 changes: 19 additions & 20 deletions Src/Shared/ResourceLoader.cs
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
using System;
using System.Collections.Immutable;
using System.IO;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Text;

namespace Basic.Reference.Assemblies
{
internal static class ResourceLoader
{
private static Stream GetResourceStream(string name)
internal static Stream GetResourceStream(string name)
{
var assembly = typeof(ResourceLoader).GetTypeInfo().Assembly;

Expand All @@ -20,21 +22,22 @@ private static Stream GetResourceStream(string name)
return stream;
}

private static byte[] GetResourceBlob(string name)
internal static byte[] GetResourceBlob(string name)
{
using (var stream = GetResourceStream(name))
{
var bytes = new byte[stream.Length];
using (var memoryStream = new MemoryStream(bytes))
{
stream.CopyTo(memoryStream);
}
using var stream = GetResourceStream(name);
var bytes = new byte[stream.Length];
using var memoryStream = new MemoryStream(bytes);
stream.CopyTo(memoryStream);
return bytes;
}

return bytes;
}
internal static ImmutableArray<byte> GetResourceBlobAsImmutable(string name)
{
var blob = GetResourceBlob(name);
return ImmutableCollectionsMarshal.AsImmutableArray(blob);
}

public static byte[] GetOrCreateResource(ref byte[]? resource, string name)
internal static byte[] GetOrCreateResource(ref byte[]? resource, string name)
{
if (resource == null)
{
Expand All @@ -44,17 +47,13 @@ public static byte[] GetOrCreateResource(ref byte[]? resource, string name)
return resource;
}

public static string GetOrCreateResource(ref string resource, string name)
internal static string GetOrCreateResource(ref string resource, string name)
{
if (resource == null)
{
using (var stream = GetResourceStream(name))
{
using (var streamReader = new StreamReader(stream, Encoding.UTF8, detectEncodingFromByteOrderMarks: true))
{
resource = streamReader.ReadToEnd();
}
}
using var stream = GetResourceStream(name);
using var streamReader = new StreamReader(stream, Encoding.UTF8, detectEncodingFromByteOrderMarks: true);
resource = streamReader.ReadToEnd();
}

return resource;
Expand Down

0 comments on commit 66263ca

Please sign in to comment.