Avatar billede phoye Nybegynder
20. november 2001 - 14:54 Der er 11 kommentarer og
1 løsning

test med tid

Hej,
Jeg skal have lavet en test, som skal hvis hvor \"hurtig\" det tager at indsætte X tabeller.

Det jeg vil have at jeg skal indsætte 1000 gange hvor jeg derefter kan se differencen mellem 1000 og 1.

Min tabel skal f.eks indeholde indexnr,nr og tid
Jeg forestiller mig a la
create table test(
indexnr integer AUTO_INCREMENT,
nr integer not null,
tid date? not null);

Er der nogle foreslag til hvordan jeg skal lave det?
Avatar billede phoye Nybegynder
20. november 2001 - 14:55 #1
Jeg bruger MySQL!
Og jeg forestiller mig at man kunne lave en løkke som indsatte variablerne.
Avatar billede zmiley Nybegynder
20. november 2001 - 16:07 #2
Mener du hvor at man kan se hvor lang tid det tager at indsætte f.eks. 1000 tabeller i en database? Altså hvor lang tid i sekunder/minutter?

I så fald skal du bruge funktionen time() Noget i denne stil

$start = time();
$i = 0;

while ($i < 1000) {
  create table test(indexnr integer AUTO_INCREMENT, nr integer not null, tid date? not null);

$i = $i + 1;
}

$slut = time();
$dif = $start - $slut;

Så har du variablen $dif som indeholder antallet af sekunder det har taget, hvis jeg ikke har lavet en regnefejl :)
Avatar billede zmiley Nybegynder
20. november 2001 - 16:10 #3
Fedt, jeg er da vist lidt fummelfingret lige nu :)

$start = time();
$i = 0;

while ($i < 1000) {
  mysql_query(\"create table test(indexnr integer AUTO_INCREMENT, nr integer not null, tid date? not null\");

$i = $i + 1;
}

$slut = time();
$dif = $start - $slut

Har ikke testet det, men det burde virke, eventuelt med lidt finpudsning, men det er også mere princippet i det :)
Avatar billede phoye Nybegynder
20. november 2001 - 16:56 #4
zmile!
Det er noget i den retning!
Det jeg ville var at at indsætte 1000 gange i en tabel. Noget a la
$i = 0;

while ($i < 1000) {
  mysql_query(\"INSERT INTO test VALUES(\'$i\')\");

$i = $i + 1;
}
$slut = time();
$dif = $start - $slut

Tabellen er så
create table test(
indexnr integer AUTO_INCREMENT,
nr integer not null,
primary key(indexnr)\");

Jeg kan desvære ikke test det endnu, men hvad kommer der ud af $dif? milisekunder eller hvad?
Avatar billede phoye Nybegynder
20. november 2001 - 17:00 #5
Kan jeg så se $dif ved at sige:

echo \"Det tog $dif milisekunder\"
Avatar billede phoye Nybegynder
20. november 2001 - 17:48 #6
zmiley!
det virker,
men kan jeg få at vide hvad time() er? sekunder/milisekunder?

Hvis ikke i milisekunder, kan jeg få det i milisekunder? 
Avatar billede zmiley Nybegynder
20. november 2001 - 17:50 #7
$dif er i sekunder, og ja du kan bare udskrive den helt normalt med echo som du har gjort :-)

Hvis resultatet bliver lidt underligt kan du prøve at bytte om så der står $slut - $start istedet for omvendt. Kan aldrig finde ud af det der matematik :)
Avatar billede zmiley Nybegynder
20. november 2001 - 17:51 #8
Hvis du vil have det i miliskeunder skal du vist nok dividere med 1000... Som sagt er jeg ikke mester i matematik :)
Avatar billede phoye Nybegynder
20. november 2001 - 18:14 #9
hehe,
ja det er rigtigt at man skal bytte start med slut

Jeg prøver lige division med milisek, men jeg tror ikke det hjælper noget.
Kan jo altid blive prositivt overrasket!! :)
Avatar billede phoye Nybegynder
20. november 2001 - 18:29 #10
Det er noget ged.
jeg skrev
$start= time()/1000;
-
-
$slut= time()/1000;

men resultatet blev
0.01000000009313

Og det er sku ikke lige det!! :)
Avatar billede phoye Nybegynder
20. november 2001 - 18:30 #11
Men du har sådan set givet mig svaret så tillykke med pointene,
Og tak for hjælpen
Avatar billede zmiley Nybegynder
20. november 2001 - 18:36 #12
$dif = $start - $slut;
$dif = $dif / 1000;

Ved ikke om det hjælper, men det er et eller andet i den stil du skal have fat i... Det er for lang tid siden jeg har arbejdet med den slags regnestykker :) Hmm ellers prøv at gange istedet for at dividere.

Men tak for pointene, det var så lidt :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester