You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by NormW <no...@bocnet.com.au> on 2004/06/16 12:35:07 UTC

PATCH \jk\native2\common\jk_worker_status.c - minimising calls to jkprintf()

Greetings All,

I haven't given up on a jkprint{} buffer but as an interim 'solution', the
patch below reduces calls to jkprint() in the four functions shown:
_displayStat from 10 to 4,
_displayAggregate from 8 to 5,
_displayEndpointInfo from 7 to 5,
_displayScoreboardInfo from 11 to 8,
while leaving the code quite legible.
It also supplys two missing </tr> tags and capitalises some display fields.

http://normw.gknw.com/mod_jk2/patches/jk_worker_status.c.diff

If this is acceptable will continue further.
Norm
---------------------------------------
--- jk_worker_status.c.orig 2004-05-08 07:05:53.000000000 +1000
+++ jk_worker_status.c 2004-06-16 11:12:31.000000000 +1000
@@ -52,19 +52,19 @@
     unsigned long maxTime = *maxTimeP;
     char ctimeBuf[APR_CTIME_LEN];

-    s->jkprintf(env, s, "<tr><td>%d</td><td>%d</td><td>%d</td>\n",
-                stat->workerId, stat->reqCnt, stat->errCnt);
-    s->jkprintf(env, s, "<td>%s</td>\n", JK_CHECK_NULL(stat->active));
+    s->jkprintf(env, s,
"<tr><td>%d</td><td>%d</td><td>%d</td><td>%s</td>\n",
+                stat->workerId,
+                stat->reqCnt,
+                stat->errCnt,
+                JK_CHECK_NULL(stat->active));

     totalReq += stat->reqCnt;
     totalErr += stat->errCnt;

     apr_ctime(ctimeBuf, stat->connectedTime);
-    s->jkprintf(env, s, "<td>%s</td>\n", ctimeBuf);
-
-    s->jkprintf(env, s, "<td>%ld</td>\n",
-                (long)apr_time_as_msec(stat->totalTime));
-    s->jkprintf(env, s, "<td>%ld</td>\n",
+    s->jkprintf(env, s, "<td>%s</td><td>%ld</td><td>%ld</td>\n",
+                ctimeBuf,
+                (long)apr_time_as_msec(stat->totalTime),
                 (long)apr_time_as_msec(stat->maxTime));

     if (stat->reqCnt + stat->errCnt > 0)
@@ -76,16 +76,14 @@
         s->jkprintf(env, s, "<td>-</td>\n");

     apr_ctime(ctimeBuf, stat->startTime);
-    s->jkprintf(env, s, "<td>%s</td>\n", ctimeBuf);
-    s->jkprintf(env, s, "<td>%ld</td>\n",
-                (long)apr_time_as_msec(stat->jkStartTime -
stat->startTime));
-    s->jkprintf(env, s, "<td>%ld</td>\n",
+    s->jkprintf(env, s, "<td>%s</td><td>%ld</td><td>%ld</td></tr>\n",
+                ctimeBuf,
+                (long)apr_time_as_msec(stat->jkStartTime -
stat->startTime),
                 (long)apr_time_as_msec(stat->endTime - stat->startTime));

     totalTime += (long)stat->totalTime;
     if (maxTime < stat->maxTime)
         maxTime = (long)stat->maxTime;
-    s->jkprintf(env, s, "</tr>\n");

     *maxTimeP = maxTime;
     *totalTimeP = totalTime;
@@ -104,23 +102,21 @@
     s->jkprintf(env, s, "Totals:\n");

     s->jkprintf(env, s,
-                "<table
border><tr><th>Req</th><th>Err</th><th>Max</th><th>Avg</th></tr>");
-
-    s->jkprintf(env, s, "<tr><td>%d</td>\n", totalReq);
-    s->jkprintf(env, s, "<td>%d</td>\n", totalErr);
+                "<table
border>\n<tr><th>Req</th><th>Err</th><th>Max</th><th>Avg</th></tr>");

-    s->jkprintf(env, s, "<td>%ld</td>\n", apr_time_as_msec(maxTime));
+    s->jkprintf(env, s, "<tr><td>%d</td><td>%d</td><td>%ld</td>\n",
+                totalReq,
+                totalErr,
+                apr_time_as_msec(maxTime));

     if (totalErr + totalReq > 0) {
         unsigned long avg =
             apr_time_as_msec(totalTime / (totalReq + totalErr));
-        s->jkprintf(env, s, "<td>%ld</td>\n", avg);
+        s->jkprintf(env, s, "<td>%ld</td></tr>\n</table>\n", avg);
     }
     else {
-        s->jkprintf(env, s, "<td>-</td>\n");
+        s->jkprintf(env, s, "<td>-</td></tr>\n</table>\n");
     }
-
-    s->jkprintf(env, s, "</tr></table>\n");
 }

 /** Information for the internal endpoints ( in this process ).
@@ -138,15 +134,10 @@
     unsigned long totalTime = 0;
     unsigned long maxTime = 0;

-    s->jkprintf(env, s, "<h2>Endpoint info ( no shm )</h2>\n");
-
-    s->jkprintf(env, s, "<table border>\n");
-
-    s->jkprintf(env, s, "<tr><th>Worker</th><th>Req</th><th>Err</th>");
-    s->jkprintf(env, s, "<th>LastReq</th>\n");
-    s->jkprintf(env, s,
-
"<th>ConnectionTime</th><th>TotalTime</th><th>MaxTime</th><th>AvgTime</th>")
;
-    s->jkprintf(env, s, "<th>ReqStart</th><th>+jk</th><th>+end</th>");
+    s->jkprintf(env, s, "<h2>Endpoint Info ( no shm )</h2>\n<table
border>\n");
+    s->jkprintf(env, s,
"<tr><th>Worker</th><th>Req</th><th>Err</th><th>LastReq</th>\n");
+    s->jkprintf(env, s,
"<th>ConnectionTime</th><th>TotalTime</th><th>MaxTime</th>");
+    s->jkprintf(env, s,
"<th>AvgTime</th><th>ReqStart</th><th>+JK</th><th>+End</th></tr>");

     for (i = 0; i < env->_objects->size(env, env->_objects); i++) {
         jk_bean_t *mbean = env->_objects->valueAt(env, env->_objects, i);
@@ -192,7 +183,7 @@
         return;
     }

-    s->jkprintf(env, s, "<h2>Scoreboard info (ver=%d slots=%d)</h2>\n",
+    s->jkprintf(env, s, "<h2>Scoreboard Info (Ver=%d Slots=%d)</h2>\n",
                 wenv->shm->head->lbVer, wenv->shm->head->lastSlot);

     s->jkprintf(env, s, "<a href='jkstatus?scoreboard.reset'>reset</a>\n");
@@ -209,17 +200,14 @@
             /* This is an endpoint slot */
             void *data = slot->data;

-            s->jkprintf(env, s, "<tr><th colspan='4'>%s</th>\n",
-                        JK_CHECK_NULL(slot->name));
-            s->jkprintf(env, s, "<th>Cnt=%d</th><th>size=%d</th>\n",
-                        slot->structCnt, slot->structSize);
-
-            s->jkprintf(env, s,
-                        "<tr><th>Worker</th><th>Req</th><th>Err</th>");
-            s->jkprintf(env, s, "<th>LastReq</th>\n");
-            s->jkprintf(env, s,
-
"<th>ConnectionTime</th><th>TotalTime</th><th>MaxTime</th><th>AvgTime</th>")
;
-            s->jkprintf(env, s,
"<th>ReqStart</th><th>+jk</th><th>+end</th>");
+            s->jkprintf(env, s, "<tr><th
colspan='4'>%s</th><th>Cnt=%d</th><th>size=%d</th>\n",
+                        JK_CHECK_NULL(slot->name),
+                        slot->structCnt,
+                        slot->structSize);
+
+            s->jkprintf(env, s,
"<tr><th>Worker</th><th>Req</th><th>Err</th><th>LastReq</th>\n");
+            s->jkprintf(env, s,
"<th>ConnectionTime</th><th>TotalTime</th><th>MaxTime</th>");
+            s->jkprintf(env, s,
"<th>AvgTime</th><th>ReqStart</th><th>+JK</th><th>+End</th></tr>");

             /* XXX Add info about number of slots */
             for (j = 0; j < slot->structCnt; j++) {

---------------------------------------


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org