Buongiorno a tutti,
Mi presento, sono un vecchio (il tempo scorre veloce) sviluppatore e il linguaggio con cui ho sempre lavorato il VB6, e nel caso di super prestazioni preferisco integrare con il buon vecchio C.
Come tutti, negli ultimi 25 anni sia per necessit che per passione, ne ho visti (e provati) di linguaggi, dialetti, IDE, RAD ecc ecc. Con alcuni ho fatto qualche lavoro, con altri ho perso solo del tempo… le mode passano ma i clienti hanno bisogno di soluzioni stabili e durature…
Inutile dire che in azienda abbiamo centinaia di migliaia di righe di codice VB6 in attivo, che ci hanno dato (e ancora danno) grandi soddisfazioni, a noi e ai nostri clienti.
Conoscevo RB e la sua storia anche se non l’ho mai usato, ed era da qualche anno che mi ripromettevo di testarlo per valutare la possibilit di utilizzarlo sia nei nuovi progetti che nel porting dei miei principali applicativi.
Girando sul Web non ho trovato nessuna tabella o applicazione di esempio che confrontasse le prestazioni dei due compilatori (VB6 e RB… anzi Xojo), cos un p per curiosit, un p per esercizio, un p per prendere la mano, ho scritto qualche riga di codice che voglio condividere. Potrebbe capitare che faccia comodo a qualche altro neofita come me ;).
Per mantenere il codice confrontabile, oltre l’uso di tipi Long, non ho applicato nessuna ottimizzazione spinta sul codice VB6 (per Xojo non credo di esserne ancora capace, anzi se qualche veterano trova qualche ottimizzazione da applicare ovviamente benvenuto…)
Vista la mancanza dell’oggetto Array in VB6, ho usato anche per Xojo dei normali vettori, tutti i tempi sono espressi in secondi.
------------------------------------------------------------------------------------------------------------
| VB6 | Xojo 32 | Xojo 64 |
------------------------------------------------------------------------------------------------------------
Riempimento di vettore con 3000 numeri interi | 0.01321 | 0.012026 | 0.006525 |
Riordino del vettore con Bublesort | 2.245812 | 16.61888 | 9.018532 |
Riordino del vettore con Mergesort | 0.028688 | 0.041791 | 0.020041 |
(Solo Xojo) uso del metodo Array.sort | --- | 0.015008 | 0.001890 |
Riempimento di due colonne ListBox | 0.301999 | 0.026987 | 0.020228 |
------------------------------------------------------------------------------------------------------------
Riempimento di vettore con 3000 stringhe casuali| 0.171875 | 0.105026 | 0.054691 |
Riordino del vettore con Bublesort | 125.6914 | 155.5215 | 94.43404 |
Riordino del vettore con Mergesort | 0.1875 | 0.136116 | 0.073802 |
(Solo Xojo) uso del metodo Array.sort | --- | 0.050611 | 0.347832 |
Riempimento di due colonne ListBox | 0.265625 | 0.030731 | 0.017094 |
------------------------------------------------------------------------------------------------------------
Creazione di una stringa da 638000 word | | | |
(accodamento progressivo stringa da 319crt) | 5.288344 | 2.379218 | 2.406868 |
Split della stringa in un vettore | 1.030594 | 0.065178 | 0.070917 |
Join del vettore in una stringa | 0.031844 | 0.023851 | 0.024207 |
Replace di caratteri | 0.126844 | 0.001321 | 0.001413 |
Creazione di una stringa da 30000 word | | | |
(accodamento progressivo di singole word) | 0.591687 | 0.132891 | 0.140901 |
Riempimento di TextBox multiriga con 30000 word | 159.170563 | 18.157072 | 11.237082 |
------------------------------------------------------------------------------------------------------------
Grafico Mandelbrot: Calcolo | 2.61481 | 7.23671 | 1.44987 |
Disegno | 0.27869 | 0.008241 | 0.003810 |
------------------------------------------------------------------------------------------------------------
Ricerca numeri primi da 0 a 10000000 | 0.08256 | 0.200393 | 0.143445 |
Riempimento ComboBox con 664579 numeri | 17.05638 | 12.51993 | 13.22566 |
------------------------------------------------------------------------------------------------------------
Scrittura in un File di 21.610.000 word | 0.24249 | 0.06136 | 0.05446 |
Lettura da un File di 21.610.000 word | 0.23131 | 0.07056 | 0.05618 |
------------------------------------------------------------------------------------------------------------
La macchina usata un i7-4790 a 3.60GHz |Questi valori sono la media di 3 prove consecutive
Da una prima analisi evidente l’efficienza di Xojo nella gestione degli oggetti ListBox, ComboBox, Canvas e in particolare TextArea, sia 64 che 32, rispetto agli equivalenti di VB6.
Dovendo paragonare Xojo_32 con VB6, pare che quest’ultimo sia pi efficiente solo nella manipolazione dei numeri, mentre con le stringhe il VB6 si difende bene, a parte il BubleSort, dove non capisco perch, ma VB6 domina .
Detto questo risulta evidente la superiorit del compilatore Xojo a 64 rispetto al 32 e naturalmente rispetto VB6. Per chi abituato all’IDE di VB6 , trover quello di Xojo un p scomodo e ostico, ma dopo qualche ora e con un p di pazienza si riesce a gestirlo (forse per i progetti complessi e con molti form non molto comodo), per ora tutto, buon divertimento.
questi sono gli screenshot dei programmi di test
e qui il link con i sorgenti delle due versioni
Spero di essere stato utile a quanti si vogliano avvicinare a questo ambiente di svilupo, secondo me non sufficientemente valorizzato.
…