SlideShare a Scribd company logo
1 of 31
45 min 
http://www.artima.com/intv/choices.html
Niezależnie dostarczane i rozwijane
• Narzędzie
• Język
• Biblioteki
Aktualizacje
• 0-Day Security – obowiązkowe i wymuszane Windows Update
• Inne – jak sobie życzymy
Dystrybucja
• OS / VS
• „Runtime”
• Nuget – jako główne narzędzie do budowy i dostarczania bibliotek.
• PCL jako (tymczasowe) rozwiązanie i droga do OneLib
• Nie wykluczanie „Nie Windows”
http://www.dotnetfoundation.org/
Core
CoreClr + CoreFx (.NET Core, obecnie prace nad 1.5)
• dotnet: kompilacja, uruchomienie, instancjonowanie, szablony
ASP.NET Core i okolice
• dnvm – zarządzanie wersjami .NET Core
• dnx – uruchamianie projektów (folderów )
• dnu – kompilacja, odzyskanie pakietów itp
• yo (yoman, z node/npm) – generator projektów
Gen1 Gen 0
• Nowe obiekty są alokowane jako generacja 0
• Obiekty z aktywnymi referencjami przetrwają odśmiecenie
• GC scala obiekty do których są referencje
• Obiekty promowane do starszej generacji
Korzeń
Sterta
Niedeterministyczny
Małe obiekty żyją krótko
duże – długo
„Z blokadą”
Serwerowy GC –
asynchroniczny; więcej niż
jeden procesor
Kliencki GC – asynchroniczny
Large Object Heap
GC w tle na serwerze
Gen0/Gen1 może być odśmiecane
podczas odśmiecania Gen2
dokumentacja
Mark
Plan
Relocate
Compact
Sweep
1
• Wątek użytkownika przekroczył budżet alokacyjny i zainicjował GC.
2
• GC woła SuspendEE by zawiesić zarządzane wątki.
3
• GC decyduje czy uruchomić GC w tle.
4
• Jeżeli tak, wątki GC są budzone; wołane RestartEE do wznowienia wątków.
5
• Zarządzane wątki kontynuują pracę podczas działania GC w tle.
6
• Jeżeli wątek użytkowy ponownie przekroczy budżet alokacyjny,
GC będzie działał na pierwszym planie) (lub –gdy wyłączymy GC w tle).
7
• GC w tle woła SuspendEE by zakończyć proces zaznaczania (Mark) a potem
woła RestartEE oraz zaczyna fazę sweep.
8
• GC w tle jest zakończone.
Multicore Garbage Collection with Local Heaps
JIT
http://blogs.msdn.com/b/dotnet/archive/tags/ryujit/
tu blog tu
LLIC JIT (LLVM)
float[] values = GetValues();
float increment = GetIncrement();
float[] result = new float[values.Length]
// Perform addition as manual loop:
for (int i = 0; i < values.Length; i++) {
values[i] += increment;
}
Vector<float> values = GetValues();
Vector<float> increment = GetIncrement();
// Perform addition as vector operation:
Vector<float> result = values + increment;
Niezwektoryzowany kod
Dzięki Vector<T>
dodaje się wiele
wartości na raz
Roslyn
Czym nie jest
dlaczego warto
Azure G4 VM: 12.6 Gbps, 36% CPU
Proces uwagi wydajnościowe
API Review Process.
Commit Messages guidance.
https://github.com/dotnet/coreclr
https://github.com/dotnet/corefx
https://github.com/dotnet/roslyn
https://www.dotnetfoundation.org/
https://dotnet.github.io/
tkopacz@microsoft.com

More Related Content

What's hot

Bezpieczeństwo danych
Bezpieczeństwo danychBezpieczeństwo danych
Bezpieczeństwo danych
Bogdan Miś
 

What's hot (12)

It od kuchni w nokaut.pl
It od kuchni w nokaut.plIt od kuchni w nokaut.pl
It od kuchni w nokaut.pl
 
Infrastructure As Code
Infrastructure As CodeInfrastructure As Code
Infrastructure As Code
 
Bezpieczeństwo danych
Bezpieczeństwo danychBezpieczeństwo danych
Bezpieczeństwo danych
 
NSOperation(Queue)
NSOperation(Queue) NSOperation(Queue)
NSOperation(Queue)
 
PHP@Docker - w produkcji
PHP@Docker - w produkcjiPHP@Docker - w produkcji
PHP@Docker - w produkcji
 
Tomasz Paszkowski - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...
Tomasz Paszkowski  - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...Tomasz Paszkowski  - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...
Tomasz Paszkowski - Loadbalancing ruchu HTTP w sieciach dostawców treści na ...
 
Ruby, Ruby on Rails 2010
Ruby, Ruby on Rails 2010Ruby, Ruby on Rails 2010
Ruby, Ruby on Rails 2010
 
Sekrety magicznego ogrodu Docker
Sekrety magicznego ogrodu DockerSekrety magicznego ogrodu Docker
Sekrety magicznego ogrodu Docker
 
(prawie) Wszystko o Tinkerze
(prawie) Wszystko o Tinkerze(prawie) Wszystko o Tinkerze
(prawie) Wszystko o Tinkerze
 
CruiseControl.rb
CruiseControl.rbCruiseControl.rb
CruiseControl.rb
 
Testowanie rozwiązań serverless z LocalStack
Testowanie rozwiązań serverless z LocalStackTestowanie rozwiązań serverless z LocalStack
Testowanie rozwiązań serverless z LocalStack
 
Barcamp 08/06/2010
Barcamp 08/06/2010Barcamp 08/06/2010
Barcamp 08/06/2010
 

Viewers also liked

Viewers also liked (6)

Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016
Konrad Kokosa - Pamięć w .NET - od ogólu do szczegółu- 4developers2016
 
4Developers: Norbert Wójtowicz- Data-Oriented Architecture
4Developers: Norbert Wójtowicz- Data-Oriented Architecture4Developers: Norbert Wójtowicz- Data-Oriented Architecture
4Developers: Norbert Wójtowicz- Data-Oriented Architecture
 
4Developers: Łukasz Łysik- Message-driven architecture with RabbitMQ
4Developers: Łukasz Łysik- Message-driven architecture with RabbitMQ4Developers: Łukasz Łysik- Message-driven architecture with RabbitMQ
4Developers: Łukasz Łysik- Message-driven architecture with RabbitMQ
 
4Developers: Krzysztof Staruch, Kamil Piechociak- Pracuj.pl - SOA zrobione (p...
4Developers: Krzysztof Staruch, Kamil Piechociak- Pracuj.pl - SOA zrobione (p...4Developers: Krzysztof Staruch, Kamil Piechociak- Pracuj.pl - SOA zrobione (p...
4Developers: Krzysztof Staruch, Kamil Piechociak- Pracuj.pl - SOA zrobione (p...
 
4Developers: Mateusz Stasch- Domain Events - czyli jak radzić sobie z rzeczyw...
4Developers: Mateusz Stasch- Domain Events - czyli jak radzić sobie z rzeczyw...4Developers: Mateusz Stasch- Domain Events - czyli jak radzić sobie z rzeczyw...
4Developers: Mateusz Stasch- Domain Events - czyli jak radzić sobie z rzeczyw...
 
4Developers: Marcin Iwanowski- WinDbg, gdy Visual Studio to za mało...
4Developers: Marcin Iwanowski- WinDbg, gdy Visual Studio to za mało...4Developers: Marcin Iwanowski- WinDbg, gdy Visual Studio to za mało...
4Developers: Marcin Iwanowski- WinDbg, gdy Visual Studio to za mało...
 

Similar to Net core (dawniej 5.0) – co to dla mnie. też dużo o open source

ansible kmonticolo bezlogo
ansible kmonticolo bezlogoansible kmonticolo bezlogo
ansible kmonticolo bezlogo
Kamil Monticolo
 

Similar to Net core (dawniej 5.0) – co to dla mnie. też dużo o open source (20)

Docker praktyczne podstawy
Docker  praktyczne podstawyDocker  praktyczne podstawy
Docker praktyczne podstawy
 
Prezentacja "Praca z Gitem" - Dawid Cieszyński OLMUG 22.01.14
Prezentacja "Praca z Gitem" - Dawid Cieszyński OLMUG 22.01.14Prezentacja "Praca z Gitem" - Dawid Cieszyński OLMUG 22.01.14
Prezentacja "Praca z Gitem" - Dawid Cieszyński OLMUG 22.01.14
 
Nie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistówNie tylko C# - Ekosystem Microsoft dla programistów
Nie tylko C# - Ekosystem Microsoft dla programistów
 
Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...
Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...
Kainos Tech Space #1 : DevOps : Artur Senk - Jenkins, najważniejsze narzędzie...
 
ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?ITAD BB 2014 - ASP.NET 5 - What's new?
ITAD BB 2014 - ASP.NET 5 - What's new?
 
Ansible w praktyce
Ansible w praktyceAnsible w praktyce
Ansible w praktyce
 
Shall we play a game? PL version
Shall we play a game? PL versionShall we play a game? PL version
Shall we play a game? PL version
 
Laravel Poznań Meetup #4 - EloquentSequence - Historia pewnej biblioteki Open...
Laravel Poznań Meetup #4 - EloquentSequence - Historia pewnej biblioteki Open...Laravel Poznań Meetup #4 - EloquentSequence - Historia pewnej biblioteki Open...
Laravel Poznań Meetup #4 - EloquentSequence - Historia pewnej biblioteki Open...
 
EloquentSequence - historia pewnej biblioteki Open Source
EloquentSequence - historia pewnej biblioteki Open SourceEloquentSequence - historia pewnej biblioteki Open Source
EloquentSequence - historia pewnej biblioteki Open Source
 
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
Jak oszczędzać czas zespołu w środowisku mikroserwisów, czyli efektywny flow ...
 
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
“Dziesięć serwerów poproszę!“, czyli co może Ci zaoferować definiowanie infra...
 
Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.Hierarchia pamięci w systemach komputerowych.
Hierarchia pamięci w systemach komputerowych.
 
ansible kmonticolo bezlogo
ansible kmonticolo bezlogoansible kmonticolo bezlogo
ansible kmonticolo bezlogo
 
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
4Developers 2015: Orleans - aplikacje, które skalują i dystrybuują się same -...
 
Programowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel ExtensionsProgramowanie Równolegle - Parallel Extensions
Programowanie Równolegle - Parallel Extensions
 
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
[WHUG] Wielki brat patrzy - czyli jak zbieramy dane o użytkownikach allegro
 
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
Code driven development w Drupalu 7 | DrupalCamp Wrocław 2014
 
Elasticsearch nie tylko dla Wielkodanowców
Elasticsearch nie tylko dla WielkodanowcówElasticsearch nie tylko dla Wielkodanowców
Elasticsearch nie tylko dla Wielkodanowców
 
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
CodiLime Tech Talk - Michał Cłapiński, Mateusz Jabłoński: Debugging faultily ...
 
Kubernetes i Docker Swarm - Tomasz Woszczynski
Kubernetes i Docker Swarm - Tomasz WoszczynskiKubernetes i Docker Swarm - Tomasz Woszczynski
Kubernetes i Docker Swarm - Tomasz Woszczynski
 

More from Tomasz Kopacz

It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyćIt w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
Tomasz Kopacz
 
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Tomasz Kopacz
 
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Tomasz Kopacz
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz
 

More from Tomasz Kopacz (17)

Azure Digital Twins.pdf
Azure Digital Twins.pdfAzure Digital Twins.pdf
Azure Digital Twins.pdf
 
24032022 Zero Trust for Developers Pub.pdf
24032022 Zero Trust for Developers Pub.pdf24032022 Zero Trust for Developers Pub.pdf
24032022 Zero Trust for Developers Pub.pdf
 
Deep dive into service fabric after 2 years
Deep dive into service fabric after 2 yearsDeep dive into service fabric after 2 years
Deep dive into service fabric after 2 years
 
O danych w 2016
O danych w 2016O danych w 2016
O danych w 2016
 
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?Visual Studio – jak zorganizować pracę używając Scrum i GIT?
Visual Studio – jak zorganizować pracę używając Scrum i GIT?
 
Visual Studio - zastosowania
Visual Studio - zastosowaniaVisual Studio - zastosowania
Visual Studio - zastosowania
 
Coś o service fabric, architekturze, i bardzo skalowalnych aplikacjach
Coś o service fabric, architekturze, i bardzo skalowalnych aplikacjachCoś o service fabric, architekturze, i bardzo skalowalnych aplikacjach
Coś o service fabric, architekturze, i bardzo skalowalnych aplikacjach
 
Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...
Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...
Kiedy napadnie na nas pralka – jak budować bezpieczne systemy internet of thi...
 
Windows 10, internet of things, komunikacja duplex od kabli do odrobiny azu...
Windows 10, internet of things, komunikacja duplex   od kabli do odrobiny azu...Windows 10, internet of things, komunikacja duplex   od kabli do odrobiny azu...
Windows 10, internet of things, komunikacja duplex od kabli do odrobiny azu...
 
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyćIt w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
It w roku 201x – dom, szkoła, potem praca. no i – jak tu (i czego!) uczyć
 
Big data on Azure for Architects
Big data on Azure for ArchitectsBig data on Azure for Architects
Big data on Azure for Architects
 
(Azure) Machine Learning 2015
(Azure) Machine Learning 2015(Azure) Machine Learning 2015
(Azure) Machine Learning 2015
 
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
Azure paa s v2 – microservices, microsoft (azure) service fabric, .apps and o...
 
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...Mts 2013   tomasz kopacz - windows 8, office 365, workflow manager, windows a...
Mts 2013 tomasz kopacz - windows 8, office 365, workflow manager, windows a...
 
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...Mts 2013   tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
Mts 2013 tomasz kopacz - wydajność aplikacji dla windows 8 - jak ją mierzyć...
 
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
Tomasz Kopacz MTS 2012 Wind RT w Windows 8 i tzw aplikacje lob (line of busin...
 
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
Tomasz Kopacz MTS 2012 Azure - Co i kiedy użyć (IaaS vs paas vshybrid cloud v...
 

Net core (dawniej 5.0) – co to dla mnie. też dużo o open source

  • 2.
  • 4.
  • 5.
  • 6.
  • 7. Niezależnie dostarczane i rozwijane • Narzędzie • Język • Biblioteki Aktualizacje • 0-Day Security – obowiązkowe i wymuszane Windows Update • Inne – jak sobie życzymy Dystrybucja • OS / VS • „Runtime” • Nuget – jako główne narzędzie do budowy i dostarczania bibliotek. • PCL jako (tymczasowe) rozwiązanie i droga do OneLib • Nie wykluczanie „Nie Windows”
  • 9.
  • 10.
  • 11.
  • 12. Core
  • 13.
  • 14. CoreClr + CoreFx (.NET Core, obecnie prace nad 1.5) • dotnet: kompilacja, uruchomienie, instancjonowanie, szablony ASP.NET Core i okolice • dnvm – zarządzanie wersjami .NET Core • dnx – uruchamianie projektów (folderów ) • dnu – kompilacja, odzyskanie pakietów itp • yo (yoman, z node/npm) – generator projektów
  • 15.
  • 16.
  • 17.
  • 18.
  • 19. Gen1 Gen 0 • Nowe obiekty są alokowane jako generacja 0 • Obiekty z aktywnymi referencjami przetrwają odśmiecenie • GC scala obiekty do których są referencje • Obiekty promowane do starszej generacji Korzeń Sterta Niedeterministyczny Małe obiekty żyją krótko duże – długo „Z blokadą” Serwerowy GC – asynchroniczny; więcej niż jeden procesor Kliencki GC – asynchroniczny Large Object Heap GC w tle na serwerze Gen0/Gen1 może być odśmiecane podczas odśmiecania Gen2
  • 20. dokumentacja Mark Plan Relocate Compact Sweep 1 • Wątek użytkownika przekroczył budżet alokacyjny i zainicjował GC. 2 • GC woła SuspendEE by zawiesić zarządzane wątki. 3 • GC decyduje czy uruchomić GC w tle. 4 • Jeżeli tak, wątki GC są budzone; wołane RestartEE do wznowienia wątków. 5 • Zarządzane wątki kontynuują pracę podczas działania GC w tle. 6 • Jeżeli wątek użytkowy ponownie przekroczy budżet alokacyjny, GC będzie działał na pierwszym planie) (lub –gdy wyłączymy GC w tle). 7 • GC w tle woła SuspendEE by zakończyć proces zaznaczania (Mark) a potem woła RestartEE oraz zaczyna fazę sweep. 8 • GC w tle jest zakończone. Multicore Garbage Collection with Local Heaps
  • 21.
  • 23. float[] values = GetValues(); float increment = GetIncrement(); float[] result = new float[values.Length] // Perform addition as manual loop: for (int i = 0; i < values.Length; i++) { values[i] += increment; } Vector<float> values = GetValues(); Vector<float> increment = GetIncrement(); // Perform addition as vector operation: Vector<float> result = values + increment; Niezwektoryzowany kod Dzięki Vector<T> dodaje się wiele wartości na raz
  • 24.
  • 26.
  • 27. dlaczego warto Azure G4 VM: 12.6 Gbps, 36% CPU
  • 28.
  • 29. Proces uwagi wydajnościowe API Review Process. Commit Messages guidance.