praca_magisterska/latex/tex/5-testy-wydajnosci-FILLED.tex
Copilot e76ac00ad6
Add comprehensive thesis completion game plan, tracking system, automation scripts, and publication-ready LaTeX chapter content with extensive citations (#4)
* Initial plan

* Add comprehensive thesis completion game plan (deadline Feb 10)

Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>

* Add quick start guide and daily progress tracking template

Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>

* Add visual tracker and planning system overview

Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>

* Update work schedule to 4hrs weekdays, 8hrs weekends (144 total hrs)

Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>

* Update dates to Jan 16-Feb 15, add helper scripts for data collection

Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>

* Add complete LaTeX content for chapters 5-8, graph generation script, auto-compile script

Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>

* Add extensive citations throughout chapters, fix Linux-specific issues, replace subjective language with objective data

Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>

* Fix CI pipeline: use test_pdf instead of test target in workflow

Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>

* Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: kuhyx <147418882+kuhyx@users.noreply.github.com>
2026-01-15 17:57:44 +01:00

249 lines
9.2 KiB
TeX

% Test Scenarios for Chapter 5 - Performance Tests
% Copy this content into latex/tex/5-testy-wydajnosci.tex
\clearpage
\section{Testy wydajności}
\label{sec:testy-wydajnosci}
\subsection{Metodyka przeprowadzania testów}
\subsubsection{Przygotowanie środowiska testowego}
Wszystkie testy wydajnościowe przeprowadzono w~kontrolowanych warunkach, zapewniających powtarzalność i~porównywalność wyników~\cite{petridis2012benchmarking}. Przed każdym cyklem pomiarowym wykonano następujące kroki przygotowawcze:
\begin{enumerate}
\item Zamknięto wszystkie aplikacje działające w~tle
\item Wyłączono automatyczne aktualizacje systemu operacyjnego
\item Odczekano 1~minutę na stabilizację temperatury komponentów
\item Wykonano jeden pomiar próbny przed rejestracją właściwych wyników
\end{enumerate}
\subsubsection{Standaryzacja warunków testowych}
Aby zapewnić porównywalność wyników między Unity a~Unreal Engine, opracowano trzy scenariusze testowe o~zróżnicowanym poziomie obciążenia. Każdy scenariusz został zaimplementowany w~identyczny sposób w~obu silnikach, z~następującymi parametrami:
\begin{table}[h!]
\centering
\caption{Parametry scenariuszy testowych}
\label{tab:test-scenarios}
\begin{tabular}{|l|c|c|c|}
\hline
\textbf{Parametr} & \textbf{Niski} & \textbf{Średni} & \textbf{Wysoki} \\
\hline\hline
Liczba pocisków & 50--100 & 200--300 & 500+ \\
\hline
Liczba przeciwników & 2--3 & 5--7 & 10+ \\
\hline
Czas trwania testu & 30 s & 30 s & 30 s \\
\hline
Liczba pomiarów & 5 & 5 & 5 \\
\hline
\end{tabular}
\end{table}
\subsection{Scenariusze testowe gry bullet-hell}
\subsubsection{Scenariusz 1: Niski poziom trudności (baseline)}
\paragraph{Cel testu}
Ustalenie wydajności bazowej przy minimalnym obciążeniu systemu renderowania i~fizyki.
\paragraph{Parametry}
\begin{itemize}
\item \textbf{Liczba pocisków na ekranie}: 50--100 jednocześnie
\item \textbf{Aktywni przeciwnicy}: 2--3 jednostki
\item \textbf{Czas trwania pomiaru}: 30 sekund
\item \textbf{Liczba powtórzeń}: 5 przechwytów klatek w~odstępach 5-sekundowych
\end{itemize}
\paragraph{Oczekiwane rezultaty}
W~scenariuszu bazowym oczekiwano stabilnej częstotliwości odświeżania na poziomie 60~FPS, niskiego wykorzystania GPU~(<50\%) oraz minimalnego zużycia pamięci.
\subsubsection{Scenariusz 2: Średni poziom trudności}
\paragraph{Cel testu}
Ocena wydajności przy umiarkowanym obciążeniu systemu, symulująca typową rozgrywkę.
\paragraph{Parametry}
\begin{itemize}
\item \textbf{Liczba pocisków na ekranie}: 200--300 jednocześnie
\item \textbf{Aktywni przeciwnicy}: 5--7 jednostek
\item \textbf{Czas trwania pomiaru}: 30 sekund
\item \textbf{Liczba powtórzeń}: 5 przechwytów klatek w~odstępach 5-sekundowych
\end{itemize}
\paragraph{Oczekiwane rezultaty}
Przewidywano umiarkowane wykorzystanie GPU~(50--70\%), możliwe niewielkie spadki częstotliwości klatek oraz wzrost zużycia pamięci.
\subsubsection{Scenariusz 3: Wysoki poziom trudności (test obciążeniowy)}
\paragraph{Cel testu}
Weryfikacja wydajności w~ekstremalnych warunkach przy maksymalnym obciążeniu systemu.
\paragraph{Parametry}
\begin{itemize}
\item \textbf{Liczba pocisków na ekranie}: 500+ jednocześnie
\item \textbf{Aktywni przeciwnicy}: 10+ jednostek
\item \textbf{Czas trwania pomiaru}: 30 sekund
\item \textbf{Liczba powtórzeń}: 5 przechwytów klatek w~odstępach 5-sekundowych
\end{itemize}
\paragraph{Oczekiwane rezultaty}
W~scenariuszu obciążeniowym spodziewano się wysokiego wykorzystania GPU~(>70\%), potencjalnych spadków wydajności oraz maksymalnego zaobserwowanego zużycia pamięci.
\subsection{Metryki wydajności}
\subsubsection{Zbierane dane}
Dla każdego scenariusza i~silnika rejestrowano następujące metryki przy użyciu NVIDIA Nsight Graphics:
\begin{itemize}
\item \textbf{Czas klatki} (frame time) -- czas renderowania pojedynczej klatki w~milisekundach
\item \textbf{FPS} (frames per second) -- liczba klatek na sekundę, wyliczana jako $1000 / \text{frame time}$
\item \textbf{Wykorzystanie GPU} -- procent wykorzystania mocy obliczeniowej karty graficznej
\item \textbf{Zużycie pamięci VRAM} -- ilość zajętej pamięci karty graficznej w~megabajtach
\item \textbf{Liczba wywołań rysowania} (draw calls) -- liczba instrukcji renderowania na klatkę
\item \textbf{Liczba wierzchołków} -- całkowita liczba przetworzonych wierzchołków na klatkę
\end{itemize}
\subsection{Wyniki testów}
\subsubsection{Tabele z wynikami pomiarów}
% Placeholder table - fill with actual data
\begin{table}[h!]
\centering
\caption{Wyniki testów wydajności -- Scenariusz niski}
\label{tab:results-low}
\begin{tabular}{|l|c|c|c|c|}
\hline
\textbf{Metryka} & \textbf{Unity śr.} & \textbf{Unity odch.} & \textbf{Unreal śr.} & \textbf{Unreal odch.} \\
\hline\hline
Czas klatki [ms] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
FPS & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
GPU [\%] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
VRAM [MB] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
Draw calls & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
Wierzchołki [tys.] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
\end{tabular}
\end{table}
\begin{table}[h!]
\centering
\caption{Wyniki testów wydajności -- Scenariusz średni}
\label{tab:results-medium}
\begin{tabular}{|l|c|c|c|c|}
\hline
\textbf{Metryka} & \textbf{Unity śr.} & \textbf{Unity odch.} & \textbf{Unreal śr.} & \textbf{Unreal odch.} \\
\hline\hline
Czas klatki [ms] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
FPS & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
GPU [\%] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
VRAM [MB] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
Draw calls & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
Wierzchołki [tys.] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
\end{tabular}
\end{table}
\begin{table}[h!]
\centering
\caption{Wyniki testów wydajności -- Scenariusz wysoki}
\label{tab:results-high}
\begin{tabular}{|l|c|c|c|c|}
\hline
\textbf{Metryka} & \textbf{Unity śr.} & \textbf{Unity odch.} & \textbf{Unreal śr.} & \textbf{Unreal odch.} \\
\hline\hline
Czas klatki [ms] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
FPS & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
GPU [\%] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
VRAM [MB] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
Draw calls & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
Wierzchołki [tys.] & [DATA] & [DATA] & [DATA] & [DATA] \\
\hline
\end{tabular}
\end{table}
\subsubsection{Placeholder dla wykresów}
% Placeholder - replace with actual figures generated from data
\begin{figure}[h!]
\centering
% \includegraphics[width=0.8\linewidth]{tex/img/frame-time-comparison.pdf}
\caption{Porównanie czasu klatki między Unity a~Unreal Engine w~trzech scenariuszach testowych. [PLACEHOLDER -- wygeneruj wykres za pomocą skryptu scripts/generate\_plots.py]}
\label{fig:frame-time-comparison}
\end{figure}
\begin{figure}[h!]
\centering
% \includegraphics[width=0.8\linewidth]{tex/img/gpu-utilization.pdf}
\caption{Wykorzystanie GPU w~funkcji liczby obiektów na ekranie. [PLACEHOLDER -- wygeneruj wykres za pomocą skryptu scripts/generate\_plots.py]}
\label{fig:gpu-utilization}
\end{figure}
\begin{figure}[h!]
\centering
% \includegraphics[width=0.8\linewidth]{tex/img/memory-usage.pdf}
\caption{Zużycie pamięci VRAM w~trzech scenariuszach testowych. [PLACEHOLDER -- wygeneruj wykres za pomocą skryptu scripts/generate\_plots.py]}
\label{fig:memory-usage}
\end{figure}
\subsection{Analiza wyników}
\subsubsection{Wydajność w scenariuszu bazowym}
[ANALIZA -- wypełnij po zebraniu danych]
Jak przedstawiono w~Tabeli~\ref{tab:results-low}, w~scenariuszu o~niskim obciążeniu oba silniki...
\subsubsection{Wydajność w scenariuszu średnim}
[ANALIZA -- wypełnij po zebraniu danych]
Wyniki przedstawione w~Tabeli~\ref{tab:results-medium} wskazują, że...
\subsubsection{Wydajność w scenariuszu obciążeniowym}
[ANALIZA -- wypełnij po zebraniu danych]
Najbardziej wymagający scenariusz (Tabela~\ref{tab:results-high}) ujawnił...
\subsection{Podsumowanie wyników testów wydajności}
\begin{table}[h!]
\centering
\caption{Zestawienie zbiorcze wyników testów}
\label{tab:summary}
\begin{tabular}{|l|c|c|c|}
\hline
\textbf{Kryterium} & \textbf{Unity} & \textbf{Unreal} & \textbf{Zwycięzca} \\
\hline\hline
Średni FPS (niski) & [DATA] & [DATA] & [TBD] \\
\hline
Średni FPS (średni) & [DATA] & [DATA] & [TBD] \\
\hline
Średni FPS (wysoki) & [DATA] & [DATA] & [TBD] \\
\hline
Zużycie VRAM & [DATA] & [DATA] & [TBD] \\
\hline
Efektywność draw calls & [DATA] & [DATA] & [TBD] \\
\hline
\end{tabular}
\end{table}