mirror of
https://github.com/kuhyx/praca_magisterska.git
synced 2026-07-04 12:03:01 +02:00
* 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>
249 lines
9.2 KiB
TeX
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}
|