Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[wytwarzanie aplikacji] Określenie wymagań sprzętowych/systemowych aplikacji

Ostatnio zmodyfikowano 2013-09-19 20:13
Autor Wiadomość
Revo
Temat założony przez niniejszego użytkownika
[wytwarzanie aplikacji] Określenie wymagań sprzętowych/systemowych aplikacji
» 2013-09-18 20:56:10
Witam wszystkich ! Wybaczcie, że tak truję ale mam pewną zagwozdkę... Jak określić minimalne/rekomendowane wymagania aplikacji ?? Wydaje mi się, że :

1. System : Określam na podstawie wykorzystywanych funkcji systemu z bibliotek .dll i ich wersji.
2. Procesor : No właśnie ... Mam odpalać program na stopniowo słabszych komputerach i na tej podstawie określić ile MHz/GHz ma mieć ??
3. Karta Graficzna : Nie mam żadnego pomysłu jak to określić ... ; P
4. RAM : Sprawdzić w Menadżerze Zadań  w Procesach ile "Pamieć(Prywatny zestaw roboczy)" kilobajtów (<- to jest podawane w kilobajtach nie ??) zabiera przeliczając na MB czy GB ??
5. Wolne miejsce na dysku : No to jest oczywiste
6. Szybkość internetu : Przy obecnych standardach szybkości internetu dochodzących do 50 megabitów/sekunde raczej się już tego nie podaje

Czy moje rozumowanie do podanych punktów jest dobre ?? Jak się określa wymagania aplikacji w profesjonalnych firmach informatycznych ?? Szukałem u "wujka" Google ale niestety brak jakichkolwiek informacji na ten temat :( Dziękuję za podpowiedzi i konkretne odpowiedzi :) Pozdrawiam ! 
 
//Edit
Poprawiłem pomyłkę z prędkością internetu.

P-92297
DejaVu
» 2013-09-18 21:13:55
Minimalne wymagania RAM - liczysz ile aplikacja rezerwuje pamięci podczas standardowej pracy z aplikacją, np. szacujesz, że 50MB wciągają zawsze wczytywane tekstury, 10MB zajmuje wczytana baza danych z przedmiotami gry, 20MB zajmuje średnia wczytana mapa, doliczasz jeszcze wszelkie inne rzeczy używane i przyjmujesz to za minimum (weryfikujesz swoje szacunki między innymi z menedżerem procesów).

Zalecany RAM - ustalasz teoretyczną górną granicę określającą szacunkową (ale realną) liczbę obiektów na scenie oraz wszelkich innych zasobów i to jest górna ilość pamięci jaką aplikacja będzie potrzebowała. Wykonane rachunki zaokrąglasz w górę, czyli np. jeżeli wyjdzie Ci 850MB maksymalnego zużycia pamięci to piszesz zalecany 1GB RAM.

Co do CPU to po prostu liczysz złożoność obliczeniową algorytmów, a potem testujesz sobie jak się aplikacja zachowa, gdy zwiększysz liczbę obiektów na scenie np. 10-krotnie. Jeżeli aplikacja nadal płynnie działa, to możesz założyć, że będzie również dobrze działała na słabszych komputerach.

Co do GPU to wyznacznikiem jest tu zarówno złożoność sceny jak i używane technologie. Czytaj: używasz shaderów to z miejsca eliminujesz karty, które ich nie wspierają.

PS. Określanie wymagań sprzętowych nie ma najmniejszego sensu dla produkcji, która nie ma perspektyw na sprzedaż większą niż 100 sztuk. Wymagań również nie warto aż nadto zaniżać, bo jak się okaże, że u klienta nie działa gra, a jego sprzęt spełnia wymagania z 'pudełka', to zrobi Ci on aferę na cztery fajerki chociażby w Internecie.
P-92299
Revo
Temat założony przez niniejszego użytkownika
» 2013-09-18 21:38:11
Minimalne i rekomendowane wymagania co do RAMu rozumiem, Co do CPU to czytałem na niniejszej stronie o złożoności obliczeniowej, ale jak z tego wyciągnąć konkretną wartość, którą można podać na "pudełku" jako minimalna szybkość procesora np 2 Ghz ?? GPU ... ;P Czyli jeżeli np używam biblioteki SFML do produkcji gry, to muszę poczytać dokładnie jego dokumentacje co, jak i kiedy jest ładowane do pamięci karty graficznej i co jest na niej wykonywane ?? DejaVu, pytam teoretyczne i z ciekawości :P Trafna uwaga ... dziękuję za nią :) A co do Menedżera Zadań to te wartości są podawane w kilobajtach tak ??
P-92300
Wasilek
» 2013-09-18 21:48:53
Wartości w menadżerze zadań są podawane w Kilobajtach.
P-92302
Revo
Temat założony przez niniejszego użytkownika
» 2013-09-18 22:10:25
Dziękuję ślicznie :) Wolałem się upewnić ... xd
P-92303
pekfos
» 2013-09-18 22:15:20
Co do CPU to czytałem na niniejszej stronie o złożoności obliczeniowej, ale jak z tego wyciągnąć konkretną wartość, którą można podać na "pudełku" jako minimalna szybkość procesora np 2 Ghz ??
Nie da się. Złożoność wskazuje, jak będzie wzrastać czas działania algorytmu, w zależności od danych. Dla tworu tak złożonego, jak gotowa gra, obliczanie dokładnej złożoności jest niepraktyczne i często niemożliwe. Zresztą, samo taktowanie również jest niemiarodajne.

Przy obecnych standardach szybkości internetu dochodzących do 50 kilobitów
50 kilobitów? Chyba nie na sekundę..?

A co do Menedżera Zadań to te wartości są podawane w kilobajtach tak ??
Co to za pytanie? Przecież jest podana jednostka, a konkretnie jej najistotniejsza część. A jak jest podane kilo, to chyba oczywiste, że chodzi o kilobajty, a nie kilogramy.. ;)
P-92304
m4tx
» 2013-09-18 22:25:00
Czytaj: używasz shaderów to z miejsca eliminujesz karty, które ich nie wspierają.
Podaj dowolną, obecnie używaną kartę, która nie obsługuje shaderów. Możemy tutaj jedynie mówić o konkretnych wersjach GLSL-a lub samego OGL-a (czy tam DX-a, zależy w czym piszesz) bo shadery są obsługiwane nawet na bardzo budżetowych urządzeniach z Androidem.

weryfikujesz swoje szacunki między innymi z menedżerem procesów
Skoro i tak weryfikujemy wynik, to po co go szacować? Wystarczy podczas długiego testu kontrolować cały czas zużywany RAM i tyle. A co do zalecanego RAM-u to należy jeszcze dodać to, czego wymaga sam system.

Co do CPU to po prostu liczysz złożoność obliczeniową algorytmów, a potem testujesz sobie jak się aplikacja zachowa, gdy zwiększysz liczbę obiektów na scenie np. 10-krotnie. Jeżeli aplikacja nadal płynnie działa, to możesz założyć, że będzie również dobrze działała na słabszych komputerach.
Jeśli piszemy grę, do której trzeba określać wymagania, to algorytmów w tej grze będzie na tyle dużo, że kompletnie nie ma sensu określać ich złożoności obliczeniowej. Chyba że wybierając tylko te algorytmy, które zajmują najwięcej czasu aplikacji.

I jeszcze jedno: Twoja aplikacja to tylko wierzchołek góry lodowej. Właściwie zawsze największy wpływ na wydajność i zużywane zasoby aplikacji mają używane frameworki. Chyba, że sam piszesz wszystko - cały silnik na czystym OpenGL-u, słowem: wszystko robisz sam, bez użycia żadnych zbędnych frameworków. Tyle że to generalnie nie ma sensu jeśli rzeczywiście robisz to sam, bo napisanie porządnego silnika w pojedynkę i potem jeszcze skomplikowanej gry do tego graniczy właściwie z cudem.
P-92305
DejaVu
» 2013-09-18 23:08:08
Nie da się. Złożoność wskazuje, jak będzie wzrastać czas działania algorytmu, w zależności od danych. Dla tworu tak złożonego, jak gotowa gra, obliczanie dokładnej złożoności jest niepraktyczne i często niemożliwe. Zresztą, samo taktowanie również jest niemiarodajne.
Złożoność obliczeniowa algorytmu przekłada się na jego szybkość. Jeżeli określi szacunkową złożoność O(n^2) dla algorytmu wykrywania kolizji, a obiektów będzie max 500 to uzyska wówczas 250 tys obiegów pętli w jednej klatce. Jeżeli oczekuje sprawdzania kolizji minimum 60 razy w ciągu sekundy to już wie, że 15 mln przebiegów pętli pochłonie sam algorytm sprawdzania kolizji w pesymistycznym przypadku, czyli 15MHz. Do tego przyjmie, że szacunkowo obliczenia w jednym obiegu pętli zabierają 50Hz, to wyjdzie mu, że jego algorytm pochłaniałby mu 750MHz w ciągu sekundy. Poprawne oszacowania potrafią dać obraz tego, co najgorzej działa w naszym kodzie i dlaczego oraz jakie będzie zapotrzebowanie CPU.


Gdyby złożoność obliczeniowa była bezużyteczna to nie robiono by wokół niej tyle szumu :)

/edit:
Poprawiłem przykład :P
P-92307
« 1 » 2 3
  Strona 1 z 3 Następna strona