Wpis z mikrobloga

Dynamiczna tablica struktur vs dynamiczne tablice zwykłych zmiennych przy rozwiązywaniu problemu z plecakiem algorytmem aproksymacyjnym

Wygodniej mi będzie ze strukturami, ale wydaje mi się, że dla pamięci lżejsze będą standardowe zmienne

#cpp #programowanie

Co robić?

  • tablice struktur 64.3% (9)
  • tablice standardowych zmiennych 35.7% (5)

Oddanych głosów: 14

  • 6
  • Odpowiedz
@BotRekrutacyjny: jesli beda tak czy inaczej dynamiczne tablice, to wydajnosc moze byc podobna (z dokladnoscia do sposobu obslugi), bo dla systemu jest obojetne, czy alokuje tablice na zmienne czy na struktury. Wiec kwestia wydajnosci to co najwyzej ilosc alokacji oraz sposob wykorzystania danych.
  • Odpowiedz
@BotRekrutacyjny: Jesli chodzi o wydajnosc, to czesto jest tak, ze bardziej oplaci sie zaalokowac jeden obszar pamieci i go nie zwalniac do konca potrzeb (jesli choc kawalek jest uzywany), jesli jest oczywiscie wystarczajaco duzo pamieci. sama alokacja zabiera czas a czeste alokacje i zwalnianie moze fragmentowac dodadkowo pamiec. Czesto to wykorzystuje sie przy programowaniu embeded, ze aby zwiekszyc wydajnosc oblicza sie ile pamieci bedzie potrzebne w jakims dluzszym odcinku pracy, alokuje
  • Odpowiedz
@Kaczus2B: dzięki, na taką konkretną odpowiedź liczyłem, raczej na początku będę alokował pamięć, później głównie zwalniał, a jestem ograniczony pamięciowo i czasowo, w zasadzie to muszę jak najwydajniej zaimplementować algorytm
  • Odpowiedz
@BotRekrutacyjny: przy strukturach warto wspomnieć o tzw. data structure alignment (czyli np. "dorównywanie" adresów zmiennych tak, aby procesor miał do nich "łatwiejszy" dostęp lub pakowanie ich). Oczywiście różne procesory trochę inaczej rozprawiają się z uzyskiwaniem dostępu do danych w pamięci, dlatego czasowe rezultaty przy pewnych ustawieniach mogą być różne w zależności od platformy, na której pracujesz.
  • Odpowiedz