Skocz do zawartości
Masz już aplikację Sharegon?

Odkryj wszystkie możliwości. Dowiedz się więcej

Sharegon.pl

Zainstaluj aplikację Sharegon i korzystaj z powiadomień push oraz licznika nowych aktywności bezpośrednio z ekranu głównego.

Aby zainstalować tę aplikację na iOS i iPadOS.
  1. Tap the Share icon in Safari
  2. Przewiń menu i stuknij Dodaj do ekranu początkowego.
  3. Stuknij Dodaj w prawym górnym rogu.
Zainstaluj aplikację Sharegon na Androidzie
  1. Otwórz Sklep Google Play na swoim smarfonie.
  2. Wyszukaj „Sharegon” w pasku wyszukiwania.
  3. Stuknij „Zainstaluj”, aby pobrać aplikację.

Nowa klasa 'AffectObjectPool ' optymalizacja zarządzania pamięcią dla obiektów 'CAffect'

Nieaktywny

Featured Replies

Opublikowano

Cześć wam, 🖐️

 

W poprzedniej implementacji zarządzania pamięcią obiektów Affect korzystaliśmy z boost::object_pool do alokowania i dealokowania instancji obiektów. Chociaż to rozwiązanie było skuteczne, zdecydowałem się na jego przepisanie, aby uzyskać większą kontrolę i elastyczność w zarządzaniu pamięcią oraz zoptymalizować wydajność. 🚀

 

Wprowadziłem nową klasę 'AffectObjectPool', która wykorzystuje wzorzec projektowy puli obiektów. Głównym powodem tej zmiany jest zmniejszenie kosztów zasobów związanych z częstym alokowaniem i zwalnianiem pamięci poprzez ponowne wykorzystanie instancji Affect. Wewnątrz 'AffectObjectPool' zastosowałem wektor do przechowywania instancji, które nie są aktualnie używane. Dzięki temu, kiedy zachodzi potrzeba uzyskania nowej instancji 'affectu', możemy najpierw sprawdzić, czy w puli znajduje się jakaś nieużywana instancja i ją ponownie wykorzystać, zamiast tworzyć nową. ♻️

 

Dwie nowe metody 'AcquireAffectInstance' i 'ReleaseAffectInstance' służą odpowiednio do pozyskiwania i zwalniania instancji Affect. 🔐

Jeśli pula jest pusta, 'AcquireAffectInstance' tworzy nową instancję 'CAffect'. W przeciwnym razie, metoda ta zwraca instancję z puli. 'ReleaseAffectInstance' umożliwia zwrot instancji do puli, co pozwala na jej ponowne wykorzystanie w przyszłości. Wprowadzenie 'AffectObjectPool' pozwoli na znaczną redukcję operacji alokacji i dealokacji, co przełoży się na poprawę wydajności i zmniejszenie zużycia pamięci. 📈🎉

 

 

📂Lokalizacja pliku: 'game -> src -> affect.cpp'

 

📙Stara wersja

🔐 Ukryta Treść 🔐

 

🆕Nowa wersja

🔐 Ukryta Treść 🔐

 

 

 📂Lokalizacja pliku: 'game -> src -> stdafx.h'

 

Dodaj (jeśli nie masz)

🔐 Ukryta Treść 🔐
  • 4 tygodnie później...
  • 4 tygodnie później...

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Konto

Nawigacja

Skonfiguruj powiadomienia push w przeglądarce.

Chrome (Android)
  1. Stuknij ikonę kłódki obok paska adresu.
  2. Wybierz Uprawnienia → Powiadomienia.
  3. Dostosuj swoje preferencje.
Chrome (Desktop)
  1. Kliknij ikonę kłódki na pasku adresu.
  2. Wybierz Ustawienia witryny.
  3. Znajdź Powiadomienia i dostosuj swoje preferencje.