Ik ben paar uur bezig geweest om een manier te ontwikkelen om makkelijk een tree te genereren (en de volgorde waarin de tree gebladert moet worden). Alleen nu zie ik nergens op GOT zoiets soortgelijks, dus mij vraag, hoe test ik of dit een goeie, snelle, en foutloze methoden is? ik heb het volgende geprobeert.
nu lijkt dit wel te werken .. maja, ik ben niet echt een super programmeur ofzo.. dus twijfel ik of ik goed bezig ben.. de script genereert wel in 0.00019.
ik zocht dus een manier om niet meerdere query's uit te voeren, wat ik nu dus doe, is ik geeft alle item's een opeen volgend nummer en de nummer van node of parentnode maakt niet uit...
vraag is dus.. hoe test ik of deze script goed en efficient is? dingen als geheugen problemen niet voordoen als ik het veel ga gebruiken enz.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
| <? $count = 1000; for( $i=1; $i<$count; $i++) { $node[$i] = Array( "nodeid" => $i, "parentid" => rand(0, $i), "info" => "hoi" ); } $tree['0'] = gettree($node, 0); $startTime = getmicrotime(); function gettree($node, $id) { global $count; for( $i = 1; $i < $count; $i ++ ) { if( $node[$i]["parentid"] == $id ) { addtree( $node[$i]["nodeid"] ); $return[ $node[$i]["nodeid"] ] = gettree($node, $node[$i]["nodeid"]); $return[ $node[$i]["nodeid"] ]["info"] = $node[$i]["info"]; } } return $return; } function addtree($id) { global $flattree, $node; $flattree[$id] = $node[$id]["info"]; } function getmicrotime() { /* I got this getmicrotime()-function from the PHP.net website, but it seems to be buggy, while it sometimes displays a negative execution time when you substract the current time with the starting time of the script... I only noticed it at my Windows localhost machine, not on Linux servers. Is anybody familiar with this behaviour? Any information about this is welcome at nvie@users.sourceforge.net for your co-operation. */ list($usec, $sec) = explode(" ", microtime()); return ((float)$usec + (float)$sec); } echo "<p></p>" . round(getmicrotime() - $startTime, 5); print_r($tree); print_r($flattree); ?> |
nu lijkt dit wel te werken .. maja, ik ben niet echt een super programmeur ofzo.. dus twijfel ik of ik goed bezig ben.. de script genereert wel in 0.00019.
ik zocht dus een manier om niet meerdere query's uit te voeren, wat ik nu dus doe, is ik geeft alle item's een opeen volgend nummer en de nummer van node of parentnode maakt niet uit...
vraag is dus.. hoe test ik of deze script goed en efficient is? dingen als geheugen problemen niet voordoen als ik het veel ga gebruiken enz.
[ Voor 26% gewijzigd door Verwijderd op 12-01-2004 03:10 . Reden: te snel verstuurd.. ]