Articles of performance

Impact sur les performances du passage aux interfaces génériques

Je travaille sur des applications développées en C # / .NET avec Visual Studio. Très souvent, ReSharper, dans les prototypes de mes méthodes, me conseille de remplacer le type de mes parameters d’entrée par des parameters plus génériques. Par exemple, List with IEnumerable si j’utilise uniquement la liste avec un foreach dans le corps de […]

Puis-je comparer le code IL pour déterminer quelle technique est la plus rapide ou la meilleure?

Contexte Cette question m’a fait penser à quelque chose. Dernièrement, depuis que je regarde la fonctionnalité IL de linq pad , je compare le code IL de deux approches du même problème pour “déterminer” laquelle est la meilleure. En utilisant la question liée à la conversion d’un tableau, j’ai généré le code IL pour les […]

FPS extrêmement bas, quelle application de profilage dois-je utiliser pour résoudre les problèmes de performances?

Je crée un jeu XNA et j’obtiens un résultat inattendu, des FPS extrêmement faibles (environ 2 à 12 images par seconde). Quel programme devrais-je utiliser pour tester les performances et détecter ce qui le ralentit?

L’application WPF se bloque / se bloque après la première interaction, comme le clic d’un bouton

Je rencontre actuellement un problème dans WPF. L’interface utilisateur se charge bien, mais chaque fois que la première interaction utilisateur est effectuée, telle qu’un clic sur un bouton, l’application semble stagner ou, par exemple, si j’avais deux boutons affichant un MessageBox, le premier clic attendra quelques secondes MessageBox, mais toute interaction ultérieure est instantanée et […]

Enum.Parse () ou Switch

Pour convertir une chaîne en une énumération, laquelle des méthodes suivantes est la meilleure? Ce code: colorEnum color = (colorEnum)Enum.Parse(typeof(colorEnum), “Green”); ou ca: ssortingng colorSsortingng = … colorEnum color; switch (colorSsortingng) { case “Green”: color = colorEnum.Green; break; case “Red”: color = colorEnum.Red; break; case “Orange”: color = colorEnum.Orange; break; …. }

La requête LINQ est lente

Lors du profilage de l’application, j’ai constaté que la vérification de la correspondance de modèle est très lente. Il est écrit en utilisant LINQ. Le simple remplacement de cette expression LINQ par une boucle fait toute la différence. Qu’Est-ce que c’est? Est-ce que LINQ est vraiment une si mauvaise chose et fonctionne si lentement ou […]

.Net TableLayoutPanel – L’effacement des contrôles est très lent

C’est vraiment simple. J’ai un TableLayoutPanel qui est rempli avec des contrôles (juste des étiquettes, des boutons et des panneaux avec des boutons) basés sur une requête de firebase database. Lorsque les données doivent être actualisées, j’utilise TableLayoutPanel.Controls.Clear (). Malheureusement, cette opération est très lente. Je m’attendrais à ce qu’il soit plus rapide que le […]

Nombre variable d’arguments sans encaisser les types de valeur?

public void DoSomething(params object[] args) { // … } Le problème avec la signature ci-dessus est que chaque type de valeur qui sera passé à cette méthode sera mis en boîte de manière implicite, ce qui est un grave problème de performances pour moi. Existe-t-il un moyen de décliner une méthode qui accepte un nombre […]

Performance: BinaryFormatter vs. XmlSerializer

Je lis très souvent que BinaryFormatter a de meilleures performances que XmlSerializer. Par curiosité, j’ai écrit une application test. un moment wtf … pourquoi le XML est-il tellement plus rapide que Bin (surtout la désérialisation) using System; using System.Collections.Generic; using System.Runtime.Serialization; using System.Xml.Serialization; using System.Runtime.Serialization.Formatters.Binary; using System.IO; namespace SerPlayground { class Program { static void […]

Convertir une requête linq IQueryable en IEnumerable annule la manière optimisée de linq de fonctionner?

Je suis un peu novice sur .NET, et je me demandais comment fonctionne linq, car on peut exécuter plusieurs requêtes linq, l’une après l’autre, mais aucune d’entre elles n’est réellement exécutée jusqu’à ce qu’elle soit utilisée pour transférer des informations ou convertie en liste, etc. Il existe deux moyens importants d’obtenir une requête linq, en […]