Re: OS/2 a Win NT i sesje DOS

Autor: Jan Stožek (jasio_at_polbox.pl)
Data: Tue 20 Jan 1998 - 23:45:00 MET


On 19 Jan 1998 11:04:38 +0100, Sławomir Stachniewicz wrote:

:> Oczywiscie, VP 1.1 pod OS/2 okazal sie duzo szybszy,
:>niz TP 7.0 pod PC DOS 7.

        To wcale nie jest takie oczywiste. Zależy, co się robi. ;)

:>Dla hecy "zapuscilem" program DOS-owy
:>w sesji DOS pod OS/2 - i tu pierwszy szok: chodzil SZYBCIEJ,
:>niz pod DOS !!! A to prawie wylacznie kod na koprocesor !!!

        A to rzeczywiście ciekawe. A ile tam było operacji ekranowych?
        Mi się kiedyś zdarzyło przekompilować pod VP 1.0 jakieś swoje programy pisane z
Turbo Vision w środowisku znakowym. Efekt był też ciekawy, ale nieco inny. Okna przesuwały się
_żenująco_ powoli (było wyraźnie widać poszczególne fazy ruchu, a opóźnienie było tak duże, że
chwilami traciłem kontrolę nad oknem. W wersji DOS-owskiej (puszczanej w oknie) odbywało się
to jednak znacznie płynniej. Mam też wrażenie (robiłem to dość dawno, i nie do końca wszystko
pamiętam), że choć wersja dla OS/2 mniej obciążała system w czasie pracy, to jednak nie udało
mi się zdusić obciążenia jałowego do tego poziomu, co w wersji dla DOS. Inna rzecz, że miałem
dość prostą sytuację: program był wybitnie interaktywny, i jak go nie ruszałem, to po prostu miał
nic nie robić. Jakby miał coś dziubać w tle, to miałbym problem ze ustawieniem wersji DOS-owej,
bo by mu system zabrał cały przydział procesora (właściwa praca TV wymaga, aby klawiatura
jednak była dość często sprawdzana). Działałem na 486DX2-66; nie pamiętam ile wtedy miałem
RAM-u (24?), pod WARP 3.

:>2. Sesje DOS pod OS/2 i NT4 dzialaja szybciej, niz czysty DOS
:> (przynajmniej wtedy, gdy system nie jest obciazony).

        Efektywniejsza obsługa wywołań systemowych? W końcu kod emulacji BIOS i DOS też
może być 32-bitowy albo wykonywany z innym priorytetem.... ale skoro korzystasz z samego
koproca? A jak jest z pamięcią? Ale pewnie nie korzystałeś z extendera, więc to nie ma
znaczenia... Czy program zwala coś na dysk w czasie pracy? To może być dość istotne, bo OS to
może sparalelizować (cache). Ale pewnie nic nie piszesz. A jeśli piszesz lub czytasz, to czy i jaki
cache miałeś pod DOS-em?

:>3. Jesli cos jest szybsze pod DOS, to niekoniecznie tak jest
:> pod OS/2 i NT (N+E+G- ZAWSZE szybsze od N+E-G+).

        Ciekawe... wpływ E+/E- na szybkość działania programu jest dla mnie pewną zagadką...
w końcu nie słyszałem, żeby komuś wyrósł koproc w czasie działania programu (choć fakt, może
zniknąć :) w sumie wystarczyłoby sprawdzenie jego obecności na początku i uaktywnienie innej
biblioteki w czasie ładowania... albo lepiej przechwytywanie TRAP-ów, które pewnie generuje
proc jak trafi na obcy rozkaz i nie zwęszy odpowiedniego koproca. Tak czy owak, w obecności
dopalacza wpływu tej opcji na szybkość być chyba nie powinno. :(
        A co do różnicy między G- a G+ w oknie DOS-owym... czy Intele w trybie wirtualnym w
ogóle wykonują instrukcje 286, czy też trzeba je emulować? Jeżeli trzeba, to może kluczem
rozwiązania jest inny mechanizm emulacji tych instrukcji w WARP 3 i 4?

:>4. Sesje pelnoekranowe sa odrobine szybsze, niz sesje w oknie
:> (tu: zwykle o 0.14-0.16 sek.).

        Mało, ciekawe... pewnie bardzo mało wyrzucasz na ekran. Ciekawe jest jednak, że sesje
VMB (pewnie z domyślnymi ustawieniami, czyli Full - o tym nie piszesz) są sporo "cięższe" od
dormalnych. Sugeruje to efektywniejszą pracę DOS-kernela w OS/DOS-ie niż w PC-DOS-ie.

:>5. OS/2 v3 wypadl nieznacznie lepiej. niz v4.

        W granicach błędu... niecałe 2 promille w sesji OS/2 to żadna różnica. 3% w sesjach DOS
to też niewiele, choć różnica jest zauważalna i porównywalna do wpływu pozostałych czynników.

:>7. Roznice miedzy poszczegolnymi sesjami VMB byly minimalne
:> (wiekszosc w granicach bledu z wyjatkiem N+E+G+ dla
:> PC DOS 7.0).

        Rzeczywiście wygląda ciekawie... DOS 7 się zachowuje bardziej merlinowato niż
pozostałe sesje... ale interesujący jest również praktyczny brak zależności szybkości pracy od
parametrów kompilacji w pozostałych sesjach (w przeciwieństwie do wbudowanych sesji DOS).

:> Na razie tyle mi przychodzi do glowy. Jak ktos ma
:>jeszcze jakies komentarz, to prosze bardzo.

        Proszę bardzo. Ale nie siedziałem nad tymi cyferkami nadmiernie długo, tak że to są
raczej luźne uwagi niż dogłębna analiza.

        BTW - jeżeli sesja DOS w NT jest tylko "nieco" wolniejsza niż pod OS/2 - a to jest 10%
różnicy, w porównaniu do ponad 20% w stosunku do pure DOS - to wszystkie różnice w
parametrach pracy pod OS/2 są po prostu nieistotne. :)

        I na koniec... ciekawie byłoby porównać te wyniki z natywnym (32-bitowym) kompilatem
dla NT.

Pozdrawiam serdecznie,

(js).

mailto:jasio_at_polbox.pl



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:16:02 MET DST