Wysoce wydajny C++. Opanuj sztukę optymalizowania działania kodu. Wydanie II
- Autorzy:
- Bjorn Andrist, Viktor Sehr
- Ocena:
- 5.5/6 Opinie: 2
- Stron:
- 448
- Druk:
- oprawa miękka
- Dostępne formaty:
-
PDFePubMobi
Opis ebooka: Wysoce wydajny C++. Opanuj sztukę optymalizowania działania kodu. Wydanie II
Dzisiejszy C++ jest wyjątkowym językiem programowania. Umożliwia pisanie zwięzłego, stabilnego kodu, który można zoptymalizować pod kątem wydajności w niespotykanym dotychczas stopniu. Język C++ w ciągu ostatnich lat został unowocześniony. W standardzie C++ 20 znalazło się sporo mechanizmów, które pozwalają osiągnąć wysoką efektywność kodu, a równocześnie uprzyjemniają programiście pracę. Poprawiono także ustawienia domyślne kompilatora. To wszystko sprawia, że wielu profesjonalistów wybiera właśnie C++, gdy chce uzyskać kod o wyjątkowej wydajności.
Ta książka jest drugim, zaktualizowanym i uzupełnionym wydaniem przewodnika dla programistów. Rozpoczyna się od szczegółowego wprowadzenia do nowoczesnego C++ z uwzględnieniem technik eliminowania wąskich gardeł w kodzie bazowym. Następnie omówiono zagadnienia optymalizacji struktur danych i zarzadzania pamięcią. Przedstawiono również tematykę algorytmów, zasady pisania czytelnego kodu i stosowania niestandardowych iteratorów. Zamieszczono w niej też praktyczne przykłady używania metaprogramowania w języku C++, korutyn, refleksji (do ograniczenia ilości szablonowego kodu), obiektów pośredniczących (do wprowadzania ukrytych optymalizacji), programowania współbieżnego i struktur danych wolnych od blokad. W końcowej części dokonano przeglądu algorytmów równoległych w C++.
W książce między innymi:
- nowe aspekty C++ 20
- wyspecjalizowane struktury danych na potrzeby wydajnego kodu
- metaprogramowanie i niestandardowe zarządzanie pamięcią
- mechanizm refleksji i programowanie współbieżne bez używania blokad
- subtelne optymalizacje algorytmów z biblioteki standardowej C++
- leniwe generatory i zadania asynchroniczne
Twórz wydajny i czysty kod w C++!
Przedmowa: Ben Garney, CEO firmy The Engine Company
Wysoce wydajny C++. Opanuj sztukę optymalizowania działania kodu. Wydanie II, to przewodnik po optymalizowaniu wydajności aplikacji pisanych w języku C++. Dzięki optymalizacji wydajności aplikacje zaczną działać szybciej i będą zużywać mniej zasobów urządzeń, na których są uruchamiane, i to bez spadku czytelności kodu bazowego.
Książka rozpoczyna się od krótkiego wprowadzenia do języka C++ i niektórych jego nowoczesnych aspektów. Po zapoznaniu się z podstawami będziesz gotowy na pomiar, identyfikowanie i eliminowanie wąskich gardeł w kodzie bazowym w języku C++. Dzięki zastosowaniu opisanego procesu stopniowo poprawisz styl pisania kodu. Dalej w książce omówione są: optymalizacja struktury danych, zarzadzanie pamięcią i wydajne korzystanie z pamięci podręcznej procesora.
Po podstawach w książce przestawione są: korzystanie z algorytmów, zakresów i kontenerów z biblioteki standardowej w celu szybszego wykonywania kodu, pisanie czytelnego kodu i stosowanie niestandardowych iteratorów. Znajdziesz tu praktyczne przykłady używania metaprogramowania w języku C++, korutyn, refleksji (do ograniczenia ilości szablonowego kodu), obiektów pośredniczących (do wprowadzania ukrytych optymalizacji), programowania współbieżnego i struktur danych wolnych od blokad. Książka kończy się przeglądem algorytmów równoległych.
Dzięki lekturze tej książki nauczysz się posługiwać narzędziami niezbędnymi do zwiększenia wydajności projektów rozwijanych w języku C++.
Zagadnienia, których się nauczysz:
- Pisanie wyspecjalizowanych struktur danych na potrzeby kodu, w którym wydajność odgrywa krytyczną rolę
- Stosowanie nowoczesnych technik metaprogramowania w celu ograniczenia ilości obliczeń w czasie wykonywania programu
- Wydajne zarządzanie pamięcią dzięki niestandardowym alokatorom pamięci
- Ograniczanie ilości szablonowego kodu za pomocą refleksji
- Czerpanie korzyści z programowania współbieżnego bez używania blokad
- Subtelne optymalizacje stosowane w algorytmach z biblioteki standardowej
- Łączenie algorytmów za pomocą biblioteki Ranges
- Aspekty metaprogramowania takie jak modyfikator constexpr, ograniczenia i koncepty
- Implementowanie leniwych generatorów i zadań asynchronicznych za pomocą korutyn ze standardu C++20
Wybrane bestsellery
-
C++ High Performance, Second Edition enables you to measure and identify bottlenecks in the code and eradicate them to amplify your application’s working speed without compromising the readability of your C++ codebase
C++ High Performance. Master the art of optimizing the functioning of your C++ code - Second Edition C++ High Performance. Master the art of optimizing the functioning of your C++ code - Second Edition
-
C++ is a highly portable language and can be used to write both large-scale applications and performance-critical code. It has evolved over the last few years to become a modern and expressive language. This book will guide you through optimizing the performance of your C++ apps by allowing them ...
C++ High Performance. Boost and optimize the performance of your C++17 code C++ High Performance. Boost and optimize the performance of your C++17 code
-
Jeśli zastanawiasz się nad karierą programisty lub już się przygotowujesz do tego, by zostać koderem, poważnie rozważ naukę języka C++. Zaprojektowany w latach 80. XX wieku przez duńskiego informatyka Bjarne Stroustrupa C++ rozszerza język C o obiektowe mechanizmy abstrakcji danych i silną statyc...
C++ w zadaniach. Kurs video. Techniki rozwiązywania złożonych zagadnień C++ w zadaniach. Kurs video. Techniki rozwiązywania złożonych zagadnień
(39.90 zł najniższa cena z 30 dni)51.60 zł
129.00 zł(-60%) -
Znajomość C++ otwiera więc drzwi do kreowania cyfrowego świata w różnych dziedzinach. Jednakże początki z C++ mogą stanowić wyzwanie i wywoływać pytania, jak się uczyć, aby robić postępy, i w jaki sposób uporządkować zdobytą wiedzę. Cóż, nie ma lepszej metody niż nauka poprzez praktykę! Przed Tob...(41.40 zł najniższa cena z 30 dni)
48.30 zł
69.00 zł(-30%) -
Szkolenie, które dziś proponujemy, pozwoli Ci się zaprzyjaźnić z językiem programowania C++ – najpierw przyjrzeć mu się z pozycji kompletnego laika, potem poznać nieco bliżej i wreszcie naprawdę zaprzyjaźnić. Autor kursu bowiem twierdzi, że choć większość osób jako pierwszy język programowa...
Podstawy C++. Kurs video. Praktyczne podejście do rozwiązywania zadań Podstawy C++. Kurs video. Praktyczne podejście do rozwiązywania zadań
(39.90 zł najniższa cena z 30 dni)64.50 zł
129.00 zł(-50%) -
Autor tego zbioru zadań jest programistą i nauczycielem. To prawdziwy pasjonat programowania ― w tym w języku C++ ― które traktuje jak przedłużenie ludzkiej mowy. Uważa, że praktycznie na wszystko, co robimy w życiu, można spojrzeć jak na wykonywanie funkcji i algorytmów, które opisuj...(22.20 zł najniższa cena z 30 dni)
25.90 zł
37.00 zł(-30%) -
Jeśli zależy Ci na tym, aby zdobyć rzetelną wiedzę i perfekcyjne umiejętności programowania z użyciem języka C++, powinieneś uczyć się od wybitnego eksperta i twórcy tego języka — Bjarne Stroustrupa, który jako pierwszy zaprojektował i zaimplementował C++. Podręcznik, który trzymasz w ręku,...
Programowanie. Teoria i praktyka z wykorzystaniem C++. Wydanie III Programowanie. Teoria i praktyka z wykorzystaniem C++. Wydanie III
(39.90 zł najniższa cena z 30 dni)74.50 zł
149.00 zł(-50%) -
Nie pamiętasz jakiegoś algorytmu? Nie wiesz, jaką strukturę danych należy zastosować? Nie masz pojęcia, jak wyznaczyć złożoność obliczeniową algorytmu? Nie martw się, Twoje problemy należą już do przeszłości! Tablice informatyczne. Algorytmy pozwolą Ci szybko odnaleźć i przypomnieć sobie podstawo...(6.90 zł najniższa cena z 30 dni)
8.49 zł
17.00 zł(-50%) -
Tablice informatyczne. C++" zawierają zestawienie najpotrzebniejszych informacji dotyczących języka C++. Każdy programista doceni je, gdy podczas pracy nie będzie miał czasu na wertowanie kilkunastu książek.(6.45 zł najniższa cena z 30 dni)
6.45 zł
12.90 zł(-50%) -
Unlock your architectural visualization potential with this comprehensive guide to UE5. Learn best practices, advanced techniques, and hands-on exercises for photorealistic real-time 3D environments. Ideal for beginners to experienced professionals.
Architectural Visualization in Unreal Engine 5. Create photorealistic architectural interior renderings in UE5 Architectural Visualization in Unreal Engine 5. Create photorealistic architectural interior renderings in UE5
O autorach ebooka
Björn Andrist jest konsultantem i doświadczonym programistą C++. Tworzył kod uniksowych serwerów aplikacji oraz aplikacji audio dla komputerów stacjonarnych i urządzeń mobilnych. Prowadził kursy z zakresu algorytmów, struktur danych i programowania współbieżnego.
Viktor Sehr jest głównym programistą w firmie Toppluva AB produkującej gry. Od kilkunastu lat programuje w C++. Zajmował się oprogramowaniem do wizualizacji medycznej oraz aplikacjami audio.
Zobacz pozostałe książki z serii Packt
-
Oto kompleksowe omówienie sposobów wdrażania najnowszych dostępnych środków zabezpieczających systemy linuksowe. Z książki dowiesz się, jak skonfigurować laboratorium do ćwiczeń praktycznych, tworzyć konta użytkowników z odpowiednimi poziomami uprawnień, chronić dane dzięki uprawnieniom i szyfrow...
Bezpieczeństwo systemu Linux. Hardening i najnowsze techniki zabezpieczania przed cyberatakami. Wydanie III Bezpieczeństwo systemu Linux. Hardening i najnowsze techniki zabezpieczania przed cyberatakami. Wydanie III
(77.40 zł najniższa cena z 30 dni)90.30 zł
129.00 zł(-30%) -
Ta książka pomoże Ci w doskonaleniu umiejętności potrzebnych na każdym etapie dochodzenia cyfrowego, od zbierania dowodów, poprzez ich analizę, po tworzenie raportów. Dzięki wielu wskazówkom i praktycznym ćwiczeniom przyswoisz techniki analizy, ekstrakcji danych i raportowania przy użyciu zaawans...
Informatyka śledcza i Kali Linux. Przeprowadź analizy nośników pamięci, ruchu sieciowego i zawartości RAM-u za pomocą narzędzi systemu Kali Linux 2022.x. Wydanie III Informatyka śledcza i Kali Linux. Przeprowadź analizy nośników pamięci, ruchu sieciowego i zawartości RAM-u za pomocą narzędzi systemu Kali Linux 2022.x. Wydanie III
(59.40 zł najniższa cena z 30 dni)69.30 zł
99.00 zł(-30%) -
Oto uzupełnione i zaktualizowane wydanie bestsellerowego przewodnika dla inżynierów sieci. Dzięki niemu przejdziesz trudną (ale ekscytującą!) drogę od tradycyjnej platformy do platformy sieciowej opartej na najlepszych praktykach programistycznych. Zaczniesz od zagadnień podstawowych, aby następn...
Zaawansowana inżynieria sieci w Pythonie. Automatyzacja, monitorowanie i zarządzanie chmurą. Wydanie IV Zaawansowana inżynieria sieci w Pythonie. Automatyzacja, monitorowanie i zarządzanie chmurą. Wydanie IV
(77.40 zł najniższa cena z 30 dni)90.30 zł
129.00 zł(-30%) -
Oto zaktualizowane wydanie bestsellerowego przewodnika dla architektów rozwiązań. Dzięki niemu dobrze poznasz wzorce projektowe wbudowane w chmurę, czyli model AWS Well-Architected Framework. Zaznajomisz się z sieciami w chmurze AWS z uwzględnieniem sieci brzegowych i tworzeniem hybrydowych połąc...
AWS dla architektów rozwiązań. Tworzenie, skalowanie i migracja aplikacji do chmury Amazon Web Services. Wydanie II AWS dla architektów rozwiązań. Tworzenie, skalowanie i migracja aplikacji do chmury Amazon Web Services. Wydanie II
Saurabh Shrivastava, Neelanjali Srivastav, Alberto Artasanchez, Imtiaz Sayed
(83.40 zł najniższa cena z 30 dni)97.30 zł
139.00 zł(-30%) -
Ten szczegółowy przewodnik pozwoli Ci na błyskawiczne zapoznanie się z .NET MAUI i sprawne rozpoczęcie pisania aplikacji za pomocą tej technologii. Zaprezentowano w nim filozofię działania .NET MAUI, jak również przebieg prac nad tworzeniem kompletnej aplikacji wieloplatformowej dla systemów: And...
Projektowanie aplikacji w .NET MAUI. Jak budować doskonałe interfejsy użytkownika dla aplikacji wieloplatformowych Projektowanie aplikacji w .NET MAUI. Jak budować doskonałe interfejsy użytkownika dla aplikacji wieloplatformowych
(47.40 zł najniższa cena z 30 dni)55.30 zł
79.00 zł(-30%) -
Ta książka szczególnie przyda się osobom, które rozpoczynają pracę z Angularem. Dzięki niej szybko zaczniesz tworzyć aplikacje z wykorzystaniem wiersza poleceń (CLI), pisać testy jednostkowe i używać stylów zgodnych ze standardem Material Design. Dowiesz się również, jak wdrażać aplikacje w środo...
Poznaj Angular. Rzeczowy przewodnik po tworzeniu aplikacji webowych z użyciem frameworku Angular 15. Wydanie IV Poznaj Angular. Rzeczowy przewodnik po tworzeniu aplikacji webowych z użyciem frameworku Angular 15. Wydanie IV
(53.40 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Oto praktyczny, przystępnie napisany przewodnik, który stanowi wprowadzenie do pracy z technologią Blazor. Opisuje możliwości modeli Server i WebAssembly, przedstawia także krok po kroku proces powstawania aplikacji internetowej. Dzięki temu płynnie przejdziesz do tworzenia projektów Blazor, nauc...
Platforma Blazor. Praktyczny przewodnik. Jak tworzyć interaktywne aplikacje internetowe z C# i .NET 7. Wydanie II Platforma Blazor. Praktyczny przewodnik. Jak tworzyć interaktywne aplikacje internetowe z C# i .NET 7. Wydanie II
(41.40 zł najniższa cena z 30 dni)48.30 zł
69.00 zł(-30%) -
To książka przeznaczona dla profesjonalnych administratorów i użytkowników Linuksa. Dzięki niej szybciej zrozumiesz, w jakim stopniu dobre zarządzanie systemami na poziomie systemu operacyjnego może wynieść działanie infrastruktury biznesowej na zupełnie inny poziom. Znajdziesz tu najlepsze prakt...
Linux dla admina. Najlepsze praktyki. O czym pamiętać podczas projektowania i zarządzania systemami Linux dla admina. Najlepsze praktyki. O czym pamiętać podczas projektowania i zarządzania systemami
(53.40 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Książka stanowi wprowadzenie do pracy z funkcjami SI dostępnymi w Power BI; jest skierowana do osób znających to środowisko. Dowiesz się z niej, w jaki sposób sztuczna inteligencja może być używana w Power BI i jakie funkcje są w nim domyślnie dostępne. Nauczysz się też eksplorować i przygotowywa...
Power BI i sztuczna inteligencja. Jak w pełni wykorzystać funkcje AI dostępne w Power BI Power BI i sztuczna inteligencja. Jak w pełni wykorzystać funkcje AI dostępne w Power BI
(47.40 zł najniższa cena z 30 dni)55.30 zł
79.00 zł(-30%) -
To drugie wydanie popularnego przewodnika dla śledczych. Dzięki niemu sprawnie przygotujesz się do pracy z narzędziami kryminalistycznymi i zapoznasz się ze stosowanymi w informatyce śledczej technikami. Nauczysz się pozyskiwać informacje o podejrzanych i zabezpieczać znajdujące się w sieci dane,...
Informatyka śledcza. Gromadzenie, analiza i zabezpieczanie dowodów elektronicznych dla początkujących. Wydanie II Informatyka śledcza. Gromadzenie, analiza i zabezpieczanie dowodów elektronicznych dla początkujących. Wydanie II
(47.40 zł najniższa cena z 30 dni)55.30 zł
79.00 zł(-30%)
Ebooka "Wysoce wydajny C++. Opanuj sztukę optymalizowania działania kodu. Wydanie II" przeczytasz na:
-
czytnikach Inkbook, Kindle, Pocketbook, Onyx Boox i innych
-
systemach Windows, MacOS i innych
-
systemach Windows, Android, iOS, HarmonyOS
-
na dowolnych urządzeniach i aplikacjach obsługujących formaty: PDF, EPub, Mobi
Masz pytania? Zajrzyj do zakładki Pomoc »
Audiobooka "Wysoce wydajny C++. Opanuj sztukę optymalizowania działania kodu. Wydanie II" posłuchasz:
-
w aplikacji Ebookpoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych
-
na dowolnych urządzeniach i aplikacjach obsługujących format MP3 (pliki spakowane w ZIP)
Masz pytania? Zajrzyj do zakładki Pomoc »
Kurs Video "Wysoce wydajny C++. Opanuj sztukę optymalizowania działania kodu. Wydanie II" zobaczysz:
-
w aplikacjach Ebookpoint i Videopoint na Android, iOS, HarmonyOs
-
na systemach Windows, MacOS i innych z dostępem do najnowszej wersji Twojej przeglądarki internetowej
Szczegóły ebooka
- Tytuł oryginału:
- C++ High Performance: Master the art of optimizing the functioning of your C++ code, 2nd Edition
- Tłumaczenie:
- Tomasz Walczak
- ISBN Książki drukowanej:
- 978-83-283-9708-8, 9788328397088
- Data wydania książki drukowanej:
- 2023-02-14
- ISBN Ebooka:
- 978-83-283-9709-5, 9788328397095
- Data wydania ebooka:
- 2023-02-14 Data wydania ebooka często jest dniem wprowadzenia tytułu do sprzedaży i może nie być równoznaczna z datą wydania książki papierowej. Dodatkowe informacje możesz znaleźć w darmowym fragmencie. Jeśli masz wątpliwości skontaktuj się z nami sklep@ebookpoint.pl.
- Format:
- 165x235
- Numer z katalogu:
- 185492
- Rozmiar pliku Pdf:
- 5.5MB
- Rozmiar pliku ePub:
- 7.9MB
- Rozmiar pliku Mobi:
- 18.9MB
- Pobierz przykładowy rozdział PDF
- Przykłady na ftp
Ebook zawiera materiały dodatkowe, które możesz pobrać z serwera FTP - link znajdziesz na stronie redakcyjnej.
- Zgłoś erratę
- Serie wydawnicze: Packt
Spis treści ebooka
- Dla kogo przeznaczona jest ta książka?
- Zawartość książki
- Jak najlepiej skorzystać z tej książki?
- Pobieranie plików z przykładowym kodem
- Stosowane konwencje typograficzne
- Dlaczego C++?
- Bezkosztowe abstrakcje
- Przenośność
- Odporność
- Język C++ dzisiaj
- Porównanie C++ z innymi językami
- Konkurencyjne języki i wydajność
- Mechanizmy języka C++ niezwiązane z wydajnością
- Wady języka C++
- Biblioteki i kompilatory używane w tej książce
- Podsumowanie
- Automatyczne wykrywanie typów za pomocą słowa kluczowego auto
- Stosowanie słowa kluczowego auto w sygnaturach funkcji
- Stosowanie słowa kluczowego auto dla zmiennych
- Semantyka przenoszenia
- Tworzenie przez kopiowanie, wymienianie i przenoszenie
- Pozyskiwanie zasobów i reguła pięciu
- Zmienne nazwane i r-wartości
- Domyślna semantyka przenoszenia i reguła zera
- Stosowanie modyfikatora && do funkcji składowych klas
- Nie przenoś obiektów, jeśli kopiowanie i tak jest pomijane
- Jeśli to możliwe, stosuj przekazywanie przez wartość
- Projektowanie interfejsów z obsługą błędów
- Kontrakty
- Obsługa błędów
- Obiekty funkcyjne i wyrażenia lambda
- Podstawowa składnia lambd w języku C++
- Klauzula przechwytywania
- Przypisywanie do lambd wskaźników do funkcji języka C
- Typy lambd
- Lambdy i typ std::function
- Generyczne lambdy
- Podsumowanie
- Złożoność asymptotyczna i notacja dużego O
- Tempo wzrostu
- Zamortyzowana złożoność czasowa
- Co mierzyć i w jaki sposób?
- Aspekty wydajności
- Przyspieszanie wykonywania kodu
- Liczniki wydajności
- Testy wydajności - dobre praktyki
- Poznaj kod i znajdź hot spoty
- Profilery z instrumentacją
- Profilery z próbkowaniem
- Mikrotesty
- Prawo Amdahla
- Pułapki związane z mikrotestami
- Przykład ilustrujący mikrotesty
- Podsumowanie
- Cechy pamięci w komputerach
- Kontenery z biblioteki standardowej
- Kontenery sekwencyjne
- Kontenery asocjacyjne
- Adaptery kontenerów
- Używanie widoków
- Unikanie kopiowania dzięki typowi string_view
- Unikanie utraty informacji o długości tablic dzięki typowi std::span
- Uwagi na temat wydajności
- Zapewnianie równowagi między gwarancjami złożoności a dodatkowymi kosztami
- Znajomość i stosowanie odpowiednich funkcji API
- Tablice równoległe
- Podsumowanie
- Wprowadzenie do algorytmów z biblioteki standardowej
- Ewolucja algorytmów z biblioteki standardowej
- Rozwiązywanie codziennych problemów
- Iteratory i zakresy
- Wprowadzenie do iteratorów
- Wartość wartownika i iteratory zakońcowe
- Zakresy
- Kategorie iteratorów
- Cechy algorytmów standardowych
- Algorytmy nie zmieniają wielkości kontenera
- Algorytmy zwracające dane wyjściowe wymagają zaalokowanych danych
- Algorytmy domyślnie używają funkcji operator==() i operator<()
- W algorytmach z ograniczeniami używane są projekcje
- Algorytmy wymagają, aby operatory przenoszące nie zgłaszały wyjątków
- Algorytmy mają gwarantowaną złożoność
- Algorytmy działają równie dobrze jak analogiczne funkcje z bibliotek języka C
- Pisanie i stosowanie algorytmów generycznych
- Algorytmy niegeneryczne
- Algorytmy generyczne
- Struktury danych, które mogą być używane przez algorytmy generyczne
- Dobre praktyki
- Stosowanie algorytmów z ograniczeniami
- Sortowanie tylko tych danych, które będą pobierane
- Stosowanie algorytmów standardowych zamiast surowych pętli for
- Unikanie tworzenia kopii kontenera
- Podsumowanie
- Powody powstania biblioteki Ranges
- Ograniczenia biblioteki Algorithm
- Widoki z biblioteki Ranges
- Widoki można łączyć w łańcuch
- Widoki zakresów i adaptery zakresów
- Widoki są zakresami bez własności elementów oferującymi gwarancje złożoności
- Widoki nie modyfikują podstawowego kontenera
- Widoki można materializować do postaci kontenerów
- Widoki są przetwarzane leniwie
- Widoki z biblioteki standardowej
- Widoki dla zakresów
- Jeszcze o typach std::string_view i std::span
- Przyszłość biblioteki Ranges
- Podsumowanie
- Pamięć w komputerze
- Wirtualna przestrzeń adresowa
- Strony pamięci
- Migotanie
- Pamięć procesu
- Pamięć na stosie
- Pamięć na stercie
- Obiekty w pamięci
- Tworzenie i usuwanie obiektów
- Wyrównanie pamięci
- Dopełnienie
- Własność pamięci
- Pośrednie zarządzanie zasobami
- Kontenery
- Inteligentne wskaźniki
- Optymalizacja małych obiektów
- Niestandardowe zarządzanie pamięcią
- Tworzenie puli pamięci
- Niestandardowy alokator pamięci
- Stosowanie polimorficznych alokatorów pamięci
- Implementowanie niestandardowego zasobu pamięciowego
- Podsumowanie
- Wprowadzenie do metaprogramowania z użyciem szablonów
- Tworzenie szablonów
- Stosowanie liczb całkowitych jako parametrów szablonu
- Tworzenie specjalizacji szablonu
- Jak kompilator przetwarza funkcję szablonową?
- Skrócone szablony funkcji
- Pobieranie typu zmiennej za pomocą specyfikatora decltype
- Cechy typów
- Kategorie cech typów
- Stosowanie cech typów
- Programowanie z użyciem stałych wyrażeń
- Działanie funkcji ze słowem kluczowym constexpr w czasie wykonywania programu
- Deklarowanie funkcji natychmiastowych za pomocą słowa kluczowego consteval
- Instrukcja if constexpr
- Sprawdzanie błędów programistycznych w czasie kompilacji
- Ograniczenia i koncepty
- Szablon Point2D bez ograniczeń
- Omówienie składni ograniczeń i konceptów
- Wersja szablonu Point2D z ograniczeniami
- Dodawanie ograniczeń do kodu
- Koncepty w bibliotece standardowej
- Praktyczne przykłady metaprogramowania
- Przykład nr 1: tworzenie generycznej bezpiecznej funkcji rzutowania
- Przykład nr 2: obliczanie skrótów łańcuchów znaków w czasie kompilacji
- Podsumowanie
- Reprezentowanie wartości opcjonalnych za pomocą typu std::optional
- Opcjonalne zwracane wartości
- Opcjonalne zmienne składowe
- Unikanie pustych stanów w wyliczeniach
- Sortowanie i porównywanie wartości typu std::optional
- Kolekcje niejednorodne o stałej wielkości
- Stosowanie typu std::pair
- Typ std::tuple
- Kolekcje niejednorodne o dynamicznie zmienianej wielkości
- Typ std::variant
- Kolekcje niejednorodne z obiektami typu std::variant
- Dostęp do wartości z kontenera elementów typu VariantType
- Praktyczne przykłady
- Przykład nr 1: projekcje i operatory porównania
- Przykład nr 2: refleksja
- Podsumowanie
- Wprowadzenie do leniwego przetwarzania i obiektów pośredniczących
- Przetwarzanie leniwe i przetwarzanie zachłanne
- Obiekty pośredniczące
- Stosowanie obiektów pośredniczących do zapobiegania tworzeniu obiektów
- Porównywanie scalanych łańcuchów znaków z wykorzystaniem obiektu pośredniczącego
- Implementowanie obiektu pośredniczącego
- Modyfikator r-wartości
- Przypisywanie połączonej wartości do obiektu pośredniczącego
- Ocena wydajności
- Odraczanie obliczania kwadratów
- Prosta klasa reprezentująca wektory dwuwymiarowe
- Obliczenia matematyczne
- Implementowanie klasy LengthProxy
- Porównywanie długości za pomocą klasy LengthProxy
- Obliczanie długości za pomocą klasy LengthProxy
- Ocena wydajności
- Pomysłowe przeciążanie operatorów i obiekty pośredniczące
- Operator potoku jako metoda rozszerzająca
- Podsumowanie
- Podstawy współbieżności
- Co sprawia, że programowanie współbieżne jest trudne?
- Współbieżność a równoległość
- Porcjowanie czasu
- Współdzielona pamięć
- Sytuacja wyścigu
- Muteks
- Zakleszczenie
- Zadania synchroniczne i zadania asynchroniczne
- Programowanie współbieżne w języku C++
- Biblioteka obsługi wątków
- Dodatkowe podstawowe mechanizmy synchronizacji w standardzie C++20
- Obsługa zmiennych atomowych w języku C++
- Model dostępu do pamięci w języku C++
- Programowanie bez blokad
- Przykład: kolejka bez blokad
- Wskazówki dotyczące wydajności
- Zapobieganie rywalizacji
- Unikanie operacji blokujących
- Liczba wątków i rdzeni procesora
- Priorytety wątków
- Koligacja wątków
- Niezamierzone współdzielenie
- Podsumowanie
- Kilka przykładów uzasadniających stosowanie korutyn
- Abstrakcja reprezentująca korutyny
- Podprocedury i korutyny
- Wykonywanie podprocedur i korutyn w procesorze
- Korutyny bezstosowe i korutyny stosowe
- Czego Czytelnik nauczył się do tego miejsca?
- Korutyny w języku C++
- Co zostało uwzględnione w standardzie języka C++ (i co zostało pominięte)?
- Co sprawia, że funkcja w języku C++ jest korutyną?
- Minimalny, lecz kompletny przykład
- Alokowanie stanu korutyny
- Zapobieganie wiszącym referencjom
- Obsługa błędów
- Punkty konfiguracyjne
- Generatory
- Implementowanie generatora
- Stosowanie klasy Generator
- Praktyczny przykład zastosowania generatorów
- Wydajność
- Podsumowanie
- Jeszcze o typach awaitable
- Automatyczne punkty wstrzymywania
- Implementowanie prostego typu reprezentującego zadanie
- Obsługa zwracanych wartości i wyjątków
- Wznawianie oczekującej korutyny
- Dodawanie obsługi zadań zwracających void
- Synchroniczne oczekiwanie na ukończenie zadania
- Testowanie asynchronicznych zadań z użyciem funkcji sync_wait()
- Tworzenie nakładki na API opartym na wywołaniach zwrotnych
- Współbieżny serwer zbudowany za pomocą biblioteki Boost.Asio
- Implementowanie serwera
- Uruchamianie serwera i nawiązywanie z nim połączenia
- Co osiągnęliśmy za pomocą serwera (i czego wciąż brakuje)?
- Podsumowanie
- Znaczenie równoległości
- Algorytmy równoległe
- Ocena algorytmów równoległych
- Jeszcze o prawie Amdahla
- Implementowanie równoległego algorytmu std::transform()
- Implementowanie równoległej wersji algorytmu std::count_if()
- Implementowanie równoległej wersji algorytmu std::copy_if()
- Algorytmy równoległe z biblioteki standardowej
- Strategie wykonywania
- Obsługa wyjątków
- Dodatki i zmiany w algorytmach równoległych
- Zrównoleglanie pętli for opartej na indeksie
- Wykonywanie algorytmów w procesorze graficznym
- Podsumowanie
Przedmowa
O autorach
O korektorach merytorycznych
Wprowadzenie
Rozdział 1. Krótkie wprowadzenie do języka C++
Rozdział 2. Podstawowe techniki języka C++
Rozdział 3. Analizowanie i pomiar wydajności
Rozdział 4. Struktury danych
Rozdział 5. Algorytmy
Rozdział 6. Zakresy i widoki
Rozdział 7. Zarządzanie pamięcią
Rozdział 8. Programowanie z przetwarzaniem w czasie kompilacji
Rozdział 9. Podstawowe narzędzia
Rozdział 10. Obiekty pośredniczące i leniwe przetwarzanie
Rozdział 11. Współbieżność
Rozdział 12. Korutyny i leniwe generatory
Rozdział 13. Programowanie asynchroniczne z użyciem korutyn
Rozdział 14. Algorytmy równoległe
Helion - inne książki
-
Oto zaktualizowane wydanie popularnego przewodnika, dzięki któremu skorzystasz z ponad dwustu sprawdzonych receptur bazujących na najnowszych wydaniach bibliotek Pythona. Wystarczy, że skopiujesz i dostosujesz kod do swoich potrzeb. Możesz też go uruchamiać i testować za pomocą przykładowego zbio...
Uczenie maszynowe w Pythonie. Receptury. Od przygotowania danych do deep learningu. Wydanie II Uczenie maszynowe w Pythonie. Receptury. Od przygotowania danych do deep learningu. Wydanie II
(57.84 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Dzięki tej przystępnej książce zrozumiesz metody działania wielkich modeli językowych i techniki szkolenia modeli generatywnych. Następnie zapoznasz się z przypadkami użycia, w których ChatGPT sprawdzi się najlepiej, a w efekcie zwiększy produktywność i kreatywność. Dowiesz się też, jak wchodzić ...
Generatywna sztuczna inteligencja z ChatGPT i modelami OpenAI. Podnieś swoją produktywność i innowacyjność za pomocą GPT3 i GPT4 Generatywna sztuczna inteligencja z ChatGPT i modelami OpenAI. Podnieś swoją produktywność i innowacyjność za pomocą GPT3 i GPT4
(51.35 zł najniższa cena z 30 dni)55.30 zł
79.00 zł(-30%) -
Ta książka jest przewodnikiem dla profesjonalistów do spraw cyberbezpieczeństwa. Przedstawia podstawowe zasady reagowania na incydenty bezpieczeństwa i szczegółowo, na przykładach, omawia proces tworzenia zdolności szybkiej i skutecznej reakcji na takie zdarzenia. Zaprezentowano tu techniki infor...
Informatyka śledcza. Narzędzia i techniki skutecznego reagowania na incydenty bezpieczeństwa. Wydanie III Informatyka śledcza. Narzędzia i techniki skutecznego reagowania na incydenty bezpieczeństwa. Wydanie III
(79.20 zł najniższa cena z 30 dni)69.30 zł
99.00 zł(-30%) -
Czy wiesz, co kryje się w centrum naszej Galaktyki? Czy zastanawiasz się czasem, jak powstają czarne dziury i co one oznaczają dla naszego zrozumienia wszechrzeczy? Czy chcesz poznać tajemnice tych niesamowitych obiektów, które wykraczają poza granice wyobraźni? Jeśli tak, to bestseller Czarne dz...(47.20 zł najniższa cena z 30 dni)
41.30 zł
59.00 zł(-30%) -
To piąte, gruntownie zaktualizowane wydanie podręcznika, który doceni każdy student informatyki i inżynier oprogramowania. Książka obejmuje szeroki zakres zagadnień, od podstawowych pojęć po zaawansowaną problematykę związaną z najnowszymi trendami w systemach operacyjnych. Wyczerpująco omawia pr...(143.20 zł najniższa cena z 30 dni)
125.30 zł
179.00 zł(-30%) -
Jak sądzisz, co stanowi bazę informatyki? Od czego powinien zacząć przyszły programista? Może od opanowania jednego z najpopularniejszych języków programowania? Oczywiście mógłby od tego rozpocząć, tyle że to trochę tak, jakby uczyć się korzystać z narzędzia bez świadomości, do czego ono właściwi...
Informacja i kodowanie. Krótkie wprowadzenie z przykładami zastosowań Informacja i kodowanie. Krótkie wprowadzenie z przykładami zastosowań
(47.20 zł najniższa cena z 30 dni)41.30 zł
59.00 zł(-30%) -
Oto drugie, zaktualizowane wydanie znakomitego przewodnika dla analityków danych. Dzięki niemu dowiesz się, w jaki sposób używać języka R do importowania, przekształcania i wizualizowania danych, a także do przekazywania uzyskanych wyników analizy. Nauczysz się też rozwiązywać najczęściej występu...
Język R w data science. Importowanie, porządkowanie, przekształcanie, wizualizowanie i modelowanie danych. Wydanie II Język R w data science. Importowanie, porządkowanie, przekształcanie, wizualizowanie i modelowanie danych. Wydanie II
(103.20 zł najniższa cena z 30 dni)90.30 zł
129.00 zł(-30%) -
Książkę szczególnie docenią analitycy bezpieczeństwa, którzy chcą się zapoznać z zestawem poleceń ARM i zdobyć wiedzę umożliwiającą im efektywne korzystanie z technik inżynierii wstecznej. Poza zestawem potrzebnych poleceń znalazło się w niej mnóstwo przydatnych informacji. Znajdziesz tu przegląd...
Niebieski lis. Polecenia procesorów Arm i inżynieria wsteczna Niebieski lis. Polecenia procesorów Arm i inżynieria wsteczna
(57.84 zł najniższa cena z 30 dni)62.30 zł
89.00 zł(-30%) -
Ewolucja formularzy internetowych zaczęła się od prostych znaczników języka HTML 2.0 opublikowanego w 1993 roku. Z czasem HTML oferował bardziej zaawansowane funkcje obsługi formularzy. Późniejsze wersje, HTML4, a następnie HTML5, wprowadziły nowe typy pól, takie jak pola daty, koloru czy też adr...
Angular i formularze reaktywne. Praktyczny przewodnik Angular i formularze reaktywne. Praktyczny przewodnik
(44.85 zł najniższa cena z 30 dni)48.30 zł
69.00 zł(-30%) -
Tę książkę docenią praktycy: inżynierowie uczenia maszynowego i analitycy danych, poszukujący sposobu praktycznego zaadaptowania modeli transformacyjnych do swoich potrzeb. Autorzy skupili się na praktycznej stronie tworzenia aplikacji językowych, a w poszczególnych rozdziałach ujęto wszystkie na...
Przetwarzanie języka naturalnego z wykorzystaniem transformerów. Budowanie aplikacji językowych za pomocą bibliotek Hugging Face Przetwarzanie języka naturalnego z wykorzystaniem transformerów. Budowanie aplikacji językowych za pomocą bibliotek Hugging Face
(59.40 zł najniższa cena z 30 dni)69.30 zł
99.00 zł(-30%)
Dzieki opcji "Druk na żądanie" do sprzedaży wracają tytuły Grupy Helion, które cieszyły sie dużym zainteresowaniem, a których nakład został wyprzedany.
Dla naszych Czytelników wydrukowaliśmy dodatkową pulę egzemplarzy w technice druku cyfrowego.
Co powinieneś wiedzieć o usłudze "Druk na żądanie":
- usługa obejmuje tylko widoczną poniżej listę tytułów, którą na bieżąco aktualizujemy;
- cena książki może być wyższa od początkowej ceny detalicznej, co jest spowodowane kosztami druku cyfrowego (wyższymi niż koszty tradycyjnego druku offsetowego). Obowiązująca cena jest zawsze podawana na stronie WWW książki;
- zawartość książki wraz z dodatkami (płyta CD, DVD) odpowiada jej pierwotnemu wydaniu i jest w pełni komplementarna;
- usługa nie obejmuje książek w kolorze.
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka, którą chcesz zamówić pochodzi z końcówki nakładu. Oznacza to, że mogą się pojawić drobne defekty (otarcia, rysy, zagięcia).
Co powinieneś wiedzieć o usłudze "Końcówka nakładu":
- usługa obejmuje tylko książki oznaczone tagiem "Końcówka nakładu";
- wady o których mowa powyżej nie podlegają reklamacji;
Masz pytanie o konkretny tytuł? Napisz do nas: sklep[at]helion.pl.
Książka drukowana
Oceny i opinie klientów: Wysoce wydajny C++. Opanuj sztukę optymalizowania działania kodu. Wydanie II Bjorn Andrist, Viktor Sehr (2) Weryfikacja opinii następuję na podstawie historii zamówień na koncie Użytkownika umieszczającego opinię. Użytkownik mógł otrzymać punkty za opublikowanie opinii uprawniające do uzyskania rabatu w ramach Programu Punktowego.
(1)
(1)
(0)
(0)
(0)
(0)
więcej opinii