Koszt kontenerów list, vector itd
Ostatnio zmodyfikowano 2011-09-07 23:56
akwes Temat założony przez niniejszego użytkownika |
Koszt kontenerów list, vector itd » 2011-09-06 23:36:45 Czy ktoś jest w stanie podać jakąś informację, bądź wie z doświadczenia jak dużo kontenerów i jak obszernych używa się w programach? Konkretnie chodzi mi o czy np. deklaracja 100 list lub 100 vectorów jest dużo bardziej kosztowne od np. 100 tablic? O ile vector można wyobrazić sobie jako opakowaną funkcjami tablicę o tyle nie wiem co czuć wobec listy.
Czy w dobrym stylu programowania jest używanie jak najmniejszej ilości kontenerów czy wręcz przeciwnie - programy z dziesiątkami list są stosunkowo powszechne?
Czytałem i nie wiele znalazłem na ten temat a chciałbym się dowiedzieć. Czy kontenery biblioteki standardowej to są zwykłe, szybkie narzędzia programistyczne, które optymalnie wykonują zadania, które są im powierzone i zostały napisane aby coś działało szybciej czy raczej jest to zasobożerne ułatwienie? |
|
DejaVu |
» 2011-09-07 00:53:45 Szukasz filozofii w czymś czego nie ma - innymi słowy: dane zawsze zajmują tyle samo - kwestia ewentualnych narzutów jakie wynikają z zastosowanych struktur danych. Zaimplementuj samodzielnie struktury danych i policz sobie ile bajtów zajmuje dodanie każdego nowego elementu. Do tego książek się nie pisze bo to samo wynika z podstaw, które powinieneś znać ( Pojęcie zmiennej i podstawowe typy danych). |
|
akwes Temat założony przez niniejszego użytkownika |
» 2011-09-07 23:04:25 Nie chodzi mi pamięć ale o koszty korzystania z tego udogodnienia. Czy lista wpływa jakoś na program i duża ilość list obniża jego wydajność?
Nie wiem jak się wysłowić.
Jeżeli mogę program wykonać za pomocą listy lub bez jej pomocy. To najczęściej lepszym wyborem będzie lista czy rezygnacja z niej?
Czy za dobrodziejstwo kontenerów płacę wydajnością programu? Czy nie różni się to znacząco od innych rozwiązań o podobnej złożoności obliczeniowej?
Może tak: Czy używać kontenerów wtedy, kiedy wydają się dobrym rozwiązaniem czy choć chwilę pomyśleć nad innym rozwiązaniem? |
|
DejaVu |
» 2011-09-07 23:15:47 To nie kontenery są wąskim gardłem lecz słabe algorytmy, które na nich pracują. Nikt się nie zastanawia nad wydajnością kontenerów jeżeli nie pisze bazy danych bądź innego systemu od którego wymagana jest wydajność oraz są ku temu solidne podstawy by z nich zrezygnować. Ty nie masz podstaw. Co więcej nawet nie robisz testów wydajnościowych tylko pytasz się co jest lepsze jakby istniał jeden złoty środek. |
|
akwes Temat założony przez niniejszego użytkownika |
» 2011-09-07 23:56:57 Napisanie solidnego testu wydajnościowego zajęło by mi dużo czasu a i tak nie wiedziałbym czy test jest napisany dobrze - a tutaj bym i tak nie otrzymał odpowiedzi o teście.
Wszędzie gdzie czytam o kontenerach jest napisane jak ich używać. Nikt nie pisze o tym czy są wydajne (to jest oczywiste? przecież wysyłanie kopii tablicy do funkcji jest również oczywiste jako nieoptymalne, jednak w każdej książce o tym trąbią przy funkcjach a potem przy referencji i jeszcze raz przy wskaźnikach).
Nie pytam się o złoty środek ale o ogólną tendencję. Na jednych forach wszyscy polecają żeby zamiast tablicy od razu korzystać z vectora, inni zaś to doradzają i polecają aby z niego korzystać kiedy jest konieczność. W życiu napisałem kilka prostych aplikacji, pierwszy raz stosuję listy do sensownych zastosowań i nie wiem czy w programach zwraca się uwagę na ilość list czy po prostu się je stosuje i już. Czy przy 10 listach trzeba siąść i postarać się zmniejszyć ich ilość czy nie przejmować się jeżeli ma się ich mniej niż 100 czy 500.
Również mogę się nauczyć C++ z dokumentacji, wszystko sprawdzać samemu robić testy itd. ale czy to ma sens jeżeli ktoś już ma wiedzę na ten temat i można się go spytać?
Widzę że na moje wątpliwości i pytania nie otrzymam nic sensownego, poza tym co już otrzymałem, więc wypada zamknąć. |
|
« 1 » |