{"action":"created","issue":{"url":"https://api.github.com/repos/OpenNMS/opennms/issues/249","labels_url":"https://api.github.com/repos/OpenNMS/opennms/issues/249/labels{/name}","comments_url":"https://api.github.com/repos/OpenNMS/opennms/issues/249/comments","events_url":"https://api.github.com/repos/OpenNMS/opennms/issues/249/events","html_url":"https://github.com/OpenNMS/opennms/pull/249","id":66705228,"number":249,"title":"Improve BSFMonitor and BSFNotificationStrategy performance","user":{"login":"dschlenk","id":2931946,"avatar_url":"https://avatars.githubusercontent.com/u/2931946?v=3","gravatar_id":"","url":"https://api.github.com/users/dschlenk","html_url":"https://github.com/dschlenk","followers_url":"https://api.github.com/users/dschlenk/followers","following_url":"https://api.github.com/users/dschlenk/following{/other_user}","gists_url":"https://api.github.com/users/dschlenk/gists{/gist_id}","starred_url":"https://api.github.com/users/dschlenk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dschlenk/subscriptions","organizations_url":"https://api.github.com/users/dschlenk/orgs","repos_url":"https://api.github.com/users/dschlenk/repos","events_url":"https://api.github.com/users/dschlenk/events{/privacy}","received_events_url":"https://api.github.com/users/dschlenk/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":2,"created_at":"2015-04-06T21:03:23Z","updated_at":"2015-04-08T16:06:29Z","closed_at":null,"pull_request":{"url":"https://api.github.com/repos/OpenNMS/opennms/pulls/249","html_url":"https://github.com/OpenNMS/opennms/pull/249","diff_url":"https://github.com/OpenNMS/opennms/pull/249.diff","patch_url":"https://github.com/OpenNMS/opennms/pull/249.patch"},"body":"BSF performance has always been terrible since scripts are compiled and executed fresh each time. These patches will allow BSF engines that cache to actually cache by making BSFManager instances long running. I've verified that it works by patching groovy's CachingGroovyEngine to store some cache hit/miss stats and taking thread dumps at various points in time. Drops the load on a host monitoring a lot of hosts each with many services monitored by a groovy script from ~3-5 to ~0.25-0.75. "},"comment":{"url":"https://api.github.com/repos/OpenNMS/opennms/issues/comments/90961033","html_url":"https://github.com/OpenNMS/opennms/pull/249#issuecomment-90961033","issue_url":"https://api.github.com/repos/OpenNMS/opennms/issues/249","id":90961033,"user":{"login":"dschlenk","id":2931946,"avatar_url":"https://avatars.githubusercontent.com/u/2931946?v=3","gravatar_id":"","url":"https://api.github.com/users/dschlenk","html_url":"https://github.com/dschlenk","followers_url":"https://api.github.com/users/dschlenk/followers","following_url":"https://api.github.com/users/dschlenk/following{/other_user}","gists_url":"https://api.github.com/users/dschlenk/gists{/gist_id}","starred_url":"https://api.github.com/users/dschlenk/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dschlenk/subscriptions","organizations_url":"https://api.github.com/users/dschlenk/orgs","repos_url":"https://api.github.com/users/dschlenk/repos","events_url":"https://api.github.com/users/dschlenk/events{/privacy}","received_events_url":"https://api.github.com/users/dschlenk/received_events","type":"User","site_admin":false},"created_at":"2015-04-08T16:06:29Z","updated_at":"2015-04-08T16:06:29Z","body":"Indeed! I did it right in the notification version, forgot to fix the monitor code to work the same way. Testing a patch right now - I'll push it here when it's tested. Thanks @soleger!"}}