Zadanie domowe.

Miejsce wolnych rozmów na dowolne tematy niedotyczące spraw organizacji.

Zadanie domowe.

Postautor: Brealin Ub dodano: 24 kwie 2016, 12:00

Chwała Szlaczkom, Bartowi i Radzie w Wielości zjednoczonej.

Dostałem zadanie domowe w związku z nową pracą i mam pomysł jak je wykonać, ale nie wiem czy w ogóle jest to w ten sposób wykonalne.

1) Jesteś sam z tysiącem instalatorów do gier i trzema komputerami. Jak sprawdzisz, czy gry instalują się i uruchamiają z jak największą wydajnością?

Moja koncepcją jest utworzenie pliku .bat, który wirtualnie uruchamiałby zarówno instalatory jak i gry, sprawdzał integralność plików i kompatybilność, ew. napisać takie polecenie w DOS'ie, dzieląc pliki właśnie na te trzy komputery. Tylko... czy tak da się zrobić i czy to w ogóle możliwe? A jeśli tak, to jak to zrobić?
Awatar użytkownika
Brealin Ub
Były członek
 
Posty: 213
Rejestracja: 29 cze 2013, 11:24

Re: Zadanie domowe.

Postautor: Neil Danadris dodano: 24 kwie 2016, 15:48

Nie zasugeruję tu żadnych konkretnych aplikacji, ponieważ takich nie znam. Całe zagadnienie wiąże się z testami wydajnościowymi, które stanowią tak naprawdę odrębną, rozbudowaną kategorię w zakresie oprogramowania. Wykonanie prostego skryptu *.bat rozwiąże problem z automatyczną instalacją gier, ale nie pomoże w obliczeniu wydajności i dobraniu optymalnej metody instalacji i uruchamiania.

Gdybym miał się czymś takim zajmować, skorzystałbym z biblioteki WinAPI i napisał prosty program, który obsługiwałby automatycznie instalatory z dodanym timerem, którego wyniki byłyby mapowane do pamięci operacyjnej - a po skończonej operacji zapisywałby całość do pliku tekstowego i zwalniał pamięć.
Jeżeli dobrze rozumiem polecenie, powinieneś zbadać przy jakich warunkach osiągniesz największą wydajność instalacji i uruchamiania. To sugeruje, że należy dowiedzieć się jaka będzie optymalna liczba instalatorów, które maszyna może obsłużyć w jednym czasie. W prostej pętli uruchamiałbym od 1 do 10 instalatorów na raz i zapisywał czas wykonania obiegu całej pętli z timera do pliku. Po zakończonym działaniu mógłbyś sprawdzić, która iteracja pętli osiągnęła najkrótszy czas wykonania - to zaś pozwoliłoby jednoznacznie określić jaka liczba równolegle pracujących instalatorów pozwala osiągnąć najlepszą wydajność.

Z uruchamianiem gier sprawa jest o tyle cięższa, że trudno zweryfikować kiedy tak naprawdę gra jest uruchomiona. Proces powstaje jako zalążek i działa przez cały czas w tle, z obciążeniem zależnym od ilości operacji wykonywanych przez komputer w danym czasie, zaś sama struktura pliku *.exe nie pozwala na odebranie sygnału gotowości do pracy (bo niby skąd mamy wiedzieć, że właśnie wczytało się menu i możemy sobie poklikać?). Tu zwyczajnie nie mam pomysłu - proces instalatora po wszystkim automatycznie się kończy i nie ma żadnego problemu z zasygnalizowaniem stanu końcowego, natomiast odpalona aplikacja to lekka abstrakcja. Nie jestem na tyle obeznany w temacie testów, by móc poradzić cokolwiek konkretnego.

Gdybyś chciał więcej wskazówek co do pierwszej części, odezwij się przez PW lub na Steamie. Zdecydowanie łatwiej będzie mi to wyjaśnić z fragmentami kodu w trakcie zwykłej rozmowy.
Awatar użytkownika
Neil Danadris
Honorowy członek
 
Posty: 1187
Rejestracja: 08 kwie 2010, 9:47

Re: Zadanie domowe.

Postautor: Brealin Ub dodano: 27 kwie 2016, 15:15

Wielkie dzięki za pomoc i wsparcie, udało mi się dzięki Wam. :D
Awatar użytkownika
Brealin Ub
Były członek
 
Posty: 213
Rejestracja: 29 cze 2013, 11:24


Wróć do Kantyna

Kto jest online

Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 0 gości

cron