Spesso può essere utile poter confrontare computer anche profondamente differenti tra loro per hardware e sistema operativo. Ne avvertiamo la necessità in particolare noi Amighisti sia per dimostrare l'efficienza del nostro Sistema Operativo rispetto ad altri ben piu' diffusi,sia perche' forse in un futuro non molto lontano dovremo scegliere fra possibili successori del nostro computer. Frequentando it.comp.amiga ho visto che per superare la prima esigenza è sufficiente mostrare alcuni ineguagliabili programmi per Amiga o i porting di Doom o Quake che girano in perfetto multitasking,per lasciare sbalorditi gli utenti di PC abituati ormai a dover usare un Pentium ad almeno 166 MHz anche solo per usare un word processor. La seconda invece non si è ancora presentata,in quanto ancora non è uscito nessun degno successore dell'Amiga. Esistono numerosi metodi per misurare le prestazioni dei computer, si possono eseguire dei normali programmi,misurando il tempo che impiegano, oppure altri ideati a tale scopo, i benchmark. Alcuni di essi si concentrano sulla pura potenza di calcolo o di accesso alla memoria, altri eseguono molte altre misurazioni (è il caso del noto AIBB,il cui sviluppo è però fermo da tempo), alcuni esistono per una sola piattaforma,altri (come quello ideato dalla rivista Americana "Byte") sono portabili e permettono il confronto tra computer completamente diversi. Purtroppo pero' i pochi benchmark portabili eseguono soprattutto test che riguardano la velocità della CPU o l'accesso alla memoria,ma tralasciano altri elementi importanti per misurare le prestazioni del computer nell'uso reale,di tutti i giorni,come ad esempio la velocità della grafica o di accesso al disco. Spesso perciò si ricorre all'uso di normali programmi,che esistano per entrambe le piattaforme che si vogliono confrontare e si misura manualmente il tempo che impiegano a compiere le stesse operazioni. L'uso di questo metodo è però limitato dall'impossibilità di trovare molti programmi di diverso tipo che esistano per qualunque computer. Per quest motivi ho iniziato lo sviluppo di P.O.S.B.B.,Portable OS Based Benchmark,cioè un benchmark Portabile e che nei suoi test usa le stesse funzioni di sistema che un programma "reale" userebbe per compiere una certa operazione. Al momento ne esistono due versioni,una per Amiga ed una "generica",che puo' essere compilata senza modifiche su qualunque computer,ma che per questo non esegue ne potrà mai eseguire tutti i test delle versioni specifiche per una sola piattaforma. Il programma viene distribuito con i sorgenti ed il porting verso altre macchine dovrebbe essere molto rapido. L'attuale versione Amiga (v 0.17) esegue i test: - CopyMem (velocità della copia di memoria) - printf (velocità dell'output verso stdout) - IMath (velocità di alcune semplici operazioni matematiche,come addizioni,sottrazioni,moltiplicazioni e divisioni,tra numeri interi) - FPMath (velocità delle stesse operazioni di Imath,ma con numeri in virgola mobile) - TMath (velocità di funzioni trigonometriche come seno,coseno e tangente) - Read (velocità di lettura dall hard disk) - Write (velocità di scrittura sull'hard disk) - WritePixel (velocità di tracciamento di singoli pixel in una finestra,con la funzione graphics.library/WritePixel()) - DrawEllipse (velocità di tracciamento di ellissi in una finestra,con la DrawEllipse()) - Draw (velocità di trecciamento di linee in una finestra,con la funzione Draw()) L'attuale versione "generica" (v 0.12),comprende tutti i test della versione Amiga tranne quelli grafici. In futuro saranno aggiunti altri test,tra cui: - sorting di stringhe e/o numeri - creazione/aggiornamento di una complessa GUI - codifica/decodifica JPEG - codifica/decodifica MPEG,video e/o audio - compressione/decompressione dei dati - ray tracing - test "multitasking" che potrebbe consistere nel ripetere alcuni degli altri test su due task contemporaneamente Inoltre nelle future versioni il programma basandosi sui risultati del "test del multitasking" e sul rapporto tra i tempi impiegati nei vari test che piu' impegnano la CPU ed gli indici come SpecInt e SpecFP dichiarati dalla casa produttrice,potrebbe essere in grado di dare un giudizio sull'efficienza generale del sistema. E' possibile collaborare al progetto POSBB,per creare nuovi test,portare il programma su una piattaforma non ancora supportata,o semplicemente per raccogliere i risultati relativi al maggior numero possibile di configurazioni diverse. Conclusioni Dalle prime prove effettuate sul mio Amiga 1200 con '030 a 40MHz e su un PC con Pentium a 100 MHz e Sistema Operativo (?) Windows95,i risultati erano apparsi anche troppo favorevoli all'Amiga: nel CopyMem e nel printf impiegava solamente tre secondi piu' del PC (su circa 15"). Poi configurando diversamente il compilatore (GNU C),in modo che il codice generato non utilizzasse la DLL cygwin32.dll (che ha la stessa funzione della libreria condivisa ixemul.library su Amiga), le prestazioni del PC sono migliorate,ma il divario tra i risultati ottenuti da Posbb sui due computer della prova è molto minore di quello,enorme,tra la pura velocità di calcolo di un 68030 e quella di un Pentium. Già questi primi risultati,ma soprattutto quelli dei test piu' ad alto livello,che coinvolgeranno maggiormente il sistema operativo,dimostrano oggettivamente la sensazione di semplicità,velocità ed efficienza che AmigaOS trasmette nell'uso di tutti i giorni,e che ci permette di usare computer che sotto molti altri aspetti sono purtroppo ormai superati.