Printing unicode characters is about 20x slower than usual characters #20160

Open
opened 2026-01-31 07:05:24 +00:00 by claunia · 0 comments
Owner

Originally created by @tigrouind on GitHub (Jun 28, 2023).

Windows Terminal version

1.17.11461.0

Windows build number

10.0.22621.1848

Other Software

using System;
using System.Diagnostics;

namespace ConsoleApp1
{
	internal class Program
	{
		static void Main()
		{
			Stopwatch sw = new Stopwatch();

			sw.Restart();
			for (int i = 0; i < 100; i++)
			{
				for (int j = 0; j < 100; j++)
				{
					Console.Write('.');
				}
				Console.WriteLine();
			}				
			sw.Stop();
			Console.WriteLine(sw.ElapsedMilliseconds);

			sw.Restart();
			for (int i = 0; i < 100; i++)
			{
				for (int j = 0; j < 100; j++)
				{
					Console.Write('▓');
				}
				Console.WriteLine();
			}
			sw.Stop();
			Console.WriteLine(sw.ElapsedMilliseconds);
		}
	}
}

Steps to reproduce

Print unicode characters to the console. Eg: U+2593 DARK SHADE

Here are benchmark results from C# application listed above.

Windows 11 Terminal (Ryzen 5700x / 1080TI GPU) :

Dot character : 108 ms
DARK SHADE : 2441 ms

Windows 10 command line (slower computer) :

Dot character : 311 ms
DARK SHADE : 314 ms

Expected Behavior

Rendering is just as fast as other characters

Actual Behavior

Rendering is very slow (it looks like it freeze temporarily when printing such characters).
Even after printing unicode characters, scrolling the area where they appear is slow.

Originally created by @tigrouind on GitHub (Jun 28, 2023). ### Windows Terminal version 1.17.11461.0 ### Windows build number 10.0.22621.1848 ### Other Software ```csharp using System; using System.Diagnostics; namespace ConsoleApp1 { internal class Program { static void Main() { Stopwatch sw = new Stopwatch(); sw.Restart(); for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { Console.Write('.'); } Console.WriteLine(); } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); sw.Restart(); for (int i = 0; i < 100; i++) { for (int j = 0; j < 100; j++) { Console.Write('▓'); } Console.WriteLine(); } sw.Stop(); Console.WriteLine(sw.ElapsedMilliseconds); } } } ``` ### Steps to reproduce Print unicode characters to the console. Eg: `U+2593 DARK SHADE` Here are benchmark results from C# application listed above. Windows 11 Terminal (Ryzen 5700x / 1080TI GPU) : > Dot character : 108 ms > DARK SHADE : 2441 ms Windows 10 command line (slower computer) : > Dot character : 311 ms > DARK SHADE : 314 ms ### Expected Behavior Rendering is just as fast as other characters ### Actual Behavior Rendering is very slow (it looks like it freeze temporarily when printing such characters). Even after printing unicode characters, scrolling the area where they appear is slow.
claunia added the Issue-BugResolution-Duplicate labels 2026-01-31 07:05:24 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/terminal#20160