Autor Wątek: Pozorna optymalizacja  (Przeczytany 20366 razy)

0 użytkowników i 1 Gość przegląda ten wątek.

Pią, 11 Lip 2014, 08:08:17

Offline Kadaf

  • Kapitan
  • ***
  • Wiadomości: 1 362
  • Reputacja: 145
    • Zobacz profil
 Chciałbym się z wami podzielić moim spostrzeżeniem. Zazwyczaj po pojawieniu się kolejnej wersji zaczynamy własne programy kosmiczne od początku. Przynajmniej ja tak robię. I za każdym razem jestem pełen podziwu dla optymalizacji. Statki wczytują się błyskawicznie, przełączanie między nimi to już nie kilkusekundowe wczytywania, a cyk, od razu. Pięknie wszystko śmiga. Tylko że mój program rozrósł się do niemal pięćdziesięciu lotów trwających jednocześnie i nagle uderzył mnie fakt, że coś co chodziło pięknie tuż po instalce teraz nieprzyjemnie klatkuje. Czy nie macie wrażenia, że im więcej lotów naraz, tym gra bardziej ścina? Niby obiekty są wczytywane dopiero w odległości 2.3 km, tyle że... to właśnie chyba nie jest prawdą. Konkluzja moja jest taka, że optymalizacja to fikcja, po prostu pięknie chodzi pusty program bez żadnych lotów, a od takiego zazwyczaj zaczynamy gdy pojawia się nowa wersja. Natomiast z każdą kolejną jednostką jest coraz to wolniej. Ktoś powie, że mody. Tyle że ja nie używam ich zbyt wielu, a poza tym po załadowaniu moda widziałbym nagły spadek wydajności, a czegoś takiego nie notuje. Gra po prostu zwalnia stopniowo, w sposób powiedziałbym niezauważalny. W tej chwili przy jak wspomniałem pięćdziesięciu lotach mam wrażenie, że gra działa wolniej o dobre 30% albo i więcej.
Wiem, że jedna osoba podziela moje zdanie, że tak właśnie jest, a wy?

Pią, 11 Lip 2014, 09:07:00
Odpowiedź #1

Offline Drangir

  • Major
  • *
  • Wiadomości: 1 631
  • Reputacja: 92
  • Smok rakietowy
    • Zobacz profil
    • DeviantArt
Każdy aktywny lot to obciążenie dla RAM i procesora. Fizyki każdej części nie liczy, ale gra stale musi pilnować  prędkości, lokacji, wysokosci, czy statek nie jest przypadkiem w atmosferze itd.
To żaden błąd,  tylko suma wielu prostych obliczeń które działają zajmujac zasoby. Skąd pomysł że optymalizacja to fikcja? Zmniejsz ilość złomu pamietanego przez grę, zakanczaj loty, wykorzystuj osobne save'y. Nie trzeba tu teorii spisków.
Cytat: Steven Universe
- Wasze obliczenia były niepoprawne.
- Nie mogły być niepoprawne, skoro żadnych nie robiliśmy.

Reklama

Odp: Pozorna optymalizacja
« Odpowiedź #1 dnia: Pią, 11 Lip 2014, 09:07:00 »

Pią, 11 Lip 2014, 09:27:30
Odpowiedź #2

Offline Robson

  • Sierżant
  • ****
  • Wiadomości: 421
  • Reputacja: 22
    • Zobacz profil
    • Opowieści Kerbali
No właśnie, a optymalizacja powinna wyglądać na przeliczeniu orbity i zapisaniu jej do tablicy. Wraz z upływem czasu, pozycje statków pobierane by były z tej tablicy jako gotowce (patrz --> settings-->max physics delta time per frame). Nic nie trzeba liczyć na bieżąco, tylko po prostu wyświetlać dane. Tak się to zwykle realizuje, ale każdy programista to wie, więc podejrzewam (podejrzenie graniczące z pewnością), że w KSP też to jest tak zrobione.

[Post scalony: [time]Pią, 11 Lip 2014, 09:41:26[/time]]
Ja myślę, że chodzi o buforowanie pojazdów. Procesor musi je poskładać z części zapisanych do RAMu i gotowe modele przechowuje też w RAMie, wgrywają się może jak są blisko, ale do pamięci karty graficznej. Jak dadzą nam te 64 bity, to zobaczysz że się poprawi.
A nie próbowałeś pokombinować z pamięcią wirtualną? Jak coś się nie mieści w RAMie, to komputer przerzuca do VRAMu. Jak by Virtuala zrobić na jakiejś szybkiej karcie SD?

[Post scalony: Pią, 11 Lip 2014, 09:46:30]
Albo na niewykorzystanej części RAMu utworzyć wirtualny HD i wirtualnego rama przerzucić do tego hadeka? Myślę, że to by nawet zadziałało :D
« Ostatnia zmiana: Pią, 11 Lip 2014, 09:46:30 wysłana przez Robson »
Robson Kerman - Profesor Orbitologii Teoretycznej. Zabójca Piwo Grillsa Kermana zwanego Niedźwiedziem z Eve.
Jego oficjalnym guru jest Sobol - budowniczy wspaniałych części rakiet.

Pią, 11 Lip 2014, 09:46:57
Odpowiedź #3

Offline Drangir

  • Major
  • *
  • Wiadomości: 1 631
  • Reputacja: 92
  • Smok rakietowy
    • Zobacz profil
    • DeviantArt
Jeśli się wczytasz w strukturę plików zapisu gry znajdziesz to o czym mówisz - właściwosci orbity, prędkość itd. w mozliwie prostej formie. Tyle że te dane są aktualizowane wiele razy na sekundę. Przy 10, 20 lotach to działanie jest zwykle niezauwazalne, ale przy większej ilości następuje akumulacja tej drobnicy i spadek wydajnosci. No i gra musi sprawdzac czy obiekt nie rozbije sie o powierzchnię czy spali w atmosferze - tego nie oblicza z góry.

[Post scalony: Pią, 11 Lip 2014, 09:53:42]
Cytuj
wgrywają się może jak są blisko, ale do pamięci karty graficznej. 
Kadafowi chodziło raczej o liczenie fizyki przy 2.3 km - poza tą sferą statki są na szynach.
Jest mod który pozwala patrzeć na unieruchomione modele z wielu kilometrów i ma bardzo mały wpływ na wydajnosc (co innego stabilnosc)
« Ostatnia zmiana: Pią, 11 Lip 2014, 09:53:42 wysłana przez Drangir »
Cytat: Steven Universe
- Wasze obliczenia były niepoprawne.
- Nie mogły być niepoprawne, skoro żadnych nie robiliśmy.

Reklama

Odp: Pozorna optymalizacja
« Odpowiedź #3 dnia: Pią, 11 Lip 2014, 09:46:57 »

Pią, 11 Lip 2014, 09:57:44
Odpowiedź #4

Offline Robson

  • Sierżant
  • ****
  • Wiadomości: 421
  • Reputacja: 22
    • Zobacz profil
    • Opowieści Kerbali
No to trzeba usunąć persistent.sfs, albo ustawić debrisy na 0.
Robson Kerman - Profesor Orbitologii Teoretycznej. Zabójca Piwo Grillsa Kermana zwanego Niedźwiedziem z Eve.
Jego oficjalnym guru jest Sobol - budowniczy wspaniałych części rakiet.

Pią, 11 Lip 2014, 10:39:14
Odpowiedź #5

Offline JackRyanPL

  • Redaktor
  • Podporucznik
  • *****
  • Wiadomości: 924
  • Reputacja: 65
    • Zobacz profil
Albo zmienić parametr w ustawieniach. Mamy możliwość 0 kub nawet 1000 debrisów. Ja mam aktualnie kosmos czysty, ale 1,5 roku temu miałem coś koło 40-50 podobnej wielkości odłamków i nie widziałem problemów.

Reklama

Odp: Pozorna optymalizacja
« Odpowiedź #5 dnia: Pią, 11 Lip 2014, 10:39:14 »

Pią, 11 Lip 2014, 11:57:49
Odpowiedź #6

Offline Kadaf

  • Kapitan
  • ***
  • Wiadomości: 1 362
  • Reputacja: 145
    • Zobacz profil
Nie mam debrisów, te 50 lotów to sondy, pojazdy itd itp. Ale zdaje się nie zrozumieliście mnie. Chodzi o to, że w wersji 0.20 czyli rok temu, na tym samym kompie mam takie samo klatkowanie jak teraz, przy porównywalnej ze stanem z przed roku ilości lotów. Czyli? Optymalizacja w ciągu roku prac nad KSP wyniosła ile? Zero. Dlatego właśnie nazywam ją pozorną.

Pią, 11 Lip 2014, 12:07:18
Odpowiedź #7

Offline Robson

  • Sierżant
  • ****
  • Wiadomości: 421
  • Reputacja: 22
    • Zobacz profil
    • Opowieści Kerbali
Czas spojrzeć rzeczywistości prosto w twarz i stwierdzić oczywistą oczywistość, że panowie ze Squadu, to kiepscy programiści. Może jak projekt się rozrośnie, to kogoś zatrudnią, jakąś mądrą głowę?
Robson Kerman - Profesor Orbitologii Teoretycznej. Zabójca Piwo Grillsa Kermana zwanego Niedźwiedziem z Eve.
Jego oficjalnym guru jest Sobol - budowniczy wspaniałych części rakiet.

Reklama

Odp: Pozorna optymalizacja
« Odpowiedź #7 dnia: Pią, 11 Lip 2014, 12:07:18 »

Pią, 11 Lip 2014, 12:32:47
Odpowiedź #8

Offline Metall69

  • Kapral
  • **
  • Wiadomości: 116
  • Reputacja: 4
    • Zobacz profil
Absolutnie się zgadzam, po wczytaniu savu PMB gra całkiem straciła wydajność, nawet w VAB. Na czystych savach nie ma żadnych kłopotów.

Pią, 11 Lip 2014, 12:48:20
Odpowiedź #9

Offline Drangir

  • Major
  • *
  • Wiadomości: 1 631
  • Reputacja: 92
  • Smok rakietowy
    • Zobacz profil
    • DeviantArt
@up
To gra o podboju kosmosu na silniku służącym do biegania kozą z lepkim językiem lub zrzucania książek z półek w symulatorze kota. Czy Felipe jest kiepskim programistą trudno mi stwierdzić, bo poza optymalizacją trudno jest mi cokolwiek zarzucić tej grze - sklaniam się raczej ku teorii, że z ...piasku bata nie ukręcisz. Inne niezależne gry z zaawansowaną fizyką ale na autorskich silnikach działają dużo lepiej niż KSP. Chcieli sobie ułatwić życie, to teraz w sandboxie  głównym limitem części jest wyłącznie wydajnosc sprzętu :|. Zobaczymy też czy to się nie poprawi po latce 64 bit, przecież ciągle nad  opty pracują a gra wciąż jest w produkcji (3 lata, hehe.)
Kadaf - chętnie bym zobaczył konkretne testy z 0.20 i 0.23.5. Sam często odczuwam po miesiącu po nowej wersji spadek komfortu, ale nie wiem czy to nie po prostu kwestia przyzwyczajenia... i budowania większych pojazdów.
Cytat: Steven Universe
- Wasze obliczenia były niepoprawne.
- Nie mogły być niepoprawne, skoro żadnych nie robiliśmy.

Reklama

Odp: Pozorna optymalizacja
« Odpowiedź #9 dnia: Pią, 11 Lip 2014, 12:48:20 »

Pią, 11 Lip 2014, 18:08:23
Odpowiedź #10

Offline DragonsNightmare

  • Sierżant
  • ****
  • Wiadomości: 505
  • Reputacja: 8
    • Zobacz profil
@UP: Zgodze się, moim zdaniem silnik Unity słabo się nadaje do symulacji kosmosu. Patrząc na KSP i Orbiter, to KSP lubi mi się przyciąć, a Orbiter spokojnie chodzi i nic się nie tnie. I tu i tu jest dużo obliczeń, a różnica w działaniu jest. Tylko, że KSP jest pisane w C# z wykorzystaniem Unity, a Orbiter w C++ z wykorzystaniem silnika fizyki Newton Engine.
« Ostatnia zmiana: Pią, 11 Lip 2014, 20:26:24 wysłana przez kamils096 »

Sob, 12 Lip 2014, 01:01:13
Odpowiedź #11

Offline Raynus

  • Sierżant
  • ****
  • Wiadomości: 501
  • Reputacja: 17
    • Zobacz profil
Zakupcie sobie grę The Forest, która jest w bardziej wczesnej alphie, jeżeli nie pre-alphie (wersja 0.03 jakoś teraz jest), ale jest grywalna. Jest ona robiona na Unity i wcale nie potrzeba tam nie wiadomo jakiej fizyki, by gra po prostu chodziła okropnie. Myślałem, że to mój sprzęcior już jest przestarzały, dopóki nie przeczytałem, że ludzie z GTX770 i i7'kami narzekają na ścinki przy średnich ustawieniach :P

Reklama

Odp: Pozorna optymalizacja
« Odpowiedź #11 dnia: Sob, 12 Lip 2014, 01:01:13 »

Sob, 12 Lip 2014, 13:07:20
Odpowiedź #12

Offline Moskit

  • Kapral
  • **
  • Wiadomości: 194
  • Reputacja: 31
    • Zobacz profil
Forest na moim i7-4770k i GTX780 też jakoś obłędnie nie działa. Uroki pre-alphy/alphy/bety. ;)