El desarrollador Martin Finkel realizó una comparación de rendimiento entre C y C# portando un filtro de vídeo específico —el desenfoque gaussiano— del reproductor multimedia VLC. El experimento tenía como objetivo determinar si la naturaleza gestionada de C# y su recolector de basura dificultarían significativamente el rendimiento en comparación con C, que es el lenguaje nativo de VLC. Para garantizar una comparación justa, Finkel creó una versión en C# línea por línea que utilizaba los mismos bucles, aritmética de enteros y punteros crudos que la implementación original en C. La versión en C# se compiló utilizando .NET Native AOT, lo que le permitió ejecutarse como un complemento DLL nativo dentro de VLC.

El desarrollador Martin Finkel realizó una comparación de rendimiento entre C y C# portando un filtro de vídeo específico —el desenfoque gaussiano— del reproductor multimedia VLC.
Los resultados iniciales mostraron una clara brecha de rendimiento: la versión en C# tardaba aproximadamente un 23% más por fotograma que el código original en C. El análisis del código de máquina reveló que el compilador .NET RyuJIT emitía más instrucciones que el compilador Clang, específicamente al recalcular los límites de los bucles y mantener las sumas en memoria en lugar de en registros. Sin embargo, al realizar dos pequeños ajustes —elevar los límites de los bucles a variables locales y usar `nint` para los índices para evitar conversiones de 32 a 64 bits— el rendimiento de la versión en C# mejoró hasta situarse dentro del 8% de la versión en C. Esto demostró que gran parte de la diferencia de rendimiento se debía a cómo el compilador manejaba constructos específicos de C# en lugar de limitaciones inherentes del lenguaje.

Los resultados iniciales mostraron una clara brecha de rendimiento donde la versión en C# tardaba aproximadamente un 23% más por fotograma que el código original en C.
En rondas posteriores de optimización, ambas versiones mejoraron mediante refinamientos algorítmicos como reemplazar la división por multiplicación, optimizar los patrones de acceso a memoria y utilizar la simetría de la curva de campana gaussiana. En la ronda final de 'ajuste', ambas versiones utilizaron instrucciones AVX2 SIMD para lograr aceleraciones masivas, con la versión en C# funcionando casi a la par con C. Finkel concluyó que, si bien C sigue siendo la opción superior para el último 10% de rendimiento, C# es una opción altamente viable y productiva para complementos de VLC limitados por la CPU, siempre que los desarrolladores tengan en cuenta las formas específicas en que el compilador .NET optimiza su código. El experimento se llevó a cabo en un clip de 1080p utilizando un procesador Intel Core i7 de 11.ª generación.

En rondas posteriores de optimización, ambas versiones mejoraron mediante refinamientos algorítmicos como reemplazar la división por multiplicación.

En la ronda final de 'ajuste', ambas versiones utilizaron instrucciones AVX2 SIMD para lograr aceleraciones masivas, con la versión en C# funcionando casi a la par con C.