Ah...quello sì, è p-code...ma l'exe di default è compilato (basta vedere nelle proprietà del progetto)...
Ho usato uno degli algoritmi postati nel thread dei numeri primi...
Questo è in C++:
Codice:
#include <iostream>
#include <cmath>
#include <vector>
using namespace std;
#define N 10000000
int main()
{
unsigned long n = N;
bool *data = new bool[N];
fill( data , data + n , true );
data[0] = data[1] = false;
int tStart = timeGetTime();
for ( unsigned long i=2 ; i < sqrt(n) ; ++i )
if ( data[i] )
{
unsigned long m = i*2;
do
{
data[m]=false;
m+=i;
}while( m < n );
}
int tEnd = timeGetTime();
cout << tEnd - tStart << endl;
}
E questo in VB:
Codice:
Const NUM = 10000000
Private Declare Function timeGetTime Lib "winmm.dll" () As Long
Private Sub Form_Load()
Dim n, i, tStart, tEnd, m As Long
Dim data(NUM) As Boolean
n = NUM
For i = 1 To NUM
data(i) = True
Next i
data(1) = False
tStart = timeGetTime
For i = 2 To Sqr(n)
If data(i) Then
m = i * 2
Do
data(m) = False
m = m + i
Loop While m < n
End If
Next i
tEnd = timeGetTime
MsgBox CStr(tEnd - tStart)
End Sub
L'algoritmo l'ho riportato pari pari...ed il tempo viene preso nella stessa posizione...
Con VC++ : 1699 ms
Con VB p-code : 7560 ms
Con VB EXE compilato : 3999 ms
Le differenze non sono abissali, ma ci sono...