Added performance measurement.
[gnucomo.git] / src / web / parameter.php
index 42a0e58..968a656 100644 (file)
@@ -9,7 +9,7 @@
 ***********************
 **      FILE NAME      : parameter.php
 **      SYSTEM NAME    : Gnucomo - Gnu Computer Monitoring
-**      VERSION NUMBER : $Revision: 1.3 $
+**      VERSION NUMBER : $Revision: 1.6 $
 **
 **  DESCRIPTION      : 
 **
 ********************************
 **      ORIGINAL AUTHOR : Arjen Baart - arjen@andromeda.nl
 **      CREATION DATE   : Dec 04, 2002
-**      LAST UPDATE     : Feb 08, 2003
+**      LAST UPDATE     : Aug 04, 2003
 **      MODIFICATIONS   : 
 **************************************************************************/
 
 /*****************************
    $Log: parameter.php,v $
-   Revision 1.3  2003-02-13 09:01:29  arjen
+   Revision 1.6  2003-08-14 10:33:01  arjen
+   Added performance measurement.
+
+   Revision 1.5  2003/07/15 11:06:45  arjen
+   Removed parameters are displayed in a shaded style.
+
+   Revision 1.4  2003/02/21 08:50:12  arjen
+   Database optimizations.
+
+   Revision 1.3  2003/02/13 09:01:29  arjen
    All web interface pages use the page class.
 
    Revision 1.2  2003/02/05 09:47:39  arjen
@@ -35,7 +44,7 @@
 
 ******************************/
 
-// RCSID = "$Id: parameter.php,v 1.3 2003-02-13 09:01:29 arjen Exp $";
+// RCSID = "$Id: parameter.php,v 1.6 2003-08-14 10:33:01 arjen Exp $";
 
 
 ini_set('include_path', '.:./classes:../phpclasses');
@@ -45,11 +54,18 @@ require_once('page.class.php');
 
 /*  Local functions */
 
+function getmicrotime()
+{
+   list ($usec, $sec) = explode(" ", microtime());
+   return (float)$sec + (float)$usec;
+}
+
 function object_selection($db, $skip_oid)
 {
    /*  Create and print an HTML option list of objects */
 
-   $res = pg_exec("SELECT objectid, objectname FROM object WHERE objectid != " . $skip_oid);
+   $res = pg_exec("SELECT objectid, objectname FROM object WHERE objectid != "
+                     . $skip_oid . "ORDER BY objectname");
    for ($row = 0; $row < pg_numrows($res); $row++)
    {
       $obj = pg_fetch_object($res, $row);
@@ -67,12 +83,12 @@ class param_page extends page
 
    if (!empty($_GET['oid']))
    {
-      $res = pg_exec($this->database, "SELECT objectname FROM object WHERE objectid=" . $_GET['oid']);
+      $res = pg_exec($this->database, "SELECT objectname FROM object WHERE objectid=CAST('" . $_GET['oid']."' AS BIGINT)");
       $obj = pg_fetch_object($res, 0);
       echo "<h1>Parameters for " . $obj->objectname . "</h1>";
 
       $res = pg_exec($this->database, "SELECT paramid, class, name, description FROM parameter "
-                     ."WHERE objectid=" . $_GET['oid'] . "order by class, name");
+                     ."WHERE objectid= CAST('" . $_GET['oid'] . "' AS BIGINT) order by class, name");
       
      ?>
      <form action='parameter_compare.php' method='post'>
@@ -88,31 +104,43 @@ class param_page extends page
       echo "<hr>";
       echo "<table>";
       $row = 0;
+      $start_time = getmicrotime();
       while ($row < pg_numrows($res))
       {
          $par = pg_fetch_object($res, $row);
-         ?>
-         <tr><td align='center'>
-            <?php echo $par->class?>
-         </td><td>
-            <?php echo $par->name?>
-         </td><td>
-            <?php echo $par->description?>
-         </td><td>
-            <?php
-               $r = pg_exec($this->database, "SELECT name, value FROM property
-                                              WHERE paramid='" . $par->paramid . "'");
-               for ($p = 0; $p < pg_numrows($r); $p++)
-               {
-                  $prop = pg_fetch_object($r, $p);
-                  echo $prop->name . "=" . $prop->value . " ";
-               }
+         $qry ="select change_nature from history where paramid= CAST('";
+         $qry .= $par->paramid . "' AS BIGINT) order by modified desc";
+         $rhist = pg_exec($this->database, $qry);
+         $hist = pg_fetch_object($rhist, 0);
+         if ($hist->change_nature != "REMOVED")
+         {
             ?>
-         </td></tr>
-         <?php
+            <tr><td align='center'>
+               <?php echo $par->class?>
+            </td><td>
+               <?php echo $par->name?>
+            </td><td>
+               <?php echo $par->description?>
+            </td><td>
+               <?php
+                  $r = pg_exec($this->database, "SELECT name, value FROM property
+                                              WHERE paramid=CAST('" . $par->paramid . "' AS BIGINT)");
+                  for ($p = 0; $p < pg_numrows($r); $p++)
+                  {
+                     $prop = pg_fetch_object($r, $p);
+                     echo $prop->name . "=" . $prop->value . " ";
+                  }
+               ?>
+            </td></tr>
+            <?php
+         }
          $row++;
       }
       echo "</table>";
+      $duration = getmicrotime() - $start_time;
+
+      echo "$row parameters in " . round($duration, 3) . " seconds (";
+      echo round($duration / $row * 1000, 3) . " milliseconds per parameter).<br>";
    }
    }
 }