Verleger: Helion
Wydajność i optymalizacja kodu. Istota dynamiki działania oprogramowania
Richard L. Sites
Mimo że dysponujemy coraz szybszym i wydajniejszym sprzętem, oprogramowaniu wciąż stawia się wyśrubowane wymagania: musi działać błyskawicznie i niezawodnie. Nieraz od jakości pracy systemu zależy bardzo dużo, nawet bezpieczeństwo i życie człowieka. Eliminacja źródłowych przyczyn problemów wydajnościowych jest jednak niezwykle trudnym zadaniem. Wymaga wiedzy o działaniu sprzętu, interakcjach między komponentami systemu, a także wysokiej klasy umiejętności programistycznych. Ta książka jest przeznaczona dla programistów i osób zaawansowanych w nauce programowania. Dzięki niej nauczysz się uwzględniać w projektach narzędzia do obserwacji pracy kodu i analizować uzyskane dzięki nim dane o wydajności. Dowiesz się też, jak na podstawie takiego wnioskowania uzyskiwać znaczną poprawę w szybkości przetwarzania powolnych operacji. Prezentowane treści zilustrowano przykładami i ćwiczeniami w języku C lub C++ w systemie Linux. Materiał zawarty w książce to trzy główne zagadnienia: pomiary, obserwacje, a także wnioskowanie i nanoszenie poprawek w kodzie. Wartościową częścią książki jest omówienie procesu budowy niskokosztowego narzędzia do obserwacji KUtrace i jego zastosowania we wdrażaniu wyrafinowanych rozwiązań programistycznych. W ten sposób można u źródła usuwać przyczyny problemów z wydajnością kodu. Najciekawsze zagadnienia: problemy sprzętowe: procesory, pamięci, dyski twarde, nośniki SSD i sieci korygowanie kodu wolno działającego programu przydatne mechanizmy monitorowania pracy kodu analiza danych dotyczących wydajności identyfikacja problemów, takich jak wykonywanie zbyt wielu instrukcji, powolne wykonywanie instrukcji, oczekiwanie na zasoby i blokady programowe Kod eksperta: tu każdy bit ma znaczenie!
Wydajność Javy. Szczegółowe porady dotyczące programowania i strojenia aplikacji w Javie. Wydanie II
Scott Oaks
Istnieją dwie strategie rozwiązywania problemów wydajnościowych aplikacji w Javie. Z jednej strony można wykorzystać potężne komputery i przydzielić JVM ogromne zasoby pamięci, z drugiej - w czasach ekspansji rozwiązań opartych na chmurach obliczeniowych nowe znaczenie zyskują małe, jednoprocesorowe komputery. Firmy takie jak Oracle czy Amazon udostępniają tanie serwery, na których można uruchamiać proste aplikacje. Łatwo się przekonać, jak ważne jest właściwe zarządzanie niewielką ilością pamięci w tego rodzaju środowiskach. Każdy, kto programuje w Javie, powinien dokładnie wiedzieć, jak maszyna JVM wykonuje kod i jak należy ją dostrajać, aby osiągała możliwie największą wydajność. W tej książce opisano wiele funkcjonalności, narzędzi i procedur, dzięki którym można poprawić efektywność kodu napisanego w Javie 8 i 11 LTS. Główny nacisk położono na zagadnienia istotne dla środowisk produkcyjnych, ale przedstawiono również ciekawe nowe technologie, takie jak kompilacja z wyprzedzeniem i eksperymentalne kolektory. Znalazło się tu także omówienie nowości w mechanizmie porządkowania pamięci i rejestratorze Java Flight Recorder, zaprezentowano kwestie funkcjonowania Javy w środowiskach kontenerowych, udoskonalone narzędzie JMH, kompilatory JIT, współdzielone klasy danych, narzędzia do monitorowania wydajności i wiele innych. Książkę doceni każdy inżynier zajmujący się JVM, który chce poradzić sobie z nietypowym działaniem systemu, wyciekami pamięci i problemami z jej porządkowaniem. Najciekawsze zagadnienia: platformy i kompilatory Javy a wydajność aplikacji porządkowanie pamięci zasady testowania wydajności aplikacji pakiet JDK i narzędzia do monitorowania aplikacji dostrajanie kolektora i interfejsów Java API wydajność aplikacji korzystających z baz danych "To najbardziej szczegółowy i praktyczny podręcznik na temat wydajności i strojenia maszyny JVM. Powinien go przeczytać każdy inżynier zajmujący się JVM, który kiedykolwiek zmagał się z nietypowym działaniem systemu, wyciekami pamięci i problemami z jej porządkowaniem" Rod Hilton Dostrojenie JVM: oto sekret wydajności kodu Javy!
Wyrażenia regularne. Leksykon kieszonkowy. Wydanie II
Tony Stubblebine
Poznaj wyrażenia regularne, aby wykorzystać moc ich możliwości w najpopularniejszych językach programowania! Chcesz poznać przepisy na wyrażenia regularne? Chcesz wykorzystywać możliwości Unicode w języku Ruby, Java, Perl, PHP, Pyton, C oraz .NET? Chcesz wiedzieć, jak stosować wyrażenia regularne zaimplementowane w różnych językach programowania? Wyrażenia regularne są narzędziem umożliwiającym analizę i modyfikowanie tekstu przez dopasowywanie wzorców. Są one łańcuchem znaków zawierającym kombinację normalnych znaków oraz specjalnych metaznaków i metasekwencji, a dopasowywanie wzorców polega na odszukaniu fragmentu łańcucha opisywanego przez wyrażenie regularne. Wyrażenia te znajdują zastosowanie przy sprawdzaniu wartości zmiennych, zmianie formatu, przeprowadzaniu złożonych operacji wyszukiwania oraz weryfikowaniu poprawności danych tekstowych. Książka "Wyrażenia regularne. Leksykon kieszonkowy" stanowi podręczny niezbędnik dla wszystkich piszących programy przetwarzające teksty. Oprócz zagadnień podstawowych, takich jak składnia wyrażeń regularnych oraz operacje, w których są wykorzystywane, leksykon zawiera inne niezwykle pomocne i bardziej zaawansowane informacje dotyczące na przykład narzędzi obsługi wyrażeń w języku Ruby oraz na serwerze WWW Apache. Czytając tę książkę, nie tylko zdobędziesz konkretną wiedzę, ale również niezbędne umiejętności praktyczne -- między innymi dowiesz się, jak wykorzystać znajomość wyrażeń regularnych we wszystkich środowiskach. Metaznaki, tryby oraz konstrukcje Reprezentacja i klasy znaków Komentarze i modyfikatory trybów Narzędzia obsługi wyrażeń regularnych w języku Ruby oraz na serwerze WWW Apache Operatory wyrażeń regularnych w języku Perl 5.8 Obiekty i metody do obsługi wyrażeń regularnych w języku JavaScript Funkcje obsługi wyrażeń regularnych w języku PHP i edytorze vi Obiekty i funkcje wyrażeń regularnych w języku Pyton Programy obsługiwane z wiersza poleceń Wyrażenia regularne to nieocenione narzędzia w pracy programisty -- nie możesz się bez nich obejść!
Wyrażenia regularne. Receptury
Jan Goyvaerts, Steven Levithan
Poznaj i wykorzystaj możliwości regexpów w codziennej pracy! Jak wyrażenia regularne mogą przyśpieszyć Twoją pracę? Jak sprawdzić poprawność danych? Jak wykorzystać wyrażenia regularne w pracy z plikami XML? Wyrażenie regularne (ang. regexp) to inaczej wzorzec, który określa zbiór dopasowanych łańcuchów znaków. Brzmi to prosto. Jednak przy pierwszym spotkaniu z wyrażeniami wcale tak nie jest. Zbiór znaków i symboli składający się na wyrażenie regularne w niczym nie przypomina rzeczy, którą chciałbyś się zająć. Wyrażenia regularne zawsze kojarzą się początkującemu użytkownikowi co najmniej z wiedzą tajemną, a często wręcz z magią. Warto im się jednak przyjrzeć, poznać je i polubić, a następnie wykorzystać możliwości, jakie w nich drzemią. Jedno jest pewne - te możliwości są spore. Autorzy błyskawicznie zaprzyjaźnią Cię z wyrażeniami regularnymi - książka należy bowiem do znanej serii Receptury, cechującej się tym, że proces nauki jest oparty na analizie rozwiązań prawdziwych problemów. Na samym początku zdobędziesz elementarną wiedzę dotyczącą różnych typów dopasowania oraz dowiesz się, jak unikać najczęstszych problemów. Na kolejnych stronach nauczysz się stosować wyrażenia regularne w różnych językach programowania oraz wykorzystywać je do kontroli poprawności danych i formatowania ciągów znaków. Ponadto dowiesz się, jak operować na słowach, wierszach, znakach specjalnych oraz liczbach. Osobny rozdział został poświęcony operacjom na adresach URL oraz ścieżkach dostępu. Dzięki tej książce szybko zgłębisz tajniki wyrażeń regularnych. Kolejny krok to wykorzystanie tej wiedzy w codziennej pracy! Dopasowanie stałego tekstu Dopasowanie znaków niedrukowanych Dopasowania na początku i końcu wiersza Wyrażenia regularne dla całych wyrazów Wykorzystanie alternatywnych wyrażeń Grupowanie dopasowań Eliminowanie nawrotów Sposoby komentowania wyrażeń Wyrażenia regularne w językach programowania Weryfikacja i formatowanie danych z wykorzystaniem wyrażeń regularnych Dopasowanie kompletnego wiersza Praca z liczbami Operacje na adresach URL, ścieżkach i adresach internetowych Wykorzystanie wyrażeń regularnych w pracy z plikami XML Sprawdź, jak wyrażenia regularne mogą przyśpieszyć Twoją pracę!
Wyrażenia regularne. Wprowadzenie
Michael Fitzgerald
Wyrażenia regularne to wzorce, które pozwalają opisać łańcuchy znaków. Brzmi to groźnie, wygląda jeszcze gorzej, ale każdy programista prędzej czy później się z nimi spotka i… doceni ich potęgę! Ciężko sobie wyobrazić wyszukiwanie, zastępowanie oraz sprawdzanie poprawności danych bez wykorzystania potencjału wyrażeń regularnych. Czas poświęcony na ich opanowanie zwróci się błyskawicznie i z nawiązką! Ta wspaniała książka wprowadzi Cię w świat wyrażeń regularnych szybko i bezboleśnie. Już za chwilę wykorzystasz podstawowe elementy wyrażeń, a każdy kolejny rozdział dostarczy Ci coraz bardziej zaawansowanych narzędzi. W trakcie lektury nauczysz się korzystać z granic, klas znaków, grup i odniesień. Ponadto dowiesz się, jak wykorzystać możliwości Perla w zakresie transformacji tekstów. Książka ta jest wyjątkowym podręcznikiem, który musi znaleźć się na półce każdego programisty! Sprawdź już teraz: potencjał, jaki kryją wyrażenia regularne metody szybkiego wyszukiwania i zastępowania ciągów znaków sposoby korzystania z wyrażeń w różnych językach programowania możliwości wyrażeń regularnych w zakresie kontroli poprawności wprowadzonych danych Zaoszczędź czas dzięki wyrażeniom regularnym!
Wysoce wydajny C++. Opanuj sztukę optymalizowania działania kodu. Wydanie II
Bjorn Andrist, Viktor Sehr
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++!
Wysoko wydajne MySQL. Optymalizacja, archiwizacja, replikacja. Wydanie II
pełna lista autorów -- patrz uwagi
Poznaj zaawansowane techniki i nieznane możliwości MySQL! Jak za pomocą MySQL budować szybkie i niezawodne systemy? Jak przeprowadzać testy wydajności? Jak optymalizować zaawansowane funkcje zapytań? MySQL jest ciągle udoskonalanym i rozbudowywanym oprogramowaniem. Stale zwiększa się także liczba jego użytkowników, wśród których nie brak wielkich korporacji. Wynika to z niezawodności i ogromnej, wciąż rosnącej wydajności tego systemu zarządzania. MySQL sprawdza się także w bardzo wymagających środowiskach, na przykład aplikacjach sieciowych, ze względu na dużą elastyczność i możliwości, takie jak zdolność wczytywania silników magazynu danych jako rozszerzeń w trakcie działania bazy. Książka "Wysoko wydajne MySQL. Optymalizacja, archiwizacja, replikacja. Wydanie II" szczegółowo prezentuje zaawansowane techniki, dzięki którym można w pełni wykorzystać cały potencjał, drzemiący w MySQL. Omówiono w niej praktyczne, bezpieczne i pozwalające na osiągnięcie dużej wydajności sposoby skalowania aplikacji. Z tego przewodnika dowiesz się, w jaki sposób projektować schematy, indeksy i zapytania. Poznasz także zaawansowane funkcje MySQL, pozwalające na uzyskanie maksymalnej wydajności. Nauczysz się tak dostrajać serwer MySQL, system operacyjny oraz osprzęt komputerowy, aby wykorzystywać pełnię ich możliwości. Architektura MySQL Testy wydajności i profilowanie Optymalizacja schematu i indeksowanie Optymalizacja wydajności zapytań Przechowywanie kodu Umieszczanie komentarzy w kodzie składowym Konfiguracja serwera Dostrajanie i optymalizacja wyszukiwania pełnotekstowego Skalowalność i wysoka dostępność Wydajność aplikacji Kopia zapasowa i odzyskiwanie Interfejs SQL dla poleceń spreparowanych Bezpieczeństwo Twórz doskonale dostrojone aplikacje MySQL
Wysoko wydajne MySQL. Sprawdzone strategie działania na dużą skalę. Wydanie IV
Silvia Botros, Jeremy Tinley
MySQL od lat jest najbardziej znaną i lubianą bazą danych typu open source. Wciąż spełnia oczekiwania użytkowników, staje się bowiem coraz bardziej zaawansowanym rozwiązaniem bazodanowym. Równocześnie rośnie złożoność tego oprogramowania, pojawiają się nowe funkcje i narzędzia. Ewoluuje też rola administratora bazy danych, podobnie jak zmienia się podejście do pracy zespołowej. Efektem tych zmian powinno być dostarczenie aplikacji o wysokiej wartości biznesowej, takiej, która będzie się skalowała wraz z organizacją. Warunkiem osiągnięcia tego celu jest jednak gruntowna znajomość MySQL. Ten starannie zaktualizowany przewodnik pozwoli Ci poznać zaawansowane techniki pracy z serwerem MySQL: począwszy od tworzenia obiektów, poprzez projektowanie schematów, indeksów i zapytań, skończywszy na optymalizacji serwera, sprzętu i systemu operacyjnego. Opisano tu bezpieczne i praktyczne sposoby skalowania aplikacji za pomocą replikacji. Pokazano, jak można zapewnić równoważenie obciążenia i sprawić, że aplikacja będzie działała nawet w razie awarii. Omówiono najnowsze trendy pracy z serwerami MySQL (w tym bazy pracujące w chmurze), a także nowe funkcje i narzędzia. Nie zabrakło najlepszych praktyk w zakresie zapewniania bezpieczeństwa bazy, jej wydajności i stabilności. Dzięki temu przewodnikowi zdobędziesz pełną wiedzę o tym, jak nowoczesne firmy używają MySQL na dużą skalę. W książce między innymi: architektura MySQL i silniki pamięci masowej konfiguracja serwera a sprzęt replikacja MySQL i zapewnienie wysokiej dostępności aplikacji serwery MySQL w środowiskach zarządzanej chmury zaawansowane techniki optymalizacji MySQL automatyzacja zarządzania bazą danych MySQL: skalowalne rozwiązanie do nowoczesnych zastosowań!