[vb] hoe veeel sneller rekenen?

Pagina: 1
Acties:

  • rjsomeone
  • Registratie: Juli 2001
  • Laatst online: 20-11-2023

rjsomeone

a.k.a. Tuslsh

Topicstarter
Ik zoek een manier waarop vb veel sneller rekent (ik ga er eigenlijk vanuit dat ik iets fout doe, want ik verbaas me over de traagheid)

Hier gaat het (sterk vereenvoudigd) om:

dim x as long (als double kan ook)
do
x = x+1
loop

na ong. 10 sec staat x op 60473155..
Dat duurt me veel te lang, en zo'n trage computer heb ik ook weer niet (p3 450mhz). De bedoeling is eigenlijk dat ie binnen 5 seconden tot 1e100 telt, maar da's vast te veel gevraagd :)..
Tips om 't in iedergeval sneller te maken?

Hier had uw advertentie kunnen staan :).


  • Ramon
  • Registratie: Juli 2000
  • Nu online
x=x+2... x=x+10?

misschien doet vb ook wel x++?

dat is gewoon x = x + 1 maar dan korter opgeschreven.

probeer dat eens?

Check mijn V&A ads: https://tweakers.net/aanbod/user/9258/


  • rjsomeone
  • Registratie: Juli 2001
  • Laatst online: 20-11-2023

rjsomeone

a.k.a. Tuslsh

Topicstarter
x=x+2... x=x+10?
ja, zo kan ik natuurlijk ook doen x = x +1e99, dan ben je er gelijk :P nee daar heb ik niks aan, want hij moet ook wat doen met elk getal...
misschien doet vb ook wel x++?
x++ doet 't in iedergeval niet(net geprobeerd). of er iets anders bestaat weet ik niet...

Hier had uw advertentie kunnen staan :).


  • CrashOne
  • Registratie: Juli 2000
  • Niet online

CrashOne

oOoOoOoOoOoOoOoOoOo

Probeer:

x += 1

x++

eens.

ken de taal niet dus misschien kan het helemaal niet

edit:

de tweede blijkt dus al niet te werken.

Huur mij in als freelance SEO consultant!


  • Predator
  • Registratie: Januari 2001
  • Laatst online: 18:48

Predator

Suffers from split brain

Op donderdag 15 november 2001 18:48 schreef Tampie2000 het volgende:
x=x+2... x=x+10?

misschien doet vb ook wel x++?

dat is gewoon x = x + 1 maar dan korter opgeschreven.

probeer dat eens?
x++ is C++/Java en zo

In VB werkt dat niet

VB sux nogal btw :)
als programmeertaal is dat niet veel waart.
Is meer een scripttaal dan een programmeertaal.
Heeft een hoop tekortkomingen.

Everybody lies | BFD rocks ! | PC-specs


  • Predator
  • Registratie: Januari 2001
  • Laatst online: 18:48

Predator

Suffers from split brain

btw je schrijft toch niet CONSTANT de waarde van x op het scherm in een grafische box ???
want dat vertraagd ENORM

Everybody lies | BFD rocks ! | PC-specs


  • rjsomeone
  • Registratie: Juli 2001
  • Laatst online: 20-11-2023

rjsomeone

a.k.a. Tuslsh

Topicstarter
VB sux nogal btw :)
als programmeertaal is dat niet veel waart.
Is meer een scripttaal dan een programmeertaal.
Heeft een hoop tekortkomingen.
Kan c++ wel sneller tellen dan?

Hier had uw advertentie kunnen staan :).


  • rjsomeone
  • Registratie: Juli 2001
  • Laatst online: 20-11-2023

rjsomeone

a.k.a. Tuslsh

Topicstarter
Op donderdag 15 november 2001 18:57 schreef Pr3d4t0r het volgende:
btw je schrijft toch niet CONSTANT de waarde van x op het scherm in een grafische box ???
want dat vertraagd ENORM
ja snap ik, ik heb alleen dit er staan:
dim x as long (als double kan ook)
do
x = x+1
loop

na 10 sec druk ik op break, en dan kan ik in vb aflezen waar x op staat (is dus in debug mode, maar zo ontzettend veel zal het niet schelen met een gecompileerde lijkt me)

Hier had uw advertentie kunnen staan :).


  • Predator
  • Registratie: Januari 2001
  • Laatst online: 18:48

Predator

Suffers from split brain

Op donderdag 15 november 2001 18:57 schreef rjsomeone het volgende:

[..]

Kan c++ wel sneller tellen dan?
Maybe
test het es :)
ligt ook aan de compiler

in puur rekenwerk is c++ zeer snel

Everybody lies | BFD rocks ! | PC-specs


Verwijderd

Op donderdag 15 november 2001 18:59 schreef rjsomeone het volgende:
(is dus in debug mode, maar zo ontzettend veel zal het niet schelen met een gecompileerde lijkt me)
Think again dude ;)

  • rjsomeone
  • Registratie: Juli 2001
  • Laatst online: 20-11-2023

rjsomeone

a.k.a. Tuslsh

Topicstarter
Op donderdag 15 november 2001 19:01 schreef Pr3d4t0r het volgende:

[..]

Maybe
test het es :)
ligt ook aan de compiler

in puur rekenwerk is c++ zeer snel
ik heb wel c++ maar ik kan er compleet niet mee omgaan.. heeft iemand iets van een code zoals hierboven die na 10 sec print waar ie is?

Hier had uw advertentie kunnen staan :).


Verwijderd

Mag is misschien vragen wat het nut hiervan is?

Verwijderd

Op donderdag 15 november 2001 18:59 schreef rjsomeone het volgende:
(is dus in debug mode, maar zo ontzettend veel zal het niet schelen met een gecompileerde lijkt me)
Benchmarkje.
code:
1
2
3
4
5
6
7
8
9
10
11
Private Declare Function GetTickCount Lib "kernel32" () As Long

Private Sub Command1_Click()
Dim x As Long
Dim s As Long
s = GetTickCount
While GetTickCount - s < 10000
 x = x + 1
Wend
MsgBox "X=" & x
End Sub

Exe : X= 207343541
vb : X= 30180617

bijna 7x sneller dus...

  • rjsomeone
  • Registratie: Juli 2001
  • Laatst online: 20-11-2023

rjsomeone

a.k.a. Tuslsh

Topicstarter
Ik heb het iets anders gemaakt, hij telt tot 1e7, en dan zegt ie hoelang ie er over gedaan heeft:


starttime = Timer
Do
x = x + 1
Loop While x < 10000000#
endtime = Timer
MsgBox "Duration: " + Str(endtime - starttime) + "."

Debug: 8.85
gecompileerd: 4.01

de helft ongeveer dus.. scheelt tenminste iets....

Hier had uw advertentie kunnen staan :).


  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

het nut? ik vind dit vrij interessant 8-)

VB *is* gewoon langzamer dan een goede C/C++ compiler, dat staat vast...
En probeer eens te compileren naar .EXE en kijk dan hoe snel het gaat, komt het niet omdat VB zolang het niet gecompileerd is, interpreteert? Ik ken VB verder niet zo goed maar dat was vroeger wel zo in bepaalde Basic implementaties...

Hmmzz het bewijs is al gegeven zie ik :)

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • Predator
  • Registratie: Januari 2001
  • Laatst online: 18:48

Predator

Suffers from split brain

#include <time.h>
#include <iostream.h>
void main (void) {
clock_t start,stop;
start = clock();
for (int i=0;i<60473155;i++)
stop = clock();
cout<<"Time -> "<<(stop-start)/CLK_TCK;
}

geeft Time -> 3.645
op een PII 333mhz

Everybody lies | BFD rocks ! | PC-specs


  • rjsomeone
  • Registratie: Juli 2001
  • Laatst online: 20-11-2023

rjsomeone

a.k.a. Tuslsh

Topicstarter
Op donderdag 15 november 2001 19:06 schreef dev het volgende:
Mag is misschien vragen wat het nut hiervan is?
Ik wil sneller dan dat nu lukt alle mogelijkheden van het verdelen van 10 stukjes berekening over 5 computers op papier hebben... (bepaald sommetje)

Ik heb dus 10 'dingetjes' en die worden allemaal naar een computer gestuurd. je hebt dus 5^10 mogelijkheden. (ik wil 't eigenlijk met grotere getallen, maar dit is voor 't voorbeeld).

Je kan dan dus een progje schrijven, dat ipv tot 10(decimaal) tot 5 telt (weet niet meer hoe dat heet, als 't al een naam heeft)
dus
0000000001
0000000002
0000000003
0000000004
0000000005
0000000010
0000000011
enz. enz.. het rekenen is geen probleem, alleen gaat 't zo verrekte langzaam(ik gebruik een array, maar ook bij gewoon tellen zoals ik eerder liet zien gaat 't me te traag).

Hier had uw advertentie kunnen staan :).


  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

ik denk dat het "pentaal" heet (5-tallig stelsel), want tien = deca -> decimaal en acht = octa -> octaal :)

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


Verwijderd

Voor het betere rekenwerk kan je het beste een C(++) taal kiezen.

Hier resultaten van een PIII-500. Linux en standaard C (gcc)

test.c:
int main(void)
{
double i;

for (i = 0 ; i < 70000000 ; i++);


}

Jet gaat om de tijden achter 'real'.Standaard: (gcc test.c -o test )
> time ./test

real 0m2.555s
user 0m2.510s
sys 0m0.020s
Geoptimaliseerd: (gcc -O2 -ffast-math -march=i686 test.c -o test )
> time ./test

real 0m0.647s
user 0m0.640s
sys 0m0.000s

Met integers rekent de PIII ruim 2x sneller.

-- Erik.

Verwijderd

Het is volgens mij niet waar dat VB langzamer is in rekenen, zoals vaak wordt beweerd. In de IDE idd, maar dat is niet native gecompiled, da's logisch.

De moderne VB's hebben ook veel betere compilers.

Hetzelfde als degene voor mij doet haal ik op m'n Pentium 500 ook in dezelfde tijd met VB.

  • roelio
  • Registratie: Februari 2001
  • Niet online

roelio

fruitig, en fris.

Op donderdag 15 november 2001 19:38 schreef ceravore het volgende:
Hier resultaten van een PIII-500. Linux en standaard C (gcc)
Tip: zet je volgende keer je code ff tussen code en /code tags 8-)

AMD Phenom II X4 // 8 GB DDR2 // SAMSUNG 830 SSD // 840 EVO SSD // Daar is Sinterklaas alweer!!


  • johnwoo
  • Registratie: Oktober 1999
  • Laatst online: 16:48

johnwoo

3S-GTE

Uhm je zult bij het pure rekenen in dit geval geen verschil merken tussen VB en C, of welke taal dan ook... Iedere fatsoenlijke compiler maakt hier een INC instructie van. Wat wel enorm kan vertragen (en bij VB meer dan bij C) is alle zut die je eromheen doet, vooral de grafische interface, en eventuele ActiveX objectjes vertragen de boel nogal bij VB. Maar het pure rekenwerk zal even snel gaan, dus het hangt er maar net vanaf wat je bij iedere iteratie doet met het getal...
VB *is* gewoon langzamer dan een goede C/C++ compiler, dat staat vast...
De VB compiler is grotendeels identiek aan de VC++ compiler, de drie grootste verschillen zijn:
- bij VB wordt het proggel in een VM gedraaid
- bij VB wordt er een hoop code automagisch tussengepropt
- de geparste syntax is anders

Veel mensen denken nog steeds dat VB een soortement veredelde QuickBasic is ofzo (ik hoor zelfs nog vaak dat VB code geinterpreteerd zou worden ipv gecompiled! :o Dat was dus alleen met gwbasic), maar VB is echt een compleet andere taal dan QB. Het draagt alleen ook de naam Basic omdat de syntax hetzelfde is (alhoewel er veel meer syntactische constructies in VB zitten), de backend (compiler enzo) is compleet anders!

4200Wp ZO + 840Wp ZW + 1680Wp NW | 14xIQ7+ + 1xDS3-L | MTVenusE | HWP1


  • Mr. B.
  • Registratie: Mei 2000
  • Niet online
Op donderdag 15 november 2001 23:02 schreef johnwoo het volgende:
De VB compiler is grotendeels identiek aan de VC++ compiler, de drie grootste verschillen zijn:
- bij VB wordt het proggel in een VM gedraaid
- bij VB wordt er een hoop code automagisch tussengepropt
- de geparste syntax is anders
Vanaf VB5 is de compiler zelfs gebaseerd op die van VC (toeval dat ie c2.exe heet?) :)

StatBar.nl - @GoT

Het verschil tussen theorie en praktijk is in de praktijk altijd veel groter dan in theorie.


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 08:12

Crazy D

I think we should take a look.

Ik zal op zich niet gaan bestrijden dat een native c(++) progje sneller is, maar VB is zeker niet meer zo traag als iedereen altijd brult (maja VB is makkelijk afzeiken he, net als MS. Vaak zelfs door mensen die niet verder zijn gekomen dan hello world, en toen weer terug zijn gegaan naar hun eigen vertrouwde omgeving. Oh sorry da's heftig offtopic).
En vergeet niet bij het compilen eens naar het optimizen te kijken. Integer overflow check en zo, ik heb weleens wat zitten spelen en vergelijken, en welliswaar nooit echt getimed, maar gevoelsmatig scheelde dat nog best wel wat.
En optimize for speed scheelt ook best wel wat.

Exact expert nodig?

Pagina: 1