© 2026 Hedgehog Software, LLC

TwitterGitHubDiscord
More
CommunitiesDocsAboutTermsPrivacy
Search
Star
Setup for Free
C#C
C#•3y ago•
60 replies
SWEETPONY

✅ How to create char[] faster?

I have following class:
[MemoryDiagnoser(true)]
public class Generator
{
    [Benchmark]
    public char[] StartGeneration1()
    {
        var random = new Random();

        Span<char> str = stackalloc char[20];

        for (var i = 0; i < 20; i++)
            str[i] = ((char)(random.Next(26) + 'a'));

        return str.ToArray();
    }

    [Benchmark]
    public char[] StartGeneration2()
    {
        var random = new Random();

        var str = new char[20];

        for (var i = 0; i < 20; i++)
            str[i] = (char)(random.Next(26) + 'a');

        return str;
    }
}
[MemoryDiagnoser(true)]
public class Generator
{
    [Benchmark]
    public char[] StartGeneration1()
    {
        var random = new Random();

        Span<char> str = stackalloc char[20];

        for (var i = 0; i < 20; i++)
            str[i] = ((char)(random.Next(26) + 'a'));

        return str.ToArray();
    }

    [Benchmark]
    public char[] StartGeneration2()
    {
        var random = new Random();

        var str = new char[20];

        for (var i = 0; i < 20; i++)
            str[i] = (char)(random.Next(26) + 'a');

        return str;
    }
}
cs

I don't understand why but second version is a little bit slower:

| Method | Mean | Error | StdDev | Gen0 | Allocated |
|----------------- |---------:|--------:|--------:|-------:|----------:|
| StartGeneration1 | 174.6 ns | 3.41 ns | 3.65 ns | 0.0143 | 136 B |
| StartGeneration2 | 170.3 ns | 3.36 ns | 6.47 ns | 0.0143 | 136 B |

why? is it possible to create char[] without allocating memory?
C# banner
C#Join
We are a programming server aimed at coders discussing everything related to C# (CSharp) and .NET.
61,871Members
Resources

Similar Threads

Was this page helpful?
Recent Announcements
Next page

Similar Threads

How to make this Faster?
C#CC# / help
2y ago
✅ How do I convert a char to ascii and ascii back to char?
C#CC# / help
3y ago
How To Catch an invalid Unicode Char
C#CC# / help
3y ago
❔ How to do faster HttpClient requests?
C#CC# / help
4y ago