Opublikowano 23 Marca 20242 l Cześć wam, 🖐️ W poprzedniej implementacji zarządzania pamięcią obiektów Affect korzystaliśmy z boost::object_pool<CAffect> 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 Tylko zalogowani Zaloguj się, aby wyświetlić chronioną treść Ten post zawiera treści dostępne tylko dla członków. Zaloguj się lub utwórz konto, aby odblokować całą zawartość tego posta. Zaloguj się Utwórz konto 🆕Nowa wersja 📂Lokalizacja pliku: 'game -> src -> stdafx.h' ➕Dodaj (jeśli nie masz)
Opublikowano 23 Marca 20242 l A+B=B+A-C=PIERWIASTEK Z 9/2, z równiania wychodzi że Ania zjadła 2 jabłka jadąc rowerem w tramwaju. Dzięki XD Edytowane 23 Marca 20242 l przez ExoCarossa
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto