Back in March, when I was just switching to my, then, new IIS server, I had some issues with a plugin called Wassup. More specifically, the plugin was causing some major performance issues and caused my blog to take several seconds to load.
Well, now three months later, they seem to have addressed this issue. From a post on their support forum (quoting a member there named vlogoution):
I had this problem too, and what’s causing it are the several calls made by Wassup to php’s gethostbyaddr function which does the host lookup. The problem is at its worst if the function can’t find the host name (ie. on a local LAN). To solve it, I basically changed every call to gethostbyaddr in wassup.php to call “gethost”, which I’ve included below. This still uses gethostbyaddr, but it caches the calls on each run with a local cache and by using memcached (if enabled and available with the object-cache.php dropin). Ideally, it would probably be better to code an nslookup (for windows) or host call for linux, but for now this is working for me just fine. Another way would be to cache/store the host lookups in the database for a period of time. Hopefully the author of Wassup will look to include this patch (or some even better variation) in a future release. I believe the poor performance of this one function call is holding back the high potential of this plugin.
(I placed the function just below the “global $wp_version;” statement in wassup.php:
function gethost($ip) {
//much faster cached replacement for gethostbyaddr - http://us3.php.net/gethostbyaddr
global $dns_cache;
if ($dns_cache[$ip]) {
return $dns_cache[$ip];
} else {
if (!$dns = wp_cache_get( $ip, 'dns', 216000 ) ) {
$dns = gethostbyaddr($ip);
wp_cache_add( $ip, $dns, 'dns', 216000 );
}
$dns_cache[$ip] = $dns;
return $dns;
}
}
And so it seems that they have implemented the patch (or some variation thereof) mentioned above to fix the issue. I’m happy to report that I’m now running Wassup again (and am pretty happy about it).
Full post in the support forum.

