Slowness in openning a UI after launching a new plugin

Hi, teamcity expects,

I developed a server plugin to read configuration from a property file into a few systems parameters. Those parameters are referred in the individual projects.  When this plugin was uploaded into a production TC server with 200+ apps, opening a UI page became extremely slow (10 - 20 seconds).

After removing the plugin, everything became normal.

(1) How to create a test env to do such  stress test with plugin? I am not able to create a test env with 200+ apps, is there any other smart way to simulate such env?

(2) What is the possible reasons that a plugin could slow down openning UI page? From my debugging, I found that getParametersAvailableOnAgent() was called wheneven a page is openned. Is the func a possible problem?  I created only server plugin for such requirement. if I can collect heapdump/threadDump, what fields will I need to pay attension?

Thanks,

Kind Regards

2 comments
Comment actions Permalink

Hi, Teamcity expert, could anyone shed some light on this questuion?

0
Comment actions Permalink

So you implemented BuildParametersProvider extension, right? If so, it should work as fast as possible, because it will be used whenever TeamCity needs to resolve some settings. I don't think in your case you need to setup test environment. I'd suggest to load parameters once and then keep them in memory. If parameters file can be changed, use FileWatcher class to detect this change and re-read parameters:

    myPropertiesFileWatcher = new FileWatcher(configFile);
    myPropertiesFileWatcher.registerListener(
      new ChangeListener() {
        public void changeOccured(final String requestor) {
             // file changed - reload it
        }
    });
    myPropertiesFileWatcher.start();

0

Please sign in to leave a comment.