Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
W sekcjach poniżej opisano zaawansowane tematy dotyczące używania, które nie są potrzebne do normalnego działania biblioteki.
Inne obsługiwane narzędzia do śledzenia
Tuning Fork obsługuje wiele śledzeń. Obsługiwane są ślady z tymi kluczami instrumentów:
Czas między rozpoczęciem klatek (nazywany PACED_FRAME_TIME)
Czas pracy procesora: czas od rozpoczęcia klatki do zakończenia pracy procesora nad klatką (nazywany CPU_TIME).
Czas przetwarzania przez GPU: czas przetwarzania poprzedniej klatki przez GPU (nazywanyGPU_TIME)
Surowy czas klatki, zdefiniowany jako maksimum czasu procesora i GPU (nazywany RAW_FRAME_TIME). Różnica między tą opcją a PACED_FRAME_TIME polega na tym, że ta opcja nie obejmuje czasu oczekiwania uwzględnianego przez Swappy ani synchronizację pionową.
Klucze instrumentów znajdziesz w dokumentacji.
Niektóre z tych kluczy są używane automatycznie po włączeniu biblioteki Android Frame Pacing, ale jeśli nie włączasz tej biblioteki, musisz używać ich jawnie.
Jeśli przekażesz wartość fidelity_params_callback do TuningFork_init w ustawieniach lub biblioteka jest w trybie skalowania, nie musisz wywoływać tej funkcji.
Ta funkcja kontaktuje się z serwerem, aby pobrać parametry wierności. Blokuje się do momentu wystąpienia jednego z tych zdarzeń:
Parametry wierności są pobierane, a wartość zwracana to TFERROR_OK i returnedParams. W takim przypadku wszystkie kolejne dane o zmianach cen są powiązane z returnedParams.
Mija liczba milisekund równa timeout_ms, a funkcja zwraca wartość TFERROR_TIMEOUT. W tym przypadku wszystkie kolejne dane o zmianach cen są powiązane z wartością defaultFidelityParams.
Przed wywołaniem tej funkcji musisz wywołać funkcję TuningFork_init() w osobnym wątku (zobacz TuningFork_startFidelityParamDownloadThread(), aby poznać funkcję narzędziową, która to robi). Możesz ponownie wywołać tę funkcję, np. podczas wczytywania poziomu, aby ponownie pobrać parametry wierności z serwera. Dzięki temu możesz dynamicznie aktualizować parametry, zamiast wczytywać je tylko podczas uruchamiania. Jeśli zostaną pobrane nowe parametry wierności lub zostanie użyta nowa wartość domyślna, zostaną przesłane wszystkie poprzednie dane dotyczące ticków.
Treść strony i umieszczone na niej fragmenty kodu podlegają licencjom opisanym w Licencji na treści. Java i OpenJDK są znakami towarowymi lub zastrzeżonymi znakami towarowymi należącymi do firmy Oracle lub jej podmiotów stowarzyszonych.
Ostatnia aktualizacja: 2025-08-26 UTC.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2025-08-26 UTC."],[],[],null,["The following sections outline advanced usage topics not needed for normal\noperation of the library.\n\nOther supported tracers\n\nTuning Fork supports multiple tracers. Tracers with the following instrument\nkeys are supported:\n\n- Time between frame starts (called `PACED_FRAME_TIME`)\n- CPU Time: Time between the start of the frame and the end of the CPU work for the frame (called `CPU_TIME`)\n- GPU Time: Time for the previous frame to be handled by the GPU (called `GPU_TIME`)\n- The raw frame time, defined as the maximum of the CPU and GPU time (called `RAW_FRAME_TIME`). The difference between this option and `PACED_FRAME_TIME` is that this option does not include any wait time included by Swappy or VSync.\n\nYou can find these instrument keys in the\n[reference documentation](/games/sdk/reference/performance-tuner/custom-engine).\nSome of these keys are used automatically when you enable the Android Frame\nPacing library, but if you are not enabling this library, you should use them\nexplicitly.\n\nGet fidelity parameters\n\n[`TFErrorCode TuningFork_getFidelityParameters(const CProtobufSerialization*\ndefaultParams, CProtobufSerialization* params, uint32_t\ntimeout_ms);`](/games/sdk/reference/performance-tuner/custom-engine/group/tuningfork#tuningfork_getfidelityparameters)\n\nIf you pass `fidelity_params_callback` to `TuningFork_init` in settings or the\nlibrary is in scaled mode, you do not need to call this function.\n\nThis function contacts a server to retrieve fidelity parameters. It blocks until\none of the following occurs:\n\n- Fidelity parameters are retrieved, with a return value of `TFERROR_OK` and `returnedParams` store the parameters. In this case, all subsequent tick data is associated with `returnedParams`.\n- A number of milliseconds equal to `timeout_ms` passes, with a return value of `TFERROR_TIMEOUT`. In this case, all subsequent tick data is associated with `defaultFidelityParams`.\n\nYou must call `TuningFork_init()` before this function, and you must call it on\na separate thread from the main thread (see\n[`TuningFork_startFidelityParamDownloadThread()`](/games/sdk/reference/performance-tuner/custom-engine/group/tuningfork-extra#tuningfork_startfidelityparamdownloadthread)\nfor a utility function that does this for you). You can call this function\nagain, for example at level-loading time, to retrieve fidelity parameters from\nthe server again. This allows you to dynamically update parameters rather than\nhaving to reload them only at start-up. If new fidelity parameters are\ndownloaded or a new default is used, all previous tick data is submitted."]]