Tag Archives: Performance

Blazor performance – záznam a slides [TechEd Praha 2025]

Záznam z přednášky pro konferenci TechEd Praha 2025, kde jsem ukazoval některé zajímavé aspekty výkonnosti Blazor (WebAssembly) aplikací.

Slides

Blazor Performance 2 – Many components/parameters/events [Robert Haken, HAVIT Vzdělávací okénko. 10.7.2024]

Záznam ze Vzdělávacího okénka HAVIT ze 10. července 2024, kde jsem prezentoval druhý díl série na téma výkonu Blazor aplikací.

Blazor Performance 1 – Expensive data reload [Robert Haken, HAVIT Vzdělávací okénko, 17.4.2024]

Záznam ze Vzdělávacího okénka HAVIT ze 17. dubna 2024, kde jsem prezentoval první díl série na téma výkonu Blazor aplikací.

Blazor novinky v .NET 8 + Blazor Performance Tuning – záznam a slides [Robert Haken, WUG Dev Day, 4.2.2024]

Záznam ze Vzdělávacího okénka HAVIT z 8. listopadu 2023, kde jsem telegraficky představoval novinky přicházející v „.NET 8 vlně“.

Slides

Profile Guided Optimization v .NET [Jiří Činčura, Vzdělávací okénko, 22.11.2023]

Záznam ze Vzdělávacího okénka HAVIT, kde Jirka Činčura ukazoval, jaké dochází v .NET 8 k ladění výkonu za běhu pomocí PGO.

.NET Performance Tuning – záznam a dema [Robert Haken, WUG Days 2023.2 Brno]

Záznam z přednášky pro konferenci WUG Days 2023.2 Brno z 11. září 2023.

Starší provedení přednášky, kde je méně profilingu a více ukázek kódu, najdete též na YT:

Demo samotné najdete tradičně na GitHub: https://github.com/hakenr/PerformanceTuningDotnetCoreDemos

Novinky v .NET Internals – záznam, slides a dema [TechEd Praha 2021]

Záznam z přednášky pro konferenci TechEd DevCon Praha ze 19. května 2021, kde jsem povídal o novinkách v .NET Internals v těchto oblastech:

  • JIT, compilation
  • Diagnostic CLI tools
  • Memory Management, Garbage Collector
  • Performance

Konference probíhala on-line.

Dema: https://github.com/hakenr/DotNetInternalsDemo

Slides

OrderBy(e => e.NullableNavigationProperty.SomeValue) v EF Core

Při code-reviews se opakovaně setkávám se snahou ošetřit null v OrderBy/Where a v podobných LINQ extension metodách při použití EF Core. Například

 .OrderBy(e => e.BossId.HasValue ? e.Boss.LastName : String.Empty)

Je to obvykle nadbytečné, ba dokonce nežádoucí.

LINQ provider výraz nevykonává, ale překládá do SQL, takže pohodlně funguje

.OrderBy(e => e.Boss.LastName)

přestože Boss může být NULL.

Možná takový zápis v C# tahá za oči, ale spíš bych se obával tu expression pro EF Core jakkoliv komplikovat, aby z toho nevznikl nějaký složitější dotaz než je potřeba.

Konkrétně krátká podoba vytvoří SQL klauzuli

ORDER BY [e].[LastName]

a SQL si s NULL pohodlně poradí, zatímco dlouhá podoba udělá

ORDER BY CASE
    WHEN [e].[Id] IS NOT NULL THEN [e].[LastName]
    ELSE N''''
END

…což obvykle nepotřebujete a v T-SQL by vás to nejspíš nikdy nenapadalo takhle řešit.

C# 9.0 Candidates + .NET 5 – záznam, slides a dema [TechEd Praha 2019]

Záznam z přednášky pro konferenci TechEd DevCon Praha ze 5. května 2020. Konference letos probíhala on-line.

[ASP].NET [Core] Performance Tuning – záznam, slides, dema [WUG Days Brno, 14.9.2019]

Záznam z mé přednášky pro konferenci WUG Days Brno ze 14. září 2019, kde jsem ukazoval pár performance tipů z praxe:

  • String Concatenation
  • StringBuilder Capacity Preinitialization
  • Collection Capacity Preinitialization
  • Substring as Span
  • String Concat Consolidation
  • Search In Collection
  • Dictionary Pickup Redundant Checks
  • Dictionary Remove Redundant Checks
  • Collection Empty Check
  • Redundant Casting
  • Boxing Unboxing
  • Caching
  • Finalization
  • Exception Handling (Try Catch)
  • Reflection
  • Reflection – Layout Trick

Slides a dema:

Nahrávka je publikována na našem HAVIT YouTube Channelu.