Egor Bogatov
Egor Bogatov
I've analyzed a couple of memory snapshots using dotMemory and it feels to me that `String.InternalSubString` is the main source of duplicated strings on the heap, e.g. total heap statistics...
A similar trick is used for `IndexOf(string, OrdinalIgnoreCase)` see [here](https://github.com/dotnet/runtime/blob/e43e31527db9f1a2dde3095a1651279b272c8c09/src/libraries/System.Private.CoreLib/src/System/Globalization/Ordinal.cs#L256-L261). Benchmark: ```csharp using BenchmarkDotNet.Attributes; using BenchmarkDotNet.Running; BenchmarkSwitcher.FromAssembly(typeof(Benchmarks).Assembly).Run(args); public class Benchmarks { const string TestStr = ".NET Runtime uses third-party libraries...
This PR enables `DOTNET_JitDisasm` for Release config. It doesn't print lcl tables, EH and gc info (for now). Adds ~30kb to the binary size of jit. The only noticeable impact...
This PR implements @jkotas's idea in https://github.com/dotnet/runtime/issues/70410#issuecomment-1149874663 when `DOTNET_TieredPGO` is enabled (it's off by default and will be so in .NET 7.0) > 1) Use R2R code for process startup...
SDL layer should handle SwapChainControl events instead of CoreWindow.
UrhoSharp.UWP supports only x86 at the moment.
Currently SharpieBinder only supports macOS, so the bindings can be re-generated only on that OS. If we compile 'mono-clang' for Linux, it will allow us to generate bindings on Linux...
Let me explain it via a code snippet: ``` var node = new Node(); scene.Remove(node); scene.Add(node); // Boom! Exception - underlying native object was deleted. ``` Now let's analyze it...
ref-related features in C# 7.2 basically allow to avoid redundant allocations without unsafe code. So we should revise our API and find places where we can apply such optimization or...
Let's see if my assumptions were correct. Closes https://github.com/dotnet/runtime/issues/75815 ```csharp // isinst bool IsArrayOfStrings(object o) => o is string[]; // castclass void CastToArrayOfString(IEnumerable e) => Consume((string[])e); [MethodImpl(MethodImplOptions.NoInlining)] void Consume(string[] str)...