/** * Send a performance report to a Console Sender * * @param sender */ public static void sendReport(CommandSender sender) { LWC lwc = LWC.getInstance(); sender.sendMessage(" "); sender.sendMessage(Colors.Red + "LWC Report"); sender.sendMessage(" Version: " + Colors.Green + LWCInfo.FULL_VERSION); sender.sendMessage( " Running time: " + Colors.Green + TimeUtil.timeToString(getTimeRunningSeconds())); sender.sendMessage( " Players: " + Colors.Green + Bukkit.getServer().getOnlinePlayers().length + "/" + Bukkit.getServer().getMaxPlayers()); sender.sendMessage( " Item entities: " + Colors.Green + getEntityCount(Item.class) + "/" + getEntityCount(null)); sender.sendMessage(" "); sender.sendMessage(Colors.Red + " ==== Modules ===="); for (Map.Entry<Plugin, List<MetaData>> entry : lwc.getModuleLoader().getRegisteredModules().entrySet()) { Plugin plugin = entry.getKey(); List<MetaData> modules = entry.getValue(); // Why? if (plugin == null) { continue; } sender.sendMessage( " " + Colors.Green + plugin.getDescription().getName() + " v" + plugin.getDescription().getVersion() + Colors.Yellow + " -> " + Colors.Green + modules.size() + Colors.Yellow + " registered modules"); } sender.sendMessage(" "); sender.sendMessage(Colors.Red + " ==== Database ===="); sender.sendMessage(" Engine: " + Colors.Green + Database.DefaultType); sender.sendMessage( " Protections: " + Colors.Green + formatNumber(lwc.getPhysicalDatabase().getProtectionCount())); sender.sendMessage( " Queries: " + Colors.Green + formatNumber(queries) + " | " + String.format("%.2f", getAverage(queries)) + " / second"); sender.sendMessage(" "); sender.sendMessage(Colors.Red + " ==== Cache ==== "); ProtectionCache cache = lwc.getProtectionCache(); sender.sendMessage(" Refs: " + cache.size() + "/" + cache.capacity()); sender.sendMessage( " Reads: " + formatNumber(cache.getReads()) + " | " + String.format("%.2f", getAverage(cache.getReads())) + " / second"); sender.sendMessage( " Writes: " + formatNumber(cache.getWrites()) + " | " + String.format("%.2f", getAverage(cache.getWrites())) + " / second"); }