|
|
 |
 |
 |
system.verbs.builtins.betty.rpc.client
RPC from a host to itself is excruciatingly slow. This seems to be because the conversion of the request into and back out of XML is a very high cost operation. This change renames betty.rpc.client to betty.rpc.clientSlow and subsitutes a smarter script that avoids the XML stages if the "remote" host is actually local. Otherwise, the normal path is taken
I wish Userland would ship this change, but do not expect it ever will.
Amended script :
| on client (rpcServer="localhost", rpcPort=user.inetd.config.http.port, procedureName="", adrparamlist=nil, fldebug=false, ticksToTimeOut=nil, flShowMessages=true, rpcPath=nil, flAsynch=false, adrCallback=nil, extraInfo=nil, adrErrorCallback=nil, username="", password="") |
| |
local (startticks = clock.ticks ()) |
| |
betty.init () //1/17/99 DW, make sure user.betty.prefs is set up |
| |
bundle //3/6/99 DW, handle asynchronous calls |
| |
bundle //1/17/99 DW, check ticksToTimeOut, rpcPath |
| |
bundle //build the XML request |
| |
bundle //send the HTTP request, store result in xtable |
| |
local (returnedValue, adrtable) |
| |
try //walk the response structure, get returnedValue |
| |
bundle //track ticks, by procedure call in system.temp.betty.clientCallTicks |
| |
«local (params = {"Dave's Handsome Radio Blog", "http://radio.weblogs.com/0001015/"}) |
| |
«scratchpad.response = betty.rpc.client ("rpc.weblogs.com", 80, "weblogUpdates.ping", @params) |
Relative to Frontier version 9.7b10
,
|