🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.programming
Article #192

Watcom C/C++ 10.0

#192
From: w... Marcin Witek
Date: Tue, 16 Jan 1996 00:00
44 lines
2586 bytes
  Bawilem sie ostatnio w porownywanie Watcom C/C++ 10.0 i DJGPP. Robilem cos 
takiego: pisalem jakas procedurke w C i kompilowalem na obu kompilatorach,
potem robilem disasemblacje i porownywalem to co wyszlo. I coz... bylo bardzo
podobnie ale Watcom czasem sie prawie kompromitowal, proponuje wpisac cos
takiego :

char *ekran=0xa0000;    // dla Watcom
char *ekran=0xe00a0000  // dla DJGPP 

int i,j;
for(i=0;i<24;i++)
  for(j=0;j<80;j++)
    *(char *)(ekran+i*160+j*2)=15;

optymalizacje: DJGPP -O2
               Watcom -4r -oneatx -zp4

  Watcom wstawia tam zupelnie niepotrzebnego imula, DJGPP robi to wyraznie
lepiej. W ogole DJGPP wszystkie mnozenia przez stale zamienia na przesuniecia
a Watcom nie ( niektore zamienia a niektore nie, ciekawe... ).
  Dla Watcoma mozna sobie ustalic jak maja byc przekazywane parametry, czy
przez stos czy przez rejestry a nawet okreslic dokladnie przez ktory rejestr
ktory parametr ( bardzo fajna rzecz ).
  Watcom przy optymalizacji na 486 ustawia poczatek wszystkich petli na 
paragraf ( 16 bajtow ) co przy kilku zagniezdzonych szybkich petlach powoduje
wolniejsze dzialanie niz przy wyrownaniu do 4 bajtow ! ( np. -3r ).
  Troche szkoda ze Watcom nie ma instrukcji asm i wszystkie wstawki 
asemblerowe trzeba robic jako osobne funkcje co nie zawsze jest wygodne
( np. taka wstawka moze miec 2 instrukcje: mov ax,0x13; int 0x10 ).
  Watcom 10.0 posiada calkiem nowy debugger WD i jest on naprawde niezly, 
jestem gotow stwierdzic ze jest lepszy niz TD. Poza tym Watcom kompiluje
nawet 6 razy szybciej niz DJGPP. NIestety zaden z nich nie posiada srodowiska
pod DOS ( co mi akurat nie przeszkadza ).
  Z tego wszystkiego wychodzi ze DJGPP powinien dawac szybszy kod niz
Watcom, no i tu wlasnie sie zdziwilem... . Otoz napisalem taki troche wiekszy
program w C++ ( kilka klas, funkcje wirtualne, rysowanie na ekranie, wszystko
wlasne procedurki bez korzystania z zadnych bibliotek graficznych itp. 
i wszystko napisane w czystym C/C++ bez asemblera ), i to wszystko chodzilo
szybciej pod Watcom. A poza tym Watcom ma standardowy asembler ( mozna 
korzytac z TASMa ), a DJGPP taki dziwny UNIXowy.

                                                     Wit

  
Technical Details
Message-ID: <4dg463$2hd@hades.polsl.gliwice.pl>
Path: mbox-mo1.pugleaf.net!unknown!not-for-mail

Show Full Headers
Complete Article Headers
From: w...@zeus.polsl.gliwice.pl (Marcin Witek)
Subject: Watcom C/C++ 10.0
Date: 1996/01/16
Message-ID: <4dg463$2hd@hades.polsl.gliwice.pl>
X-Deja-AN: 135490207
organization: Politechnika Slaska w Gliwicach
newsgroups: pl.comp.programming
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 7bit