Wymagania: Ostatnio, patrząc na wiedzę<T> taką jak Span i Pamięć<T>, uważam, że korzystanie z takich obiektów ma wiele zalet, takich jak: bezpośredni dostęp do pamięci (i bardzo bezpieczny), zmniejszenie niepotrzebnego przydziału pamięci (w zależności od sceny, np. przechwytywanie podciągów przy konwersji ciągów znaków), modyfikacja wartości w pamięci oraz ciągłe uczenie się, choć nie tak dogłębne zrozumienie.
System.Span<T> to nowy typ wartości w rdzeniu .NET. Obsługuje reprezentację ciągłego obszaru dowolnej pamięci, niezależnie od tego, czy jest ona powiązana z obiektem zarządzanym, dostarczana przez natywny kod przez interoperację, czy znajduje się w stosie. Robi to, jednocześnie zapewniając bezpieczny dostęp, z charakterystykami wydajności podobnymi do macierzy. W użyciu Span zapewnia bezpieczeństwo pamięci i danych przy minimalnym lub żadnym najeździe.
Na przykład, jeśli użyjemy podciągu do konwersji ciągu na int, guid, long itd., nie będziemy już używać treści przechwyconego ciągu łańcuchowego, ale wywołanie Podciągu w celu zwrócenia nowego ciągu zażąda nowej przestrzeni pamięci.
Po pierwsze, wprowadzono narzędzie benchmarkingowe BenchmarkDotNet, w następujący sposób:
Kod testu jest następujący:
Wyniki są następujące:
Odniesienie:
Logowanie do linku jest widoczne.
Logowanie do linku jest widoczne.
|