Záznam z přednášky pro konferenci TechEd Praha 2025, kde jsem ukazoval některé zajímavé aspekty výkonnosti Blazor (WebAssembly) aplikací.
Tag Archives: Performance
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.
- https://github.com/hakenr/CSharp9Demo – dema
- 2020-05-05 – TechEd Online – C# 9.0 a .NET 5 – slides [PDF]
[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.