Skip to content

Instantly share code, notes, and snippets.

@EgorBo
Last active September 7, 2020 13:09
Show Gist options
  • Save EgorBo/1b3ff277114016f5ffab36880a138a12 to your computer and use it in GitHub Desktop.
Save EgorBo/1b3ff277114016f5ffab36880a138a12 to your computer and use it in GitHub Desktop.
C:\prj>jit-diff diff --output C:\prj\jitdiffs -f --core_root C:\prj\runtime-1\artifacts\tests\coreclr\Windows_NT.x64.Release\Tests\Core_Root --base C:\prj\runtime-1\artifacts\bin\coreclr\Windows_NT.x64.Checked_base --diff C:\prj\runtime-1\artifacts\bin\coreclr\Windows_NT.x64.Checked --crossgen C:\prj\runtime-1\artifacts\bin\coreclr\Windows_NT.x64.Release\crossgen2\crossgen2.exe
Beginning Crossgen CodeSize Diffs for System.Private.CoreLib.dll, framework assemblies
\ Finished 267/267 Base 267/267 Diff [183.8 sec]
Completed Crossgen CodeSize Diffs for System.Private.CoreLib.dll, framework assemblies in 183.95s
Diffs (if any) can be viewed by comparing: C:\prj\jitdiffs\dasmset_24\base C:\prj\jitdiffs\dasmset_24\diff
Analyzing CodeSize diffs...
Found 459 files with textual diffs.
Crossgen CodeSize Diffs for System.Private.CoreLib.dll, framework assemblies for default jit
Summary of Code Size diffs:
(Lower is better)
Total bytes of diff: -274844 (-0.73% of base)
diff is an improvement.
Total byte diff includes 0 bytes from reconciling methods
Base had 0 unique methods, 0 unique bytes
Diff had 1 unique methods, 0 unique bytes
Top file regressions (bytes):
37 : Microsoft.Diagnostics.NETCore.Client.dasm (0.44% of base)
37 : Microsoft.Extensions.DependencyModel.dasm (0.09% of base)
19 : ILCompiler.Reflection.ReadyToRun.dasm (0.02% of base)
16 : xunit.execution.dotnet.dasm (0.01% of base)
12 : Microsoft.Extensions.FileProviders.Abstractions.dasm (2.40% of base)
8 : Microsoft.Extensions.FileProviders.Physical.dasm (0.06% of base)
6 : Microsoft.Diagnostics.Tracing.TraceEvent.dasm (0.00% of base)
6 : System.Net.WebProxy.dasm (0.21% of base)
5 : Microsoft.Diagnostics.Tools.RuntimeClient.dasm (0.07% of base)
3 : Microsoft.Extensions.Caching.Memory.dasm (0.02% of base)
3 : xunit.core.dasm (0.01% of base)
Top file improvements (bytes):
-50356 : System.Private.CoreLib.dasm (-1.61% of base)
-38483 : System.Data.Common.dasm (-3.44% of base)
-31004 : System.Private.Xml.dasm (-1.00% of base)
-15128 : System.Linq.Expressions.dasm (-0.79% of base)
-8821 : System.Configuration.ConfigurationManager.dasm (-2.87% of base)
-6943 : Microsoft.VisualBasic.Core.dasm (-1.64% of base)
-5595 : System.Data.OleDb.dasm (-2.09% of base)
-5420 : Newtonsoft.Json.dasm (-0.89% of base)
-5401 : System.Security.Cryptography.Algorithms.dasm (-1.87% of base)
-5281 : System.DirectoryServices.dasm (-1.39% of base)
-4411 : System.Private.DataContractSerialization.dasm (-0.62% of base)
-3836 : System.Net.Http.dasm (-0.64% of base)
-3154 : System.Transactions.Local.dasm (-3.12% of base)
-3121 : System.Linq.Queryable.dasm (-4.70% of base)
-2894 : System.Net.Requests.dasm (-2.88% of base)
-2805 : System.Data.Odbc.dasm (-1.55% of base)
-2370 : System.Security.Cryptography.Pkcs.dasm (-0.77% of base)
-2366 : System.Net.Mail.dasm (-1.34% of base)
-2285 : System.DirectoryServices.AccountManagement.dasm (-0.93% of base)
-2223 : FSharp.Core.dasm (-0.24% of base)
158 total files with Code Size differences (147 improved, 11 regressed), 109 unchanged.
Top method regressions (bytes):
172 ( 1.09% of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlReflectionImporter:ImportAccessorMapping(System.Xml.Serialization.MemberMapping,System.Xml.Serialization.FieldModel,System.Xml.Serialization.XmlAttributes,System.String,System.Type,bool,bool,System.Xml.Serialization.RecursionLimiter):this (1 base, 0 diff methods)
69 ( 1.88% of base) : Microsoft.CodeAnalysis.dasm - Microsoft.CodeAnalysis.CommonReferenceManager`2:ResolveMetadataReferences(System.__Canon,System.Collections.Generic.Dictionary`2[System.String, System.Collections.Generic.List`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ReferencedAssemblyIdentity[System.__Canon, System.__Canon]]],byref,byref,byref,byref,byref,Microsoft.CodeAnalysis.DiagnosticBag):System.Collections.Immutable.ImmutableArray`1[Microsoft.CodeAnalysis.CommonReferenceManager`2+ResolvedReference[System.__Canon, System.__Canon]]:this
62 ( 8.58% of base) : System.Private.Xml.dasm - System.Xml.Serialization.SoapReflectionImporter:CreateNullableMapping(System.Xml.Serialization.TypeMapping,System.Type):System.Xml.Serialization.NullableMapping:this
62 ( 7.69% of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlReflectionImporter:CreateNullableMapping(System.Xml.Serialization.TypeMapping,System.Type):System.Xml.Serialization.NullableMapping:this
59 ( 5.55% of base) : Newtonsoft.Json.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:CreateList(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.Serialization.JsonContract,Newtonsoft.Json.Serialization.JsonProperty,System.Object,System.String):System.Object:this
58 (15.38% of base) : System.Private.Xml.dasm - System.Xml.Serialization.StructMapping:SetContentModel(System.Xml.Serialization.TextAccessor,bool):this
55 ( 2.64% of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSchemaImporter:ImportStructType(System.Xml.Schema.XmlSchemaType,System.String,System.String,System.Type,bool):System.Xml.Serialization.StructMapping:this
39 ( 1.02% of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionXmlSerializationReader:WriteLiteralStructMethod(System.Xml.Serialization.StructMapping,bool,bool,System.String):System.Object:this (1 base, 0 diff methods)
34 ( 1.75% of base) : Newtonsoft.Json.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:CreateObject(Newtonsoft.Json.JsonReader,System.Type,Newtonsoft.Json.Serialization.JsonContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty,System.Object):System.Object:this
33 ( 7.32% of base) : Newtonsoft.Json.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:CreateNewList(Newtonsoft.Json.JsonReader,Newtonsoft.Json.Serialization.JsonArrayContract,byref):System.Collections.IList:this
33 ( 5.40% of base) : System.Net.Http.dasm - System.Net.Http.Headers.HttpHeaders:ParseAndAddValue(System.Net.Http.Headers.HeaderDescriptor,System.Net.Http.Headers.HttpHeaders+HeaderStoreItemInfo,System.String):this
33 (12.64% of base) : System.Private.Xml.dasm - System.Xml.Serialization.ReflectionXmlSerializationWriter:WriteArray(System.Object,System.Object,System.Xml.Serialization.ElementAccessor[],System.Xml.Serialization.TextAccessor,System.Xml.Serialization.ChoiceIdentifierAccessor,System.Xml.Serialization.TypeDesc):this (0 base, 1 diff methods)
32 ( 4.18% of base) : Newtonsoft.Json.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalWriter:CalculatePropertyValues(Newtonsoft.Json.JsonWriter,System.Object,Newtonsoft.Json.Serialization.JsonContainerContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.Serialization.JsonProperty,byref,byref):bool:this
32 ( 8.70% of base) : System.Formats.Cbor.dasm - System.Formats.Cbor.CborReader:PeekSignedInteger(byref):long:this
32 ( 1.96% of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlReflectionImporter:ReconcileAccessor(System.Xml.Serialization.Accessor,System.Xml.Serialization.NameTable):System.Xml.Serialization.Accessor:this
31 ( 2.25% of base) : System.Private.Xml.dasm - System.Xml.Serialization.XmlSchemaExporter:ExportStructMapping(System.Xml.Serialization.StructMapping,System.String,System.Xml.Schema.XmlSchemaElement):System.Xml.XmlQualifiedName:this (0 base, 1 diff methods)
30 ( 9.87% of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlObjectSerializerReadContext:CheckEndOfArray(System.Runtime.Serialization.XmlReaderDelegator,int,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):this
28 ( 3.67% of base) : Newtonsoft.Json.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:EndProcessProperty(System.Object,Newtonsoft.Json.JsonReader,Newtonsoft.Json.Serialization.JsonObjectContract,int,Newtonsoft.Json.Serialization.JsonProperty,int,bool):this (0 base, 1 diff methods)
28 (254.55% of base) : System.Net.Requests.dasm - System.Net.FileWebResponse:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this
28 (121.74% of base) : System.Net.Requests.dasm - System.Net.HttpWebResponse:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (0 base, 1 diff methods)
Top method improvements (bytes):
-1233 (-15.28% of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationElement:DeserializeElement(System.Xml.XmlReader,bool):this
-864 (-21.77% of base) : System.Data.Common.dasm - System.Data.ExpressionParser:Parse():System.Data.ExpressionNode:this (1 base, 0 diff methods)
-683 (-25.59% of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.DecimalFormatter:.ctor(System.String,System.Xml.Xsl.Runtime.DecimalFormat):this
-682 (-44.90% of base) : System.Private.Xml.dasm - System.Xml.XmlSqlBinaryReader:RescanNextToken():int:this
-675 (-23.20% of base) : System.Private.CoreLib.dasm - System.Globalization.IdnMapping:PunycodeDecode(System.String):System.String
-645 (-28.87% of base) : System.Data.Common.dasm - System.Data.DataColumnCollection:CanRemove(System.Data.DataColumn,bool):bool:this
-644 (-30.04% of base) : System.Private.Xml.dasm - System.Xml.Schema.Asttree:CompileXPath(System.String,bool,System.Xml.XmlNamespaceManager):this (1 base, 0 diff methods)
-600 (-31.04% of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationElementCollection:BaseRemove(System.Object,bool):this
-585 (-11.20% of base) : System.Private.Xml.dasm - System.Xml.Schema.XmlSchemaInference:InferElement(System.Xml.Schema.XmlSchemaElement,bool,System.Xml.Schema.XmlSchema):this
-558 (-16.63% of base) : System.Private.Xml.dasm - System.Xml.Xsl.Runtime.XmlCollation:Create(System.String,bool):System.Xml.Xsl.Runtime.XmlCollation
-524 (-3.77% of base) : Microsoft.VisualBasic.Core.dasm - Microsoft.VisualBasic.CompilerServices.VBBinder:BindToMethod(int,System.Reflection.MethodBase[],byref,System.Reflection.ParameterModifier[],System.Globalization.CultureInfo,System.String[],byref):System.Reflection.MethodBase:this
-510 (-24.32% of base) : System.Private.Xml.dasm - FunctionInfo`1:CastArguments(System.Collections.Generic.IList`1[System.Xml.Xsl.Qil.QilNode],System.String,System.Xml.Xsl.XPath.XPathQilFactory):this (2 base, 3 diff methods)
-485 (-27.81% of base) : System.Private.Xml.dasm - System.Xml.Xsl.XsltOld.ContainerAction:CompileTopLevelElements(System.Xml.Xsl.XsltOld.Compiler):this
-481 (-10.57% of base) : System.Private.CoreLib.dasm - System.Reflection.Emit.CustomAttributeBuilder:.ctor(System.Reflection.ConstructorInfo,System.Object[],System.Reflection.PropertyInfo[],System.Object[],System.Reflection.FieldInfo[],System.Object[]):this (0 base, 1 diff methods)
-462 (-10.11% of base) : System.Data.Common.dasm - System.Data.FunctionNode:EvalFunction(int,System.Object[],System.Data.DataRow,int):System.Object:this (1 base, 0 diff methods)
-457 (-6.48% of base) : Newtonsoft.Json.dasm - <ExecuteFilter>d__4:MoveNext():bool:this (7 base, 4 diff methods)
-449 (-38.54% of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.MgmtConfigurationRecord:ValidateSectionXml(System.String,System.String):this
-447 (-3.47% of base) : System.Net.Security.dasm - <ForceAuthenticationAsync>d__171`1:MoveNext():this (3 base, 2 diff methods)
-431 (-21.61% of base) : Newtonsoft.Json.dasm - Newtonsoft.Json.Serialization.JsonSerializerInternalReader:ResolvePropertyAndCreatorValues(Newtonsoft.Json.Serialization.JsonObjectContract,Newtonsoft.Json.Serialization.JsonProperty,Newtonsoft.Json.JsonReader,System.Type):System.Collections.Generic.List`1[Newtonsoft.Json.Serialization.JsonSerializerInternalReader+CreatorPropertyContext]:this (0 base, 1 diff methods)
-423 (-29.58% of base) : System.Configuration.ConfigurationManager.dasm - System.Configuration.ConfigurationElementCollection:BaseAdd(System.Configuration.ConfigurationElement,bool,bool):this (0 base, 1 diff methods)
Top method regressions (percentages):
28 (254.55% of base) : System.Net.Requests.dasm - System.Net.FileWebResponse:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this
28 (254.55% of base) : System.Security.Cryptography.X509Certificates.dasm - System.Security.Cryptography.X509Certificates.X509Certificate2:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this
28 (121.74% of base) : System.Net.Requests.dasm - System.Net.HttpWebResponse:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (0 base, 1 diff methods)
13 (50.00% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Microsoft.CodeAnalysis.VisualBasic.OverloadResolution:.ctor():this
6 (30.00% of base) : Microsoft.CodeAnalysis.VisualBasic.dasm - Microsoft.CodeAnalysis.VisualBasic.Conversions:.ctor():this (1 base, 0 diff methods)
9 (27.27% of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlDictionaryReader:ReadValueAsBase64(System.Byte[],int,int):int:this
9 (27.27% of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlDictionaryReader:EndCanonicalization():this
9 (27.27% of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlDictionaryReader:StartCanonicalization(System.IO.Stream,bool,System.String[]):this (1 base, 0 diff methods)
9 (27.27% of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlDictionaryWriter:EndCanonicalization():this (1 base, 0 diff methods)
9 (27.27% of base) : System.Private.DataContractSerialization.dasm - System.Xml.XmlDictionaryWriter:StartCanonicalization(System.IO.Stream,bool,System.String[]):this
9 (27.27% of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlObjectSerializer:InternalWriteStartObject(System.Runtime.Serialization.XmlWriterDelegator,System.Object):this (1 base, 0 diff methods)
9 (27.27% of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlObjectSerializer:InternalIsStartObject(System.Runtime.Serialization.XmlReaderDelegator):bool:this (1 base, 0 diff methods)
9 (27.27% of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlObjectSerializer:InternalWriteEndObject(System.Runtime.Serialization.XmlWriterDelegator):this
9 (27.27% of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlObjectSerializer:InternalWriteObjectContent(System.Runtime.Serialization.XmlWriterDelegator,System.Object):this
27 (20.93% of base) : System.Net.Requests.dasm - System.Net.FileWebRequest:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this
20 (19.80% of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.XmlReaderDelegator:CheckActualArrayLength(int,int,System.Xml.XmlDictionaryString,System.Xml.XmlDictionaryString):this
13 (18.84% of base) : System.Private.DataContractSerialization.dasm - System.Runtime.Serialization.CollectionDataContract:GetValidContract(int):System.Runtime.Serialization.DataContract:this
6 (18.18% of base) : System.Collections.Specialized.dasm - System.Collections.Specialized.NameObjectCollectionBase:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this
6 (18.18% of base) : System.Net.Security.dasm - System.Security.Authentication.ExtendedProtection.ExtendedProtectionPolicy:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (1 base, 0 diff methods)
6 (18.18% of base) : System.Net.WebProxy.dasm - System.Net.WebProxy:.ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext):this (0 base, 1 diff methods)
Top method improvements (percentages):
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.NameNode:Eval():System.Object:this (1 base, 0 diff methods)
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.LookupNode:Eval():System.Object:this
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.DataViewManager:System.Collections.IList.RemoveAt(int):this
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.DataViewManager:System.Collections.IList.Remove(System.Object):this (0 base, 1 diff methods)
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.DataViewManager:System.Collections.IList.Insert(int,System.Object):this
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.DataViewManager:System.Collections.IList.Clear():this
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.DataViewManager:System.Collections.IList.Add(System.Object):int:this (0 base, 1 diff methods)
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.DataViewManager:System.Collections.IList.set_Item(int,System.Object):this
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.DataView:System.Collections.IList.Insert(int,System.Object):this
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.DataView:System.Collections.IList.Clear():this (1 base, 0 diff methods)
-79 (-79.80% of base) : System.Data.Common.dasm - System.Data.DataView:System.Collections.IList.set_Item(int,System.Object):this
-76 (-79.17% of base) : System.Data.OleDb.dasm - System.Data.ProviderBase.DbConnectionClosed:CreateReferenceCollection():System.Data.ProviderBase.DbReferenceCollection:this
-76 (-79.17% of base) : System.Data.OleDb.dasm - System.Data.ProviderBase.DbConnectionClosed:GetSchema(System.Data.ProviderBase.DbConnectionFactory,System.Data.ProviderBase.DbConnectionPoolGroup,System.Data.Common.DbConnection,System.String,System.String[]):System.Data.DataTable:this (0 base, 1 diff methods)
-76 (-79.17% of base) : System.Data.OleDb.dasm - System.Data.ProviderBase.DbConnectionClosed:EnlistTransaction(System.Transactions.Transaction):this (1 base, 0 diff methods)
-76 (-79.17% of base) : System.Data.OleDb.dasm - System.Data.ProviderBase.DbConnectionClosed:Deactivate():this (0 base, 1 diff methods)
-76 (-79.17% of base) : System.Data.OleDb.dasm - System.Data.ProviderBase.DbConnectionClosed:BeginTransaction(int):System.Data.Common.DbTransaction:this
-76 (-79.17% of base) : System.Data.OleDb.dasm - System.Data.ProviderBase.DbConnectionClosed:Activate(System.Transactions.Transaction):this
-76 (-79.17% of base) : System.Data.OleDb.dasm - System.Data.ProviderBase.DbConnectionClosed:get_ServerVersion():System.String:this (0 base, 1 diff methods)
-79 (-73.83% of base) : System.Data.Common.dasm - System.Data.DataSet:FailedEnableConstraints():this
-54 (-72.97% of base) : System.Data.Common.dasm - DbColumnDescriptor:SetValue(System.Object,System.Object):this (1 base, 0 diff methods)
10534 total methods with Code Size differences (10138 improved, 396 regressed), 236135 unchanged.
34 files had text diffs but no metric diffs.
CommandLine.dasm had 164898 diffs
System.IO.Pipelines.dasm had 49698 diffs
Microsoft.Diagnostics.FastSerialization.dasm had 39820 diffs
Microsoft.Extensions.Options.dasm had 30338 diffs
Microsoft.Extensions.FileSystemGlobbing.dasm had 22872 diffs
xunit.performance.metrics.dasm had 20306 diffs
System.ComponentModel.Primitives.dasm had 16656 diffs
Microsoft.Extensions.Hosting.dasm had 15186 diffs
xunit.performance.execution.dasm had 13954 diffs
System.Web.HttpUtility.dasm had 10516 diffs
Microsoft.Extensions.Caching.Abstractions.dasm had 7178 diffs
Microsoft.Extensions.Logging.EventSource.dasm had 7142 diffs
System.Utf8String.Experimental.dasm had 5432 diffs
Microsoft.Extensions.Hosting.Abstractions.dasm had 4840 diffs
OSExtensions.dasm had 4254 diffs
runincontext.dasm had 4172 diffs
Microsoft.Extensions.Configuration.FileExtensions.dasm had 4122 diffs
xunit.performance.core.dasm had 4004 diffs
Microsoft.Win32.Registry.AccessControl.dasm had 3494 diffs
System.Diagnostics.FileVersionInfo.dasm had 3366 diffs
Completed analysis in 171.26s
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment